{
  "appName": "form·vee",
  "tagline": "이유까지 듣는 설문, 근거가 남는 데이터.",
  "description": "묻고, 확인하고, 분석하는 리서치의 모든 과정을 한곳에서.",
  "themeToggle": "라이트 / 다크 테마 전환",
  "close": "닫기",
  "language": "언어",
  "languageEnglish": "English",
  "languageKorean": "한국어",
  "landing": {
    "nav": {
      "interview": "AI 인터뷰",
      "document": "문서형 폼",
      "research": "연구 분석",
      "platform": "빌더"
    },
    "hero": {
      "title": "천 명에게 물어도, 한 명씩 듣습니다",
      "subtitle": "알고 싶은 것을 적어 두면 AI가 응답자마다 대화하며 이유를 묻습니다. 근거가 확인된 답만 데이터로 남고, 수집이 끝나면 바로 분석으로 이어집니다.",
      "cta": "무료로 시작하기",
      "ctaSecondary": "인터뷰 먼저 보기",
      "imageAlt": "조용한 인터뷰 공간, 책상 위 노트와 따뜻한 조명"
    },
    "promise": {
      "title": "묻고, 확인하고, 분석합니다. 전부 한곳에서.",
      "description": "form·vee는 인터뷰어를 품은 폼 빌더입니다. 쓰던 종이 서식은 붙여넣는 대로 폼이 되고, 대화에서 나온 답은 응답자의 말과 함께 저장됩니다. 수집이 끝나면 교차표와 쿼터, 정성 코딩으로 바로 넘어갑니다."
    },
    "interview": {
      "eyebrow": "AI 인터뷰",
      "title": "설문이 아니라 인터뷰입니다",
      "description": "알고 싶은 것을 정하면 AI가 대화를 이끕니다. 짧게 스친 답에는 이유를 묻고, 눈에 띄는 답에는 구체적인 사례를 청합니다. 대화의 진행과 종료는 모델이 아니라 엔진이 결정하므로, 어떤 응답자를 만나도 옆길로 새지 않습니다.",
      "bullets": [
        "모호한 답에는 알아서 한 번 더 묻습니다",
        "진행은 엔진이 지휘하고, AI는 해석만 맡습니다",
        "궁금한 것을 다 듣기 전에는 끝나지 않습니다"
      ],
      "demo": {
        "label": "제품 리서치 인터뷰",
        "goalLabel": "인터뷰 목표",
        "goal": "새 리포트 화면을 쓰지 않는 이유 알아내기",
        "depthBadge": "꼬리질문",
        "coverageLabel": "목표 충족",
        "turns": {
          "t1": {
            "q": "새 리포트 화면을 거의 쓰지 않으신다고 들었어요. 어떤 점이 가장 걸리셨나요?",
            "a": "한눈에 뭐가 중요한지 잘 모르겠더라고요"
          },
          "t2": {
            "q": "그중에서도 특히 막혔던 순간이 있었을까요?",
            "a": "필터를 걸어도 팀별 비교가 안 돼서, 결국 스프레드시트로 돌아갔어요"
          },
          "t3": {
            "q": "그때 어떤 기분이 드셨는지도 여쭤봐도 될까요?",
            "a": "새 화면을 배울 시간이 아깝다는 생각이 들었어요"
          }
        },
        "fields": {
          "f1": {
            "label": "미사용 사유",
            "value": "핵심 지표가 한눈에 안 보임"
          },
          "f2": {
            "label": "결정적 장벽",
            "value": "팀 비교·내보내기 부재"
          }
        }
      }
    },
    "evidence": {
      "eyebrow": "근거 검증",
      "title": "말하지 않은 답은, 데이터가 되지 않습니다",
      "description": "AI가 정리한 모든 값은 응답자가 실제로 한 말과 대조합니다. 근거가 있으면 출처와 함께 저장하고, 없으면 값을 버리고 그 자리에서 다시 묻습니다. 결과에 남은 숫자는 전부 발화까지 거슬러 확인할 수 있습니다.",
      "bullets": [
        "값마다 근거가 된 응답자의 말이 붙어 있습니다",
        "근거를 찾지 못한 값은 버리고 다시 묻습니다",
        "짐작으로 채워진 데이터가 남지 않습니다"
      ],
      "demo": {
        "label": "발화 기반 검증",
        "quoteLabel": "응답자 발화",
        "quoteBefore": "필터를 걸어도 팀별 비교가 안 돼서, ",
        "quoteHighlight": "결국 스프레드시트로 돌아갔어요",
        "extractLabel": "AI 추출",
        "pass": {
          "field": "결정적 장벽",
          "value": "팀 비교·내보내기 부재"
        },
        "verifiedBadge": "발화로 검증됨",
        "fail": {
          "field": "재사용 의향",
          "value": "전혀 없음"
        },
        "noEvidenceBadge": "근거 없음",
        "reask": "확인차 다시 여쭤봅니다. 비교와 내보내기가 되면 다시 써 보실 생각이 있으신가요?"
      }
    },
    "document": {
      "eyebrow": "문서형 폼",
      "title": "문서처럼 읽히고, 폼처럼 모입니다",
      "description": "동의서, 신청서, 접수 서류처럼 모양이 중요한 문서는 모양 그대로 폼이 됩니다. 원본 텍스트를 붙여넣으면 AI가 항목을 찾아 폼으로 옮기고, 여러 칸 배치와 페이지 나눔까지 원래 서식대로 살립니다.",
      "bullets": [
        "쓰던 문서를 붙여넣으면 그대로 폼이 됩니다",
        "칸 배치와 페이지 나눔이 원본대로 유지됩니다",
        "개인정보 동의, 주소 같은 한국형 항목이 준비되어 있습니다"
      ],
      "demo": {
        "label": "문서형 폼",
        "pasteChip": "문서 붙여넣기 → AI 변환",
        "docTitle": "연구 참여 동의서",
        "docIntro": "본 연구는 원격근무 웰빙에 관한 것입니다. 아래 항목을 확인한 뒤 동의해 주세요.",
        "fieldName": "성명",
        "fieldEmail": "이메일",
        "fieldOrg": "소속 기관",
        "consent": "개인정보 수집·이용 및 연구 참여에 동의합니다",
        "layoutChip": "한 행에 2칸",
        "pageChip": "1 / 2 페이지",
        "inlineChip": "본문 인라인 필드"
      }
    },
    "platform": {
      "eyebrow": "폼 빌더",
      "title": "이 모든 것이 단단한 폼 빌더 위에 있습니다",
      "description": "한 문장이면 초안이 나오고, 조건 분기와 답변 파이핑, 계산 필드로 다듬습니다. 완성한 설문은 대화형, 클래식, 문서형 세 화면 중 골라서 보냅니다.",
      "bullets": [
        "한 문장으로 설문 초안을 만듭니다",
        "분기와 파이핑, 계산 필드까지 기본입니다",
        "같은 설문을 세 가지 화면으로 보냅니다"
      ],
      "pillars": {
        "builder": {
          "title": "빠짐없는 빌더",
          "desc": "필드 타입부터 조건 분기, 계산, 파이핑까지."
        },
        "render": {
          "title": "세 가지 화면",
          "desc": "대화형, 클래식, 문서형을 설문 하나로."
        },
        "logic": {
          "title": "연구 흐름",
          "desc": "척도, 스크린아웃, 분기를 한곳에서."
        }
      }
    },
    "builder": {
      "demo": {
        "label": "AI 생성 + 로직",
        "prompt": "원격근무 웰빙 설문 초안을 만들어 줘",
        "generating": "생성 중…",
        "blocks": {
          "b1": "주당 원격근무 일수는 며칠인가요?",
          "b2": "업무 스트레스는 어느 정도인가요?",
          "b3": "지원 제도 중 가장 도움이 된 것은?",
          "b4": "{{이름}} 님, 후속 인터뷰에 응하실 수 있나요?"
        },
        "logicChip": "‘예’ 선택 시 표시",
        "pipingChip": "답변 파이핑",
        "pipingResolved": "수진 님, 후속 인터뷰에 응하실 수 있나요?",
        "typesTitle": "주요 필드 타입",
        "types": {
          "t1": "단답형",
          "t2": "장문형",
          "t3": "객관식",
          "t4": "평점",
          "t5": "날짜",
          "t6": "계산 필드"
        }
      }
    },
    "research": {
      "eyebrow": "연구 분석",
      "title": "수집이 끝나는 곳에서 분석이 시작됩니다",
      "description": "가중치를 얹은 교차표, 쿼터와 스크린아웃, 주관식 정성 코딩까지 제품 안에서 끝냅니다. 논문이나 보고서로 넘어갈 때는 SPSS, 코드북, 비식별 CSV로 내보내면 됩니다.",
      "bullets": [
        "교차표와 응답 가중치로 결과를 바로 읽습니다",
        "쿼터와 품질 신호로 표본을 관리합니다",
        "SPSS, 코드북, 비식별 CSV로 내보냅니다"
      ],
      "demo": {
        "label": "연구 분석 도구",
        "crosstabTitle": "교차표",
        "crosstabRow": "직무",
        "crosstabCol": "NPS 구간",
        "quotaTitle": "쿼터 달성",
        "quota": {
          "q1": {
            "label": "20대",
            "value": "100%"
          },
          "q2": {
            "label": "30대",
            "value": "86%"
          },
          "q3": {
            "label": "40대+",
            "value": "62%"
          }
        },
        "codingTitle": "정성 코딩",
        "codingQuote": "비교가 안 돼서 결국 시트로 돌아갔어요",
        "codes": {
          "c1": "비교 불가",
          "c2": "내보내기 부재",
          "c3": "학습 비용"
        },
        "exportsTitle": "연구용 내보내기",
        "exports": {
          "e1": "SPSS (.sav)",
          "e2": "코드북",
          "e3": "비식별 CSV"
        }
      }
    },
    "cta": {
      "title": "다음 리서치는 인터뷰로 시작해 보세요",
      "subtitle": "무료로 시작하세요. 데이터는 언제나 당신의 것입니다.",
      "button": "무료로 시작하기"
    },
    "footer": {
      "apiDocs": "API & MCP 문서"
    }
  },
  "auth": {
    "login": "로그인",
    "signup": "회원가입",
    "email": "이메일",
    "password": "비밀번호",
    "passwordHint": "12자 이상",
    "showPassword": "비밀번호 보기",
    "hidePassword": "비밀번호 숨기기",
    "name": "이름",
    "submitLogin": "로그인",
    "submitSignup": "계정 만들기",
    "noAccount": "계정이 없으신가요?",
    "haveAccount": "이미 계정이 있으신가요?",
    "errorInvalidCredentials": "이메일 또는 비밀번호가 올바르지 않습니다.",
    "errorMissingName": "이름을 입력해 주세요.",
    "errorInvalidEmail": "올바른 이메일 주소를 입력해 주세요.",
    "errorWeakPassword": "8자 이상의 비밀번호를 사용해 주세요.",
    "errorEmailTaken": "이미 사용 중인 이메일입니다. 로그인해 보세요.",
    "errorNetwork": "인증 서버에 연결하지 못했습니다. 연결 상태를 확인한 뒤 다시 시도해 주세요.",
    "errorSignupFailed": "계정을 만들 수 없습니다. 다시 시도해 주세요.",
    "errorInviteInvalid": "초대 링크가 만료되었거나 이미 사용되었습니다.",
    "errorWorkspaceInviteEmailMismatch": "이 워크스페이스 초대를 받은 이메일 주소를 사용해 주세요.",
    "errorRateLimited": "시도가 너무 많습니다. 잠시 뒤 다시 시도해 주세요.",
    "errorServer": "서버에 일시적인 문제가 발생했습니다. 잠시 후 다시 시도해 주세요.",
    "forgotPassword": "비밀번호를 잊으셨나요?",
    "forgotPasswordBody": "계정 이메일을 입력하면 해당 계정이 있을 때 재설정 링크를 보냅니다.",
    "backToLogin": "로그인으로 돌아가기",
    "resetSuccess": "비밀번호를 변경했습니다. 새 비밀번호로 로그인하세요.",
    "resetRequestTitle": "비밀번호 재설정",
    "resetRequestIntro": "계정 이메일을 입력하세요. 계정이 있으면 재설정 링크를 보냅니다.",
    "resetRequestSubmit": "재설정 링크 보내기",
    "resetRequestSentTitle": "이메일을 확인하세요",
    "resetRequestSentBody": "해당 이메일이 존재하면 재설정 링크가 발송됩니다.",
    "resetRequestFailed": "재설정 링크를 보내지 못했습니다. 다시 시도해 주세요.",
    "resetPasswordTitle": "새 비밀번호 설정",
    "resetPasswordIntro": "새 비밀번호는 8자 이상이어야 합니다.",
    "resetPasswordSubmit": "비밀번호 변경",
    "resetTokenInvalid": "재설정 링크가 올바르지 않거나 만료되었습니다. 새 링크를 요청하세요.",
    "resetRequestNewLink": "새 재설정 링크 요청",
    "resetFailed": "비밀번호를 변경하지 못했습니다. 새 재설정 링크를 요청한 뒤 다시 시도하세요.",
    "signupClosedTitle": "현재 회원가입을 받고 있지 않습니다",
    "signupClosedBody": "현재 새 계정 만들기가 일시 중지되어 있습니다. 이용이 필요하시면 운영자에게 문의해 주세요.",
    "signupInviteInvalid": "이 초대 링크는 만료되었거나 이미 사용되었습니다. 운영자에게 새 링크를 요청해 주세요."
  },
  "nav": {
    "dashboard": "대시보드",
    "logout": "로그아웃",
    "logoutError": "로그아웃하지 못했습니다. 다시 시도해 주세요.",
    "admin": "운영자",
    "menu": "메뉴",
    "primary": "주요 메뉴",
    "skipToContent": "본문으로 건너뛰기",
    "switchWorkspace": "워크스페이스 전환",
    "createWorkspace": "워크스페이스 만들기",
    "createWorkspaceTitle": "새 워크스페이스",
    "createWorkspaceNameLabel": "워크스페이스 이름",
    "createWorkspaceNameHint": "멤버에게 표시됩니다. 나중에 바꿀 수 있습니다.",
    "createWorkspaceSubmit": "만들기",
    "createWorkspaceCancel": "취소",
    "createWorkspaceInvalidName": "이름은 1–100자로 입력해 주세요."
  },
  "settingsNav": {
    "account": "계정",
    "workspace": "워크스페이스"
  },
  "accountSettings": {
    "title": "계정 설정",
    "intro": "이 form·vee 계정의 프로필과 비밀번호를 관리합니다.",
    "profileTitle": "프로필",
    "languageTitle": "언어",
    "languageBody": "앱 화면에 사용할 언어를 선택하세요.",
    "nameLabel": "표시 이름",
    "saveProfile": "프로필 저장",
    "dangerTitle": "위험 구역",
    "dangerBody": "계정 삭제는 되돌릴 수 없습니다. 혼자만 속한 워크스페이스는 폼·응답과 함께 삭제됩니다.",
    "deleteAccount": "계정 삭제",
    "deleteConfirmTitle": "계정을 삭제할까요?",
    "deleteConfirmBody": "되돌릴 수 없습니다. 혼자만 속한 워크스페이스와 그 폼, 수집된 모든 응답이 영구 삭제됩니다. 확인을 위해 비밀번호를 입력해 주세요.",
    "deleteCancel": "취소",
    "deleteConfirmCta": "영구 삭제",
    "deleting": "삭제 중…",
    "passwordTitle": "비밀번호",
    "currentPassword": "현재 비밀번호",
    "newPassword": "새 비밀번호",
    "confirmPassword": "새 비밀번호 확인",
    "savePassword": "비밀번호 변경",
    "saving": "저장 중…",
    "profileSaved": "프로필을 수정했습니다.",
    "passwordSaved": "비밀번호를 변경했습니다.",
    "emailTitle": "이메일",
    "emailBody": "로그인에 사용하는 이메일을 변경합니다. 새 주소로 확인 링크가 전송됩니다.",
    "newEmailLabel": "새 이메일",
    "emailSubmit": "이메일 변경",
    "emailChanged": "새 주소로 온 확인 링크를 열어야 이메일이 변경됩니다. (이미 사용 중인 주소면 변경되지 않습니다.)",
    "errors": {
      "owner_blocked": "다른 멤버가 있는 워크스페이스({{names}})의 소유자입니다. 소유권을 이전하거나 멤버를 정리한 뒤 다시 시도해 주세요.",
      "delete_failed": "계정을 삭제하지 못했습니다. 다시 시도해 주세요.",
      "invalid_name": "1자 이상 100자 이하의 표시 이름을 입력하세요.",
      "missing_password": "비밀번호 입력란을 모두 채워 주세요.",
      "password_mismatch": "새 비밀번호가 서로 일치하지 않습니다.",
      "weak_password": "12자 이상의 비밀번호를 사용해 주세요.",
      "invalid_current": "현재 비밀번호가 올바르지 않습니다.",
      "password_failed": "비밀번호를 변경하지 못했습니다. 다시 시도해 주세요.",
      "invalid_email": "올바른 이메일 주소를 입력해 주세요.",
      "email_change_failed": "이메일을 변경하지 못했습니다. 다시 시도해 주세요.",
      "invalid_intent": "알 수 없는 계정 작업입니다."
    }
  },
  "workspaceSettings": {
    "title": "워크스페이스 설정",
    "intro": "워크스페이스 이름, 멤버, 역할을 관리합니다.",
    "workspaceTitle": "워크스페이스",
    "nameLabel": "워크스페이스 이름",
    "saveWorkspace": "워크스페이스 저장",
    "saving": "저장 중…",
    "aiQuotaTitle": "AI 사용량",
    "aiQuotaIntro": "생성이나 인터뷰가 쿼터 오류로 막히기 전에 이 워크스페이스의 일일 AI 요청과 토큰 예산을 확인합니다.",
    "aiQuotaRequests": "오늘 AI 요청",
    "aiQuotaTokens": "오늘 AI 토큰",
    "aiQuotaUsed": "{{limit}} 중 {{used}} 사용",
    "aiQuotaRemaining": "오늘 {{remaining}} 남음",
    "aiQuotaDisabled": "일일 한도가 꺼져 있습니다. 오늘 {{used}} 집계됨.",
    "aiQuotaResets": "{{date}} 초기화",
    "capabilitiesTitle": "워크스페이스 기능",
    "capabilitiesIntro": "저작 기능을 등록하거나 해제합니다. 상속은 설치 기본값을 따릅니다. 사용 중인 설정은 기능을 해제해도 계속 표시됩니다.",
    "packDecisionHint": "팩은 소속 기능에 같은 결정을 일괄 적용합니다. 이후 기능별로 다시 바꿀 수 있습니다.",
    "packDecisionLabel": "{{pack}} 결정",
    "capabilityDecisionLabel": "{{capability}} 결정",
    "applyPack": "팩 적용",
    "updateCapability": "변경",
    "decisions": {
      "inherit": "상속",
      "enrolled": "등록",
      "declined": "해제"
    },
    "capabilityPacks": {
      "builder": "고급 제작",
      "design-plus": "고급 디자인",
      "distribution-plus": "고급 배포",
      "integrations": "연동",
      "insights": "인사이트",
      "research-design": "연구 설계",
      "research-analysis": "연구 분석",
      "sampling": "표집",
      "data-quality": "데이터 품질",
      "compliance": "준법",
      "collaboration": "협업"
    },
    "inviteTitle": "멤버 초대",
    "inviteIntro": "이메일로 팀원을 초대하고 워크스페이스 역할을 선택하세요.",
    "inviteEmail": "이메일",
    "inviteRole": "역할",
    "sendInvite": "초대 보내기",
    "inviting": "보내는 중…",
    "pendingInviteCount": "대기 중 초대 {{count}}개",
    "pendingInviteCount_plural": "대기 중 초대 {{count}}개",
    "inviteExpires": "만료일 {{date}}",
    "inviteLinkLabel": "{{email}} 초대 링크",
    "copyInvite": "복사",
    "inviteCopied": "복사됨",
    "cancelInvite": "취소",
    "confirmCancelInvite": "한 번 더 눌러 취소",
    "cancelingInvite": "취소 중…",
    "membersTitle": "멤버",
    "memberCount": "멤버 {{count}}명",
    "memberCount_plural": "멤버 {{count}}명",
    "you": "나",
    "joined": "참여일 {{date}}",
    "roleLabel": "{{name}} 역할",
    "updateRole": "변경",
    "remove": "제거",
    "confirmRemove": "한 번 더 눌러 제거",
    "removing": "제거 중…",
    "roles": {
      "owner": "소유자",
      "admin": "관리자",
      "member": "멤버"
    },
    "success": {
      "workspace": "워크스페이스를 수정했습니다.",
      "role": "멤버 역할을 변경했습니다.",
      "remove": "멤버를 제거했습니다.",
      "invite": "초대를 보냈습니다.",
      "cancelInvite": "초대를 취소했습니다.",
      "capability": "기능 결정을 변경했습니다.",
      "capabilityPack": "기능 팩을 변경했습니다."
    },
    "errors": {
      "invalid_name": "1자 이상 100자 이하의 워크스페이스 이름을 입력하세요.",
      "invalid_role": "올바른 워크스페이스 역할을 선택하세요.",
      "invalid_email": "올바른 이메일 주소를 입력하세요.",
      "already_member": "이미 이 워크스페이스의 멤버입니다.",
      "invite_failed": "초대를 보내지 못했습니다. 다시 시도해 주세요.",
      "cancel_invite_failed": "초대를 취소하지 못했습니다. 다시 시도해 주세요.",
      "invalid_capability": "올바른 기능 결정을 선택하세요.",
      "member_not_found": "해당 멤버는 더 이상 이 워크스페이스에 없습니다.",
      "self_forbidden": "여기서는 자신의 워크스페이스 접근 권한을 변경하거나 제거할 수 없습니다.",
      "last_owner": "워크스페이스에는 최소 1명의 소유자가 있어야 합니다.",
      "owner_role_required": "소유자 권한 부여나 변경은 소유자만 할 수 있습니다.",
      "invalid_intent": "알 수 없는 워크스페이스 작업입니다."
    }
  },
  "workspaceInvitation": {
    "title": "워크스페이스 초대",
    "intro": "{{inviter}}님이 {{workspace}} 워크스페이스에 초대했습니다.",
    "invalid": "이 워크스페이스 초대는 만료되었거나 이미 사용되었습니다.",
    "workspace": "워크스페이스",
    "email": "초대 이메일",
    "role": "역할",
    "expires": "만료",
    "createAccount": "계정 만들기",
    "login": "로그인",
    "accept": "초대 수락",
    "accepting": "수락 중…",
    "wrongAccount": "현재 {{email}} 계정으로 로그인되어 있습니다. 로그아웃한 뒤 초대를 받은 이메일 주소를 사용하세요.",
    "switchAccount": "로그아웃하고 계정 전환",
    "errors": {
      "invalid_invitation": "이 워크스페이스 초대는 만료되었거나 이미 사용되었습니다.",
      "not_recipient": "이 초대는 다른 이메일 주소에 연결되어 있습니다.",
      "accept_failed": "초대를 수락하지 못했습니다. 다시 시도해 주세요."
    }
  },
  "apiKeys": {
    "navTitle": "API 키",
    "title": "API 키",
    "intro": "form·vee를 프로그래밍 방식으로 사용하려면 API 키를 발급하세요. 각 키는 권한(scope)이 지정되며 이 워크스페이스에 묶입니다. 요청에는 Authorization: Bearer <키> 헤더로 인증합니다.",
    "docsLink": "API & MCP 문서 열기",
    "createTitle": "새 키 발급",
    "nameLabel": "이름",
    "namePlaceholder": "예: CI 파이프라인",
    "principalLabel": "다음 워크스페이스 멤버 권한으로 실행",
    "principalHint": "이 멤버의 폼 단위 권한으로 API와 MCP 접근을 판정합니다. 키 발급 책임은 발급자에게 남습니다.",
    "principal": "실행 멤버",
    "scopesLabel": "권한(scope)",
    "scopesRead": "읽기",
    "scopesWrite": "쓰기",
    "scopesSelectAll": "전체 선택",
    "scopesClearAll": "전체 해제",
    "scopeDesc": {
      "forms:read": "폼과 정의를 읽습니다.",
      "forms:write": "폼을 생성·수정합니다.",
      "forms:publish": "폼 버전을 발행합니다.",
      "responses:read": "제출된 응답을 읽습니다.",
      "responses:partial:read": "진행 중인 부분 응답 스냅샷을 조회합니다.",
      "assets:write": "폼 작성에 사용할 이미지를 업로드합니다.",
      "files:read": "응답에 첨부된 파일을 다운로드합니다."
    },
    "expiryLabel": "만료",
    "expiryNever": "만료 없음",
    "expiry30d": "30일",
    "expiry90d": "90일",
    "expiry1y": "1년",
    "createButton": "키 발급",
    "creating": "발급 중…",
    "createError": "키를 발급하지 못했습니다. 이름과 최소 1개 이상의 권한을 선택하세요.",
    "createdTitle": "키가 발급되었습니다",
    "createdWarning": "지금 키를 복사하세요. 보안상 다시 표시되지 않습니다.",
    "copy": "복사",
    "copied": "클립보드에 복사했습니다.",
    "copyError": "복사하지 못했습니다.",
    "done": "완료",
    "listTitle": "내 키",
    "empty": "아직 API 키가 없습니다.",
    "revoked": "폐기됨",
    "expired": "만료됨",
    "lastUsed": "마지막 사용",
    "expires": "만료",
    "revokeButton": "폐기",
    "revokeError": "키를 폐기하지 못했습니다.",
    "revokeTitle": "이 API 키를 폐기할까요?",
    "revokeBody": "“{{name}}” 키가 영구적으로 폐기됩니다. 이 키를 사용 중인 스크립트나 연동이 즉시 동작을 멈춥니다. 이 작업은 되돌릴 수 없습니다.",
    "confirmRevoke": "키 폐기",
    "revoking": "폐기 중…",
    "revokeSuccess": "키가 폐기되었습니다.",
    "cancel": "취소"
  },
  "dashboard": {
    "title": "내 폼",
    "searchPlaceholder": "폼 검색…",
    "search": "검색",
    "statusFilterLabel": "폼 상태 필터",
    "filterAll": "전체",
    "noSearchResults": "검색/필터에 맞는 폼이 없습니다.",
    "clearSearch": "검색 초기화",
    "empty": "아직 폼이 없습니다.",
    "create": "새 폼",
    "creating": "생성 중…",
    "createDocument": "새 문서형 폼",
    "creatingDocument": "생성 중…",
    "createInterview": "새 인터뷰",
    "creatingInterview": "생성 중…",
    "purposePicker": {
      "title": "무엇을 만드시나요?",
      "description": "선택한 목적은 이 폼의 추천 저작 보기만 정합니다. 워크스페이스 기능 등록이나 개인 기본값은 바꾸지 않습니다.",
      "items": {
        "registration": {
          "title": "신청·등록",
          "description": "집중된 신청서 또는 등록 폼",
          "creating": "생성 중…"
        },
        "survey": {
          "title": "설문",
          "description": "질문과 구조화된 피드백",
          "creating": "생성 중…"
        },
        "research_study": {
          "title": "연구 조사",
          "description": "고급 설계 및 분석 제어",
          "creating": "생성 중…"
        },
        "ai_interview": {
          "title": "AI 인터뷰",
          "description": "적응형 근거 기반 대화",
          "creating": "생성 중…"
        }
      }
    },
    "delete": "삭제",
    "deleting": "삭제 중…",
    "deleted": "폼이 삭제되었습니다.",
    "deleteError": "폼을 삭제하지 못했습니다.",
    "restoreError": "폼을 복원하지 못했습니다.",
    "confirmDelete": "삭제하시겠어요?",
    "confirmDeleteAria": "{{title}} 삭제 확인",
    "deleteTitle": "폼을 삭제할까요?",
    "deleteBody": "“{{title}}” 폼과 모든 응답이 삭제됩니다. 이 작업은 되돌릴 수 없습니다.",
    "cancel": "취소",
    "untitled": "제목 없는 폼",
    "copySuffix": "(복사본)",
    "responses": "응답",
    "updated": "수정됨",
    "aiTitle": "AI로 만들기",
    "aiPlaceholder": "만들고 싶은 설문을 한 문장으로 설명하세요…",
    "aiGenerate": "생성",
    "aiConvert": "변환",
    "aiPending": "생성 중…",
    "aiError": "폼을 생성하지 못했습니다. 다시 시도해 주세요.",
    "aiRateLimited": "AI 요청이 너무 많습니다. 잠시 후 다시 시도해 주세요.",
    "aiQuotaExceeded": "일일 AI 한도를 모두 사용했습니다. 워크스페이스 설정의 AI 사용량을 확인하세요.",
    "aiQuotaExceededWithRetry": "일일 AI 한도를 모두 사용했습니다. {{when}} 다시 시도하거나 워크스페이스 설정의 AI 사용량을 확인하세요.",
    "aiUnconfigured": "서버에 AI가 설정되어 있지 않습니다.",
    "aiGenerationFailed": "입력하신 설명으로는 폼을 만들 수 없었습니다. 내용을 조금 더 구체적으로 다시 적어 주세요.",
    "aiMinHint": "조금 더 자세히 적어 주세요 (4자 이상).",
    "aiInputModeLabel": "AI 입력 방식",
    "aiInputModePrompt": "설명하기",
    "aiInputModeImport": "기존 양식 붙여넣기",
    "aiKindLabel": "AI 생성 유형",
    "aiKindForm": "폼",
    "aiKindDocument": "문서형 폼",
    "aiKindInterview": "AI 인터뷰",
    "aiImportLabel": "기존 양식 변환",
    "aiImportPlaceholder": "신청서, 동의서, 설문지 등 기존 문서의 텍스트를 붙여넣으세요…",
    "aiImportHint": "4자 이상, 최대 50,000자까지 붙여넣을 수 있습니다. 제목, 본문, 빈칸, 질문을 가능한 한 보존합니다.",
    "aiImportSecurityHint": "붙여넣은 텍스트는 참고 자료로만 처리됩니다. 공개 전에 생성된 초안을 검토하세요.",
    "aiClassicHint": "여기서는 폼을 생성합니다.",
    "aiDocumentHint": "제목, 섹션, 안내문과 질문이 자연스럽게 이어지는 문서형 폼을 생성합니다.",
    "aiInterviewHint": "브리프에서 AI 인터뷰 초안을 만듭니다. 공개 전에 수집 항목과 목표를 검토할 수 있습니다.",
    "aiInterviewTemplateLink": "대화형 리서치가 필요하면 인터뷰 템플릿으로 시작하세요.",
    "creationToolsTitle": "새 폼 만들기",
    "creationToolsIntro": "새로 시작할 때 AI나 템플릿을 사용할 수 있습니다.",
    "templateTitle": "템플릿으로 시작",
    "templateIntro": "검증된 구조를 선택한 뒤 공개 전에 초안을 수정하세요.",
    "templateMeta_one": "{{count}}문항 · {{minutes}}분",
    "templateMeta_other": "{{count}}문항 · {{minutes}}분",
    "templateInterviewMeta_one": "구조화 항목 {{count}}개 · {{minutes}}분",
    "templateInterviewMeta_other": "구조화 항목 {{count}}개 · {{minutes}}분",
    "templateInterviewBadge": "AI 인터뷰",
    "templateDocumentBadge": "문서형 폼",
    "templatePreview": "미리보기",
    "templatePreviewFields": "구조화 항목 {{count}}개",
    "templatePreviewObjectives": "인터뷰 목표",
    "templatePreviewMore_one": "+{{count}}개 더",
    "templatePreviewMore_other": "+{{count}}개 더",
    "templateUse": "템플릿 사용",
    "templateCreating": "생성 중…",
    "templates": {
      "customerFeedback": {
        "title": "고객 피드백",
        "description": "만족도, NPS, 의견, 후속 연락처를 함께 수집합니다.",
        "category": "피드백",
        "blocks": {
          "welcome": "더 나은 경험을 위해 의견을 들려주세요",
          "satisfaction": "이번 경험에 얼마나 만족하셨나요?",
          "satisfactionLow": "불만족",
          "satisfactionHigh": "매우 만족",
          "reason": "그렇게 평가하신 가장 큰 이유는 무엇인가요?",
          "recommend": "주변에 추천하실 의향은 어느 정도인가요?",
          "recommendHint": "0은 전혀 그렇지 않음, 10은 매우 그러함을 뜻합니다.",
          "recommendLow": "전혀 아님",
          "recommendHigh": "매우 그럼",
          "email": "이메일 주소",
          "emailHint": "선택 사항입니다. 후속 연락을 원하실 때만 입력하세요."
        }
      },
      "leadCapture": {
        "title": "리드 수집",
        "description": "연락처, 팀 규모, 목표를 받아 인바운드 문의를 분류합니다.",
        "category": "세일즈",
        "blocks": {
          "name": "성함이 어떻게 되시나요?",
          "namePlaceholder": "홍길동",
          "email": "업무용 이메일을 알려주세요",
          "company": "회사",
          "companyPlaceholder": "회사명",
          "teamSize": "팀 규모",
          "goal": "무엇을 개선하고 싶으신가요?"
        }
      },
      "eventRsvp": {
        "title": "이벤트 신청",
        "description": "참석 여부, 관심 세션, 현장 요청 사항을 수집합니다.",
        "category": "이벤트",
        "blocks": {
          "name": "성명",
          "email": "이메일 주소",
          "attendance": "참석하시나요?",
          "attendYes": "예",
          "attendMaybe": "미정",
          "attendNo": "아니요",
          "sessions": "어떤 세션에 관심이 있으신가요?",
          "keynote": "키노트",
          "workshop": "워크숍",
          "networking": "네트워킹",
          "notes": "식단 또는 접근성 관련 요청 사항"
        }
      },
      "contactInquiry": {
        "title": "문의 접수",
        "description": "세일즈, 지원, 제휴, 일반 문의를 짧은 분기로 분류합니다.",
        "category": "문의",
        "blocks": {
          "type": "무엇을 도와드릴까요?",
          "sales": "도입 또는 가격 문의",
          "support": "제품 지원",
          "partner": "제휴",
          "other": "기타",
          "name": "성함",
          "email": "이메일 주소",
          "company": "회사",
          "companyPlaceholder": "회사명",
          "message": "어떤 도움이 필요하신가요?"
        }
      },
      "teamPulse": {
        "title": "팀 펄스 체크",
        "description": "에너지, 우선순위 명확도, 지원 정도, 주관식 의견을 대화형 흐름으로 확인합니다.",
        "category": "조직",
        "blocks": {
          "welcome": "팀 상태를 빠르게 확인합니다",
          "energy": "이번 주 에너지는 어떤가요?",
          "clarity": "현재 우선순위가 얼마나 명확한가요?",
          "support": "팀에서 충분한 지원을 받고 있다고 느끼나요?",
          "comment": "다음 주가 더 나아지려면 무엇이 필요할까요?",
          "low": "낮음",
          "high": "높음"
        }
      },
      "simpleDocumentForm": {
        "title": "간단한 문서 폼",
        "description": "깔끔한 한 페이지에 짧은 안내와 꼭 필요한 질문 3개로 시작합니다.",
        "category": "문서형 폼",
        "blocks": {
          "intro": "몇 가지 정보를 남겨 주시면 확인 후 연락드리겠습니다.",
          "name": "성함",
          "email": "이메일 주소",
          "request": "무엇을 도와드릴까요?"
        }
      },
      "koreanEventApplication": {
        "title": "행사·모임 신청서",
        "description": "연락처와 개인정보 수집 동의를 포함한 정식 문서형 참가 신청서입니다.",
        "category": "한국형 문서",
        "blocks": {
          "intro": "참가 확인과 행사 안내에 필요한 정보를 입력해 주세요.",
          "name": "성명",
          "phone": "휴대전화 번호",
          "attendance": "참가 여부",
          "attend": "참가합니다",
          "maybe": "추후 확정하겠습니다",
          "notes": "주최자에게 전달할 사항",
          "privacyLabel": "개인정보 수집 및 이용 동의",
          "privacyItemName": "성명",
          "privacyItemContact": "휴대전화 번호",
          "privacyPurpose": "참가자 등록, 행사 안내 및 출석 관리",
          "privacyRetention": "행사 종료 후 30일까지",
          "privacyRefusal": "동의를 거부할 수 있으나 필수 정보에 동의하지 않으면 신청을 완료할 수 없습니다."
        }
      },
      "koreanSeminarRegistration": {
        "title": "세미나·강연 접수",
        "description": "세션 선택, 참가자 정보, 사전 질문을 받는 문서형 접수 양식입니다.",
        "category": "한국형 문서",
        "blocks": {
          "intro": "희망 세션과 참가자 정보를 입력하고 강연에서 다룰 질문을 남겨 주세요.",
          "name": "성명",
          "email": "이메일 주소",
          "organization": "소속",
          "session": "희망 세션",
          "morning": "오전 세션",
          "afternoon": "오후 세션",
          "allDay": "종일 참가",
          "question": "강연에서 다뤘으면 하는 질문",
          "privacyLabel": "개인정보 수집 및 이용 동의",
          "privacyItemName": "성명 및 소속",
          "privacyItemContact": "이메일 주소",
          "privacyPurpose": "참가 확인, 세미나 안내 및 출석 관리",
          "privacyRetention": "세미나 종료 후 30일까지",
          "privacyRefusal": "동의를 거부할 수 있으나 필수 정보에 동의하지 않으면 접수를 완료할 수 없습니다."
        }
      },
      "koreanJobApplication": {
        "title": "채용 지원서",
        "description": "연락처, 지원 직무, 경력, 포트폴리오를 간결하게 받는 문서형 지원서입니다.",
        "category": "한국형 문서",
        "blocks": {
          "intro": "연락 가능한 정보와 지원 직무에 관련된 경험을 작성해 주세요.",
          "name": "지원자 성명",
          "email": "이메일 주소",
          "phone": "휴대전화 번호",
          "position": "지원 직무",
          "experience": "관련 경험 및 지원 동기",
          "portfolio": "포트폴리오 또는 프로필 URL",
          "privacyLabel": "개인정보 수집 및 이용 동의",
          "privacyItemIdentity": "성명 및 연락처",
          "privacyItemApplication": "지원서 답변 및 포트폴리오 URL",
          "privacyPurpose": "지원자 검토, 면접 일정 조율 및 채용 안내",
          "privacyRetention": "채용 절차 종료 후 180일까지",
          "privacyRefusal": "동의를 거부할 수 있으나 필수 정보에 동의하지 않으면 지원서를 검토할 수 없습니다."
        }
      },
      "koreanClubMembership": {
        "title": "동아리 가입 신청",
        "description": "연락처, 관심 활동, 가입 동기를 받는 정식 문서형 가입 신청서입니다.",
        "category": "한국형 문서",
        "blocks": {
          "intro": "연락처와 관심 활동, 가입 동기를 작성해 주세요.",
          "name": "성명",
          "phone": "휴대전화 번호",
          "email": "이메일 주소",
          "interest": "관심 있는 활동",
          "regularMeeting": "정기 모임",
          "project": "프로젝트 및 스터디",
          "networking": "교류 및 친목 행사",
          "motivation": "가입 동기를 적어 주세요",
          "privacyLabel": "개인정보 수집 및 이용 동의",
          "privacyItemName": "성명",
          "privacyItemContact": "휴대전화 번호 및 이메일 주소",
          "privacyPurpose": "가입 심사, 활동 안내 및 회원 연락",
          "privacyRetention": "회원 탈퇴 후 30일까지",
          "privacyRefusal": "동의를 거부할 수 있으나 필수 정보에 동의하지 않으면 가입 심사를 진행할 수 없습니다."
        }
      },
      "koreanDocumentSatisfaction": {
        "title": "문서형 만족도 조사",
        "description": "종합 만족도, 강점, 추천 의향, 의견을 차분한 문서 흐름으로 수집합니다.",
        "category": "한국형 문서",
        "blocks": {
          "intro": "좋았던 점과 개선이 필요한 점을 차분히 알려 주세요.",
          "overall": "전반적으로 얼마나 만족하셨나요?",
          "low": "매우 불만족",
          "high": "매우 만족",
          "strongestArea": "가장 만족스러웠던 부분은 무엇인가요?",
          "content": "콘텐츠 또는 프로그램",
          "process": "신청 및 진행 과정",
          "support": "담당자 지원",
          "other": "기타",
          "recommend": "이 경험을 주변에 추천할 의향이 어느 정도인가요?",
          "recommendLow": "전혀 없음",
          "recommendHigh": "매우 높음",
          "comment": "추가 의견이나 개선 제안을 자유롭게 적어 주세요."
        }
      },
      "koreanDeliveryRequest": {
        "title": "배송·수령 신청서",
        "description": "한국 주소, 연락처, 개인정보 동의를 문서형 페이지에서 수집합니다.",
        "category": "한국형 문서",
        "blocks": {
          "intro": "배송지 주소와 연락처를 남겨 주시면 주문을 발송해 드립니다.",
          "name": "수령인 이름",
          "phone": "휴대폰 번호",
          "address": "배송 주소",
          "notes": "배송 요청사항",
          "privacyLabel": "개인정보 수집·이용 동의",
          "privacyItemName": "이름 및 휴대폰 번호",
          "privacyItemAddress": "배송 주소",
          "privacyPurpose": "주문 이행 및 배송 조율",
          "privacyRetention": "배송 완료 후 90일까지",
          "privacyRefusal": "동의를 거부할 수 있으나, 필수 정보 없이는 배송을 진행할 수 없습니다."
        }
      },
      "documentInlinePledge": {
        "title": "인라인 빈칸 서약서",
        "description": "본문 속에 이름·날짜 인라인 필드를 섞은 짧은 문서형 양식입니다.",
        "category": "문서형 폼",
        "blocks": {
          "intro": "아래 문장의 빈칸을 채워 주세요.",
          "pledge": "본인 ",
          "pledgeMid": " 은(는) ",
          "pledgeEnd": " 에 이 안내를 확인하였습니다.",
          "name": "성명",
          "date": "확인일",
          "confirm": "위 내용에 동의합니다"
        }
      },
      "customerDiscovery": {
        "title": "고객 발견 인터뷰",
        "description": "역할, 현재 방식, 불편 심각도, 충족되지 않은 니즈를 대화로 파악합니다.",
        "category": "리서치",
        "goal": "응답자가 해결하려는 문제, 현재 해결 방식, 더 나은 대안을 매력적으로 만드는 조건을 발견합니다.",
        "greeting": "시간 내 주셔서 감사합니다. 현재 업무 흐름과 불편한 지점을 짧게 여쭤볼게요.",
        "closing": "감사합니다. 다음 제품 결정을 내리는 데 필요한 맥락을 얻었습니다.",
        "personaName": "리서치 파트너",
        "personaTone": "따뜻하고 호기심 있게, 짧고 명확하게 묻되 응답자를 유도하지 않습니다.",
        "fields": {
          "role": "응답자 역할",
          "workflow": "현재 업무 흐름",
          "painSeverity": "불편 심각도",
          "buyingStage": "검토 단계",
          "stageExploring": "가볍게 탐색 중",
          "stageEvaluating": "적극 검토 중",
          "stageSwitching": "전환 시도 중",
          "stageNotPlanned": "변경 계획 없음",
          "unmetNeed": "가장 중요한 미충족 니즈"
        },
        "goals": {
          "unmetNeeds": "미충족 니즈",
          "unmetNeedsDescription": "반복되는 공백, 우회 방법, 현재 쉽게 달성하지 못하는 결과를 찾습니다.",
          "decisionCriteria": "의사결정 기준",
          "decisionCriteriaDescription": "새 솔루션을 검토하거나 거절하게 만드는 조건을 포착합니다."
        }
      },
      "churnExit": {
        "title": "이탈 인터뷰",
        "description": "이탈 이유, 대체재, 다시 돌아올 조건을 대화로 확인합니다.",
        "category": "리서치",
        "goal": "응답자가 떠난 핵심 이유, 선택한 대체재, 다시 돌아올 수 있는 현실적 조건을 파악합니다.",
        "greeting": "솔직히 말씀해 주셔서 감사합니다. 무엇이 바뀌었고 무엇을 배울 수 있을지 짧게 여쭤볼게요.",
        "closing": "솔직한 피드백 감사합니다. 팀이 올바른 개선에 우선순위를 두는 데 도움이 됩니다.",
        "personaName": "이탈 인터뷰어",
        "personaTone": "존중하고 중립적으로, 방어적이지 않게 묻습니다. 결정을 정당화하도록 압박하지 않습니다.",
        "fields": {
          "primaryReason": "가장 큰 이탈 이유",
          "price": "가격 또는 예산",
          "missingFeature": "필요 기능 부족",
          "tooComplex": "너무 복잡함",
          "competitor": "경쟁사로 이동",
          "noNeed": "더 이상 필요 없음",
          "replacement": "대체재 또는 우회 방법",
          "returnCondition": "다시 돌아올 조건",
          "previousSatisfaction": "이전 만족도"
        },
        "goals": {
          "retentionLevers": "유지 개선 지렛대",
          "retentionLeversDescription": "비슷한 이탈을 줄일 수 있는 제품, 가격, 지원, 온보딩 개선점을 찾습니다.",
          "competitiveContext": "경쟁 맥락",
          "competitiveContextDescription": "경쟁사, 내부 우회 방법, 무해결 상태 중 무엇이 제품을 대체했는지 이해합니다."
        }
      },
      "usabilityFeedback": {
        "title": "사용성 피드백 인터뷰",
        "description": "무엇을 하려 했는지, 어디서 막혔는지, 기대와 실제가 어떻게 달랐는지 파고듭니다.",
        "category": "제품",
        "goal": "최근 제품 과업, 마찰 지점, 경험을 어렵게 만든 기대와 실제의 차이를 이해합니다.",
        "greeting": "경험을 공유해 주셔서 감사합니다. 어떤 과업을 하려 했고 어디서 혼란스러웠는지 여쭤볼게요.",
        "closing": "감사합니다. 제품 경험을 개선하는 데 도움이 됩니다.",
        "personaName": "사용성 리서처",
        "personaTone": "명확하고 차분하게, 의견보다 실제 행동을 먼저 묻습니다.",
        "fields": {
          "taskGoal": "완료하려던 과업",
          "blockedStep": "막힌 지점",
          "expectedVsActual": "기대와 실제 차이",
          "difficulty": "난이도",
          "wouldTryAgain": "다시 시도할 의향"
        },
        "goals": {
          "frictionPoints": "마찰 지점",
          "frictionPointsDescription": "응답자를 느리게 만든 혼란스러운 단계, 부족한 피드백, 인터페이스 세부사항을 찾습니다.",
          "expectationGap": "기대 차이",
          "expectationGapDescription": "마찰이 생긴 순간 제품이 어떻게 동작하길 기대했는지 포착합니다."
        }
      }
    },
    "duplicate": "복제",
    "duplicated": "폼이 복제되었습니다.",
    "duplicateError": "폼을 복제하지 못했습니다.",
    "openForm": "열기",
    "viewResponses": "응답",
    "viewConversations": "대화",
    "conversations": "대화",
    "documentBadge": "문서형",
    "classicBadge": "클래식",
    "conversationalBadge": "대화형",
    "interviewBadge": "인터뷰",
    "loadMore": "더 보기",
    "status": {
      "draft": "초안",
      "published": "공개됨"
    },
    "emptyStartTitle": "첫 폼을 만들어 보세요",
    "emptyStartBody": "검증된 템플릿으로 시작한 뒤 공개 전에 초안을 수정하세요.",
    "kindFormHint": "폼: 정해진 질문으로 구조화된 답변을 모읍니다. 설문, 신청, RSVP, 문의에 적합해요.",
    "kindDocumentHint": "문서형 폼: 제목, 안내문, 질문을 읽기 좋은 흐름으로 구성합니다. 신청서, 동의서, 상세 접수에 적합해요.",
    "kindInterviewHint": "AI 인터뷰: AI가 응답자와 대화하며 이유와 맥락을 파고듭니다. 고객 발견, 이탈 조사, 심층 피드백에 적합해요.",
    "kindRule": "여러 명에게 같은 질문을 → 폼 · 소수에게 깊은 이유를 → 인터뷰",
    "emptyAiTitle": "AI로 설문 초안 만들기",
    "emptyAiBody": "원하는 결과를 설명하세요. 공개하기 전에 모든 질문을 검토하고 수정할 수 있습니다.",
    "emptyBlankTitle": "빈 폼에서 시작",
    "emptyBlankBody": "이미 물어볼 질문이 정해져 있다면 에디터에서 직접 구성하세요.",
    "emptyInterviewTitle": "AI 인터뷰 만들기",
    "emptyInterviewBody": "응답자가 대화로 답하면, AI가 결과를 구조화된 필드로 정리합니다.",
    "aiExampleCustomer": "NPS, 별점, 주관식 의견을 포함한 고객 만족도 조사",
    "aiExampleEvent": "연락처, 세션 선택, 식단 요청을 받는 이벤트 신청서",
    "aiExampleHiring": "프론트엔드 엔지니어 채용 사전 선별 폼",
    "aiPendingStructure": "질문 구조를 만드는 중…",
    "aiPendingChoices": "선택지와 필드를 정리하는 중…",
    "aiPendingValidate": "초안을 검증하는 중…",
    "actionsMenu": "{{title}} 작업 메뉴",
    "actionsFor": "{{title}} {{action}}"
  },
  "preview": {
    "title": "미리보기",
    "intro": "저장된 초안을 응답자 시점으로 봅니다. 응답은 기록되지 않습니다.",
    "draftBadge": "초안 미리보기",
    "viewportDesktop": "데스크톱",
    "viewportMobile": "모바일"
  },
  "tabs": {
    "navigationLabel": "폼 작업 메뉴",
    "build": "만들기",
    "edit": "편집",
    "design": "디자인",
    "settings": "설정",
    "responses": "응답",
    "results": "결과",
    "research": "연구",
    "conversations": "AI 인터뷰",
    "funnel": "퍼널",
    "share": "공유",
    "authoringView": "저작 보기",
    "authoringViews": {
      "simple": "간단",
      "advanced": "고급"
    }
  },
  "formShell": {
    "readOnly": "읽기 전용 폼 구조",
    "noFields": "아직 필드가 없습니다.",
    "untitledField": "제목 없는 필드",
    "required": "필수",
    "theme": "테마",
    "customTheme": "사용자 테마",
    "primaryColor": "주 색상",
    "backgroundImage": "배경 이미지",
    "none": "없음",
    "shareReadOnly": "공개 링크와 QR 코드를 확인하고 복사할 수 있습니다. 배포 설정을 바꾸려면 편집 권한이 필요합니다."
  },
  "researchHub": {
    "title": "연구",
    "description": "canonical 설정을 중복하지 않고 연구 설계, 표집·품질 현황, 거버넌스 기록을 관리합니다.",
    "designTitle": "연구 설계",
    "designDescription": "척도, 퀴즈, 무작위 제시는 만들기와 같은 초안이며 동일한 revision 충돌 보호를 사용합니다.",
    "designUnavailable": "현재 편집할 수 있도록 등록된 연구 설계 capability가 없습니다.",
    "openBuildReadiness": "만들기 및 공개 준비",
    "interviewDesignTitle": "인터뷰 연구 설계",
    "interviewDesignDescription": "방법론, rubric, member check, codebook은 인터뷰 정의의 저작 표면을 하나로 유지하기 위해 만들기에 남습니다.",
    "openInterviewBuild": "인터뷰 만들기 열기",
    "samplingTitle": "표집",
    "samplingDescription": "초대 진행률만 여기에서 봅니다. 연락처, 초대, 리마인더 변경은 공유 Audience에 남습니다.",
    "openAudience": "공유 Audience 열기",
    "invited": "초대",
    "claimed": "참여 시작",
    "responseRate": "응답률",
    "qualityTitle": "데이터 품질",
    "qualityDescription": "자동 품질 신호와 되돌릴 수 있는 분석 제외를 검토합니다. 응답자 추적은 명시적인 설정으로 유지됩니다.",
    "openFlagged": "플래그된 응답 보기",
    "openTracking": "추적 설정",
    "responses": "응답",
    "flagged": "플래그",
    "excluded": "제외",
    "tracking": "응답자 추적",
    "trackingStatus": {
      "off": "꺼짐",
      "estimated": "추정",
      "anonymous": "익명"
    },
    "qualityJobs": "품질 작업: 성공 {{succeeded}}, 대기 {{pending}}, 실패 {{failed}} (전체 {{total}}).",
    "recordsTitle": "거버넌스 기록",
    "recordsDescription": "준법 실행과 불변 발행 이력을 확인합니다. disclosure 구성은 설정에 남습니다.",
    "exportRecord": "처리 기록 내보내기",
    "openCompliance": "준법 설정",
    "versions": "발행 버전",
    "withdrawals": "철회",
    "retentionPurges": "보존기간 파기",
    "recordExports": "기록 내보내기"
  },
  "settingsForm": {
    "title": "폼 설정",
    "description": "수집, 알림, 연동, 언어, 접근 권한, 준법, 고급 동작을 관리합니다.",
    "workspaceIntegrations": "워크스페이스 API와 MCP",
    "workspaceIntegrationsHint": "API 키와 MCP 접근은 워크스페이스 경계에서 관리합니다.",
    "openApiKeys": "API 키 열기",
    "movedFromShare": "알림, 연동, 언어, 접근 권한, 준법 설정이 설정 탭으로 이동했습니다.",
    "movedFromDesign": "수집 및 고급 설정이 설정 탭으로 이동했습니다.",
    "openSettings": "설정 열기",
    "respondentIdTitle": "응답자 연속성",
    "respondentIdDisclosure": "확인하면 이 폼은 최대 90일 보존되는 확률적 연속성 식별자를 발급합니다. 인증된 신원이 아니며 개인정보 저장을 사용합니다.",
    "respondentIdWorkspaceDisabled": "이 폼에서 응답자 연속성을 확인하려면 워크스페이스 관리자가 데이터 품질 기능을 등록해야 합니다.",
    "respondentIdConfirm": "고지를 확인하고 사용",
    "respondentIdRemove": "응답자 연속성 끄기"
  },
  "funnel": {
    "window": "최근 {{days}}일",
    "note": "이 인터뷰의 완료·이탈 집계 — 개별 응답 없이 건수만 보여줍니다.",
    "empty": "이 기간에 인터뷰 세션 기록이 없습니다.",
    "started": "시작",
    "completed": "완료",
    "completionRate": "완료율",
    "abandoned": "중도이탈",
    "expired": "만료",
    "blocked": "차단",
    "inProgress": "진행 중",
    "statusBreakdown": "결과 분포",
    "avgExchanges": "평균 턴",
    "avgCompleted": "평균 턴(완료)",
    "avgAbandoned": "평균 턴(이탈)",
    "turns": "턴",
    "completionReasons": "완료 사유",
    "dropoff": "이탈 지점",
    "dropoffNote": "중도이탈·만료 세션이 멈춘 턴 수.",
    "turnBucket": "{{bucket}}턴",
    "noData": "데이터 없음.",
    "reason": {
      "objectives_satisfied": "목표 달성",
      "hard_exchange_limit": "턴 한도 도달",
      "respondent_stop": "응답자 중단",
      "safety_stop": "안전 중단",
      "no_collectable_items": "수집할 항목 없음"
    }
  },
  "interview": {
    "title": "AI 인터뷰",
    "enable": "사용",
    "intro": "받을 항목(아래 질문)을 그대로 두고, AI가 대화로 답을 받아 구조화합니다. 켜면 공개 폼이 채팅으로 동작합니다.",
    "goal": "인터뷰 목적 *",
    "goalPlaceholder": "예: 이탈 위험 파악 / 리드 자격 검증",
    "instruction": "진행 지침(맥락·말투) *",
    "instructionPlaceholder": "이 인터뷰의 맥락, 비즈니스 정보, 어떻게 대화를 끌고 갈지",
    "depth": "심화 정도",
    "depthMinimal": "최소 (항목만, 후속 없음)",
    "depthBalanced": "균형 (필드당 후속 2회)",
    "depthThorough": "철저 (필드당 후속 4회, 깊은 인터뷰)",
    "persona": "페르소나(선택)",
    "personaPlaceholder": "예: 친근한 채용 담당자",
    "allowEmergent": "창발적 추출 허용 (사전 정의 외 정보도 목적에 맞으면 구조화)",
    "emergentScope": "창발적 추출 범위(선택)",
    "emergentScopePlaceholder": "예: 가격 민감도, 경쟁사 검토, 재계약 의향",
    "knowledge": "지식(선택) — 응답자 질문에 답할 근거",
    "knowledgePlaceholder": "제품/서비스 정보, FAQ 등. AI는 이 범위 안에서만 답합니다.",
    "opening": "오프닝(선택)",
    "openingPlaceholder": "첫 인사 (비우면 AI가 생성)",
    "closing": "마무리(선택)",
    "closingPlaceholder": "완료 메시지",
    "scopeBoundaries": "다루지 말 주제(선택)",
    "scopeBoundariesPlaceholder": "예: 의료·법률 자문, 개인 신상",
    "language": "언어(선택)",
    "languagePlaceholder": "예: Korean, Brazilian Portuguese",
    "languageHint": "비워 두면 응답자의 언어를 자동 감지해 그대로 따라갑니다.",
    "promotionTitle": "창발 인사이트 → 필드 승격 제안",
    "promoteAllAuto": "자동 대상 모두 추가 ({{count}})",
    "promoteAllConfirm": "{{count}}개 필드를 초안에 추가할까요?",
    "promoteAllCancel": "취소",
    "autoBadge": "자동 승격 대상",
    "candidateMeta": "{{count}}건 · 신뢰도 {{pct}}%",
    "candidateExample": " · 예: {{example}}",
    "addField": "필드로 추가",
    "promoted": "{{count}}개 필드를 draft에 추가했습니다(편집 탭에서 확인).",
    "promotedNone": "추가된 필드가 없습니다: 후보 {{count}}개가 이미 존재하거나 필드 50개 한도에 도달했습니다.",
    "promoteConflict": "필드를 추가하지 못했습니다: 다른 탭에서 저장 중인 변경과 충돌했습니다. 다시 시도해 주세요.",
    "promoteFailed": "필드를 추가하지 못했습니다. 다시 시도해 주세요.",
    "sentimentPositive": "긍정",
    "sentimentNeutral": "중립",
    "sentimentNegative": "부정",
    "noSummary": "요약 없음",
    "showTranscript": "전사 보기 ({{count}})",
    "hideTranscript": "전사 숨기기",
    "respondent": "응답자",
    "ai": "AI",
    "disabled": "AI 인터뷰가 이 워크스페이스에서 비활성화되어 있습니다.",
    "disabledHint": "워크스페이스 관리자가 워크스페이스 설정에서 AI 인터뷰를 활성화할 수 있습니다.",
    "empty": "아직 완료된 AI 인터뷰가 없습니다.",
    "emptyHint": "폼을 공유해 AI 인터뷰 수집을 시작하세요.",
    "emptyShareCta": "폼 공유하기",
    "results": "결과",
    "analyticsTitle": "응답 분석",
    "backToEditor": "폼 편집으로",
    "exportCsv": "CSV 내보내기",
    "statResponses": "완료 응답",
    "statSummarized": "요약 생성",
    "statSentiment": "감정",
    "statAverage": "평균",
    "npsBreakdown": "추천 {{promoters}} · 중립 {{passives}} · 비추천 {{detractors}}",
    "tabTranscript": "전사",
    "tabExtracted": "추출 값",
    "tabQuotes": "인용 모음",
    "tabThemes": "테마",
    "loadingTranscript": "전사를 불러오는 중입니다…",
    "transcriptLoadError": "전사를 불러오지 못했습니다.",
    "emptyTranscript": "기록된 전사가 없습니다.",
    "emptyExtracted": "아직 추출된 값이 없습니다.",
    "emptyQuotes": "아직 근거 인용이 없습니다.",
    "emptyThemes": "아직 테마가 없습니다. 방금 끝난 대화라면 1–2분 내 백그라운드 분석이 채웁니다.",
    "themesPending": "정성 테마는 백그라운드 분석이 끝나면 표시됩니다.",
    "themesPendingReviewLink": "대기 중인 코드 검토",
    "exportInsightsMarkdown": "인사이트 다운로드 (.md)",
    "liveInsights": "실시간 포착 인사이트",
    "colField": "필드",
    "colValue": "값",
    "colStatus": "상태",
    "colEvidence": "근거",
    "codeContext": "맥락",
    "codeImpact": "영향",
    "codeSeverity": "심각도",
    "aggregateTitle": "집계 분석",
    "aggregateSegment": "세그먼트",
    "aggregateMetric": "지표",
    "aggregateAvg": "평균",
    "tabFields": "구조화 필드",
    "tabInsights": "창발 인사이트",
    "tabQuality": "인터뷰 품질",
    "fieldsSummary": "확정 {{resolved}} · 거부 {{declined}} · 미해결 {{unresolved}}",
    "fieldNoValue": "값 없음",
    "statusExtracted": "추출됨",
    "statusInferred": "추론됨",
    "statusDeclined": "거부함",
    "statusSkipped": "건너뜀",
    "statusInvalid": "유효하지 않음",
    "statusContradictory": "상충",
    "statusMissing": "미수집",
    "statusUnknown": "미상",
    "statusNotApplicable": "해당 없음",
    "codeTypeTheme": "테마",
    "codeTypePainPoint": "불편 지점",
    "codeTypeEmotionalSignal": "감정 신호",
    "codeTypeWorkaround": "우회 방법",
    "codeTypeRevealedBehavior": "드러난 행동",
    "codeTypeContradiction": "모순",
    "qualityCompletionReason": "완료 사유",
    "reasonObjectivesSatisfied": "목표 충족",
    "reasonHardExchangeLimit": "질문 예산 도달",
    "reasonRespondentStop": "응답자 종료",
    "reasonSafetyStop": "안전 중단",
    "reasonNoCollectableItems": "추가 수집 불가",
    "reasonUnknown": "알 수 없음",
    "qualityQuestions": "질문 수",
    "qualityFollowups": "후속 질문",
    "qualityTurns": "대화 턴",
    "qualityRefusedFields": "거부된 필드",
    "qualityUnresolvedFields": "미해결 필드",
    "qualityConflicts": "상충 {{count}}건",
    "qualityWarnings": "추출 경고 {{count}}건",
    "qualityNone": "없음"
  },
  "results": {
    "viewLabel": "결과 보기",
    "views": {
      "summary": "요약",
      "answers": "응답",
      "flow": "흐름",
      "research": "연구 분석",
      "qualitative": "정성 분석",
      "partials": "부분 제출"
    },
    "summaryEmpty": "아직 요약할 결과가 없습니다",
    "summaryEmptyDescription": "분석할 수 있는 완료 응답이 들어오면 요약 지표가 표시됩니다.",
    "unsupported": {
      "description": "이 폼 종류는 이 결과 보기에 해당하는 데이터를 만들지 않습니다.",
      "classic": {
        "summary": "요약을 사용할 수 없습니다",
        "answers": "응답을 사용할 수 없습니다",
        "flow": "흐름 분석을 사용할 수 없습니다",
        "research": "연구 분석을 사용할 수 없습니다",
        "qualitative": "정성 분석을 사용할 수 없습니다",
        "partials": "부분 제출을 사용할 수 없습니다"
      },
      "interview": {
        "summary": "요약을 사용할 수 없습니다",
        "answers": "인터뷰 응답을 사용할 수 없습니다",
        "flow": "인터뷰 흐름을 사용할 수 없습니다",
        "research": "인터뷰에는 연구 분석 보기가 지원되지 않습니다",
        "qualitative": "정성 검토를 사용할 수 없습니다",
        "partials": "인터뷰는 부분 제출을 사용하지 않습니다"
      }
    }
  },
  "responses": {
    "title": "응답",
    "statResponses": "총 응답",
    "statQuestions": "질문 수",
    "emptyFiltered": "이 기간에 들어온 응답이 없습니다.",
    "emptyShareCta": "폼 공유하기",
    "submittedAt": "제출 시각",
    "export": "내보내기",
    "exportCsv": "CSV 내보내기",
    "exportCsvCodes": "코드 값 CSV",
    "exportCsvLong": "롱 포맷 CSV",
    "exportCsvDeidentified": "비식별 CSV",
    "exportXlsx": "Excel 통합 문서",
    "exportPdf": "연구 리포트 (PDF)",
    "exportCodebook": "코드북 (JSON)",
    "exportSpss": "SPSS syntax",
    "exporting": "내보내는 중…",
    "columnsToggle": "표시할 컬럼",
    "searchLabel": "답변 검색",
    "searchPlaceholder": "예: 이름·키워드",
    "filterFrom": "시작일",
    "filterTo": "종료일",
    "filterToggle": "필터",
    "applyFilter": "적용",
    "clearFilter": "초기화",
    "loadingAggregate": "불러오는 중…",
    "aggregateFailed": "이 보기를 불러오지 못했습니다.",
    "retry": "다시 시도",
    "prev": "이전",
    "next": "다음",
    "pageOf": "{{current}} / {{total}} 페이지",
    "sortPageScoped": "정렬은 현재 페이지({{count}}개)에만 적용됩니다.",
    "pagerDeepWarning": "이 깊이부터는 '이전'이 일부 페이지를 건너뛸 수 있습니다. 전체 데이터는 CSV 내보내기를 사용하세요.",
    "tabTable": "표",
    "tabSummary": "요약",
    "tabResearch": "고급 연구",
    "researchTitle": "고급 연구 분석",
    "researchDescription": "응답을 그룹별로 비교하거나 가중치를 적용할 때 사용합니다. 일반적인 결과 확인은 요약과 분석 탭만으로 충분합니다.",
    "crosstabTitle": "교차표",
    "crosstabDescription": "한 질문의 응답이 다른 질문의 그룹에 따라 어떻게 달라지는지 비교합니다.",
    "crosstabApplyHint": "비교할 질문과 그룹 기준을 확인한 뒤 적용을 눌러 결과를 만드세요.",
    "crosstabBase": "베이스 n={{count}}",
    "crosstabNeedAxes": "교차표를 만들려면 선택형·평점·계산·숨김 필드가 두 개 이상 필요합니다.",
    "crosstabRows": "행",
    "crosstabBanner": "배너 열",
    "crosstabApply": "적용",
    "crosstabMultiRule": "다중선택 응답은 선택한 각 범주에 한 번씩 계상됩니다. 따라서 백분율 합계가 100%를 넘을 수 있습니다.",
    "crosstabColumnPercent": "열 {{value}}",
    "crosstabRowPercent": "행 {{value}}",
    "crosstabSmallSample": "소표본 주의: 배너 베이스가 30 미만입니다.",
    "crosstabSignificance": "카이제곱 {{statistic}}, p={{p}}.",
    "crosstabMultipleComparison": "화살표는 보정 전 쌍별 p<.05를 뜻합니다. 다중비교는 위양성을 늘리므로 주의해 해석하세요.",
    "crosstabSignificantHigher": "적어도 한 배너 열보다 유의하게 높음(보정 전 p<.05)",
    "crosstabStatisticsDetails": "통계 세부정보",
    "crosstabSignificanceWarning": {
      "expected_count_below_5": "기대도수가 5 미만인 셀이 있어 유의성 결과를 숨겼습니다.",
      "multiple_membership": "다중 소속 축에는 유의성 결과를 표시하지 않습니다.",
      "insufficient_categories": "유의성 검정에는 값이 있는 행과 배너 범주가 각각 두 개 이상 필요합니다."
    },
    "crosstabWeightTargets": "배너 목표 분포(합계 100%)",
    "crosstabWeightSection": "응답 가중치 설정",
    "crosstabApplyWeights": "가중치 적용",
    "crosstabWeightedCount": "가중 {{value}}",
    "crosstabWeightDiagnostics": "비가중 n={{n}} · 가중 n={{weighted}} · ESS={{ess}} · 설계효과={{deff}}",
    "crosstabWeightError": {
      "invalid_targets": "가중치를 적용하지 않았습니다. 양수인 목표값의 합을 100%로 맞추세요.",
      "multiple_membership": "다중 소속 배너에는 가중치를 적용할 수 없습니다."
    },
    "crosstabMeanComparison": "배너 평균 비교: {{test}} {{statistic}}, p={{p}}.",
    "crosstabMeanTest": {
      "welch_t": "Welch t",
      "anova": "ANOVA F"
    },
    "crosstabMeanInsufficient": "각 배너에 숫자 관측값이 두 개 이상 필요해 평균 비교를 숨겼습니다.",
    "segments": "세그먼트",
    "segmentAll": "전체 응답",
    "segmentName": "세그먼트 이름",
    "segmentCondition": "세그먼트 조건",
    "segmentSave": "세그먼트 저장",
    "segmentDelete": "{{name}} 세그먼트 삭제",
    "segmentDeleteAction": "삭제",
    "segmentDeleteConfirm": "삭제하시겠어요?",
    "segmentDeleting": "삭제 중…",
    "segmentSaving": "저장 중…",
    "tabAnalytics": "분석",
    "tabPartial": "부분 제출",
    "viewLabel": "응답 보기",
    "lastUpdated": "최근 갱신",
    "progress": "진행 상황",
    "partialEmpty": "아직 부분 제출이 없습니다.",
    "partialHint": "완료되지 않은 진행 중인 제출입니다. 응답 수에 포함되지 않으며, 폼이 제출되면 사라집니다.",
    "quotaTitle": "쿼터 충족 현황",
    "quotaRevision": "정책 revision {{revision}}",
    "quotaNotConfigured": "설정된 쿼터 정책이 없습니다.",
    "quotaSaved": "새 쿼터 revision을 저장했습니다.",
    "quotaConflict": "다른 탭에서 쿼터 정책이 변경되었습니다. 최신 revision을 검토한 뒤 다시 저장하세요.",
    "quotaRemaining": "{{remaining}}명 남음",
    "quotaConfigure": "쿼터·스크린아웃 설정",
    "quotaPublishFirst": "쿼터를 설정하기 전에 폼을 발행해 주세요.",
    "quotaNeedsScreener": "스크리너로 사용할 객관식, 드롭다운, 체크박스 또는 숨김 필드를 추가해 주세요.",
    "quotaCellLabel": "셀 이름",
    "quotaTarget": "목표",
    "quotaRemoveCell": "{{label}} 삭제",
    "quotaCurrentCount": "현재 revision: {{accepted}} / {{target}}명 수락",
    "quotaQuestion": "스크리너 문항",
    "quotaValue": "일치 값",
    "quotaRemoveCondition": "조건 삭제",
    "quotaAddCondition": "교차 셀 조건 추가",
    "quotaAddCell": "쿼터 셀 추가",
    "quotaScreenTitle": "부적격 종료 제목",
    "quotaScreenBody": "부적격 종료 안내",
    "quotaRevisionWarning": "저장하면 불변 정책 revision이 새로 생기고 해당 revision의 카운터가 0부터 시작합니다. 과거 응답에는 당시 적용된 정책이 유지됩니다.",
    "quotaSave": "새 revision 저장",
    "quotaSaving": "저장 중…",
    "quotaDefaultTitle": "현재 귀하의 그룹에서는 더 이상 응답을 받고 있지 않습니다",
    "quotaDefaultBody": "관심을 가져 주셔서 감사합니다.",
    "analyticsViews": "조회수",
    "analyticsSubmits": "제출수",
    "analyticsBounce": "이탈률",
    "analyticsAvgTime": "평균 작성 시간",
    "analyticsDevice": "기기",
    "analyticsReferer": "유입 경로",
    "analyticsUtm": "캠페인 소스",
    "analyticsTrend": "조회·제출 추이",
    "analyticsFunnel": "문항별 퍼널",
    "analyticsFunnelPresentationNote": "랜덤화 응답은 배정 arm별로 나누고 실제 제시 위치 기준으로 계산합니다. 작성 시 정의 순서로 다시 합치지 않습니다.",
    "analyticsFunnelArm": "균형 배정 arm {{arms}}",
    "analyticsFunnelRandomized": "랜덤 제시 순서",
    "analyticsFunnelLegacy": "정의 순서(레거시)",
    "analyticsFunnelPosition": "실제 제시 {{position}}번째",
    "analyticsFunnelPositionDropoff": "부분 응답 {{count}}개가 실제 제시 {{position}}번째에서 멈췄습니다.",
    "analyticsWindow": "추이 기간",
    "analyticsWindowDays": "{{days}}일",
    "analyticsPartials": "부분 제출",
    "analyticsAbandonment": "중도 이탈률",
    "analyticsNoData": "아직 데이터가 없습니다.",
    "analyticsEmptyTitle": "아직 분석할 활동이 없습니다",
    "analyticsEmptyBody": "폼을 공유하면 조회와 제출이 생기는 대로 분석 결과가 표시됩니다.",
    "analyticsEmptyFilteredTitle": "선택한 기간에 분석할 데이터가 없습니다",
    "analyticsEmptyFilteredBody": "기간을 초기화하거나 다른 날짜 범위를 선택해 보세요.",
    "analyticsBasisNote": "조회수, 이탈률과 이 퍼널은 페이지 로드 기준입니다. 응답자 기준 연속성 추정은 응답 표·CSV·리포트 API에 별도로 표시되며 본인 확인 결과가 아닙니다.",
    "summaryAverage": "평균",
    "summaryCoverage": "{{total}}명 중 {{answered}}명 응답",
    "summaryRange": "범위 {{min}}~{{max}}",
    "summaryResponseCount_one": "응답 {{count}}개",
    "summaryResponseCount_other": "응답 {{count}}개",
    "summaryAvgRank": "평균 {{rank}}",
    "summaryEmpty": "이 질문에 대한 응답이 아직 없습니다.",
    "otherOption": "기타(직접 입력)",
    "sortBy": "{{column}}, 정렬하려면 누르세요",
    "sortByAscending": "{{column}}, 오름차순 정렬됨, 내림차순으로 정렬하려면 누르세요",
    "sortByDescending": "{{column}}, 내림차순 정렬됨, 정렬을 해제하려면 누르세요",
    "keyFindingsEyebrow": "핵심 요약",
    "keyFindingsTitle": "현재 응답 흐름",
    "keyFindingsBody": "요약과 분석 화면에서 응답을 빠르게 의사결정으로 연결하세요.",
    "keyFindingsEmptyTitle": "아직 응답이 없습니다",
    "keyFindingsEmptyBody": "공개 링크를 공유하면 응답 수집을 시작할 수 있습니다.",
    "viewSummaryCta": "요약 보기",
    "viewAnalyticsCta": "분석 보기",
    "keyFindingsPartials": "작성 중 응답",
    "keyFindingsNextStep": "다음 단계",
    "keyFindingsReview": "검토",
    "keyFindingsShare": "공유",
    "partialInsight": "{{count}}명이 제출 전에 이탈했습니다. 마지막 작성 위치를 확인하고 해당 부분을 더 짧거나 단순하게 만드는 것을 검토하세요.",
    "partialHotspotAfter": "현재 페이지에서는 {{count}}명({{percent}}%)이 주로 “{{label}}” 이후에 멈췄습니다.",
    "partialHotspotStart": "현재 페이지에서는 {{count}}명({{percent}}%)이 첫 질문에 답하기 전에 이탈했습니다.",
    "partialHotspotNext": "다음 질문: {{label}}",
    "partialHotspotEditCta": "질문 편집",
    "lowCoverageEyebrow": "확인이 필요해요",
    "lowCoverageTitle": "“{{label}}” 질문은 응답자 {{total}}명 중 {{answered}}명만 답했습니다.",
    "lowCoverageBody": "질문을 더 앞으로 옮기거나, 선택 항목으로 바꾸거나, 표현을 명확히 하는 것을 검토하세요.",
    "lowCoverageEditCta": "이 질문 편집",
    "showMoreFields_one": "문항 {{count}}개 더 보기",
    "showMoreFields_other": "문항 {{count}}개 더 보기",
    "showLess": "접기",
    "actions": "작업",
    "viewDetail": "보기",
    "signaturePreview": "제출된 서명",
    "detailTitle": "응답 상세",
    "respondentEstimate": "응답자 추정",
    "respondentEstimateCaveat": "폼별 브라우저 연속성으로 추정한 값이며 본인 확인 결과가 아닙니다. 시크릿 창, 저장소 삭제, 다른 브라우저나 기기로 우회할 수 있습니다.",
    "respondentRepeatCount_one": "재응답 {{count}}회",
    "respondentRepeatCount_other": "재응답 {{count}}회",
    "respondentReviewRecommended": "이 폼의 재응답 정책에 따라 검토가 필요합니다",
    "respondentConfidence": {
      "deterministic": "높은 신뢰도",
      "probable": "추정",
      "weak": "낮은 신뢰도"
    },
    "qualityEstimate": "품질 신호",
    "qualityFlaggedOnly": "플래그된 응답",
    "qualityShowAll": "모든 응답 보기",
    "qualityScore": "점수 {{score}}/100",
    "qualityNoSignals": "감지된 품질 신호 없음",
    "qualityExcluded": "분석에서 제외됨",
    "qualityExclude": "분석 제외",
    "qualityRestore": "분석 복구",
    "qualityExclusionUpdated": "분석 포함 상태를 변경했습니다.",
    "qualityExclusionError": "분석 포함 상태를 변경하지 못했습니다.",
    "qualitySignal": {
      "speeder": "비정상적으로 빠른 응답",
      "straightline": "매트릭스 직선응답",
      "low_selection_diversity": "선택 다양성 부족",
      "duplicate": "추정 재응답",
      "trap_failed": "주의력 확인 실패",
      "meaningless_text": "정보량이 낮은 주관식",
      "generated_text_suspected": "생성형 텍스트 의심"
    },
    "exclusionReason": {
      "quality_review": "수동 품질 검토",
      "test_response": "테스트 응답",
      "duplicate": "중복",
      "other": "기타"
    },
    "presentationOrder": "실제 제시 순서",
    "presentationAssignment": "배정",
    "deleteResponse": "삭제",
    "deleteResponseConfirm": "삭제하시겠어요?",
    "revokeEditAccess": "수정 링크 폐기",
    "revokeEditAccessConfirm": "이 응답의 수정 링크를 폐기할까요?",
    "editAccessRevoked": "응답 수정 권한을 폐기했습니다.",
    "editAccessRevokeError": "응답 수정 권한을 폐기할 수 없습니다.",
    "responseDeleted": "응답이 삭제되었습니다.",
    "responseDeleteError": "응답을 삭제하지 못했습니다."
  },
  "share": {
    "linkTitle": "공유 링크",
    "notPublished": "폼을 공개하면 공유 링크가 생성됩니다.",
    "unpublishedChanges": "공개되지 않은 변경 사항이 있습니다 — 공개 링크는 아직 이전 버전을 보여줍니다.",
    "unpublishedChangesCta": "변경 사항 공개",
    "goToEditor": "에디터로 이동해 공개하기",
    "copy": "복사",
    "copied": "복사됨!",
    "copyError": "클립보드에 복사하지 못했습니다.",
    "renderMode": "응답 화면 방식",
    "modeConversational": "대화형 (한 번에 한 질문)",
    "modeConversationalHint": "한 화면에 한 문항씩 집중하는 몰입형 흐름입니다.",
    "modeClassic": "클래식 (설문 시트)",
    "modeClassicHint": "번호가 매겨진 문항이 한 장의 설문 시트에 이어집니다.",
    "modeDocument": "문서형 (읽는 페이지)",
    "modeDocumentHint": "문서를 읽듯 훑고 채우는 레이아웃입니다. 프레임 없는 페이지 위에 조용한 입력칸이 놓이고, 표지와 다단 배치를 지원합니다.",
    "formLocale": "폼 언어 (응답자에게 표시)",
    "primaryColor": "주 색상",
    "backgroundColor": "배경",
    "textColor": "텍스트",
    "save": "설정 저장",
    "saving": "저장 중…",
    "saved": "설정이 저장되었습니다.",
    "saveError": "설정을 저장할 수 없습니다.",
    "embedTitle": "임베드",
    "embedHint": "폼을 넣고 싶은 곳에 이 HTML을 붙여넣으세요.",
    "embedHeightConversational": "대화형 폼은 한 번에 한 질문씩 보여주므로 {{height}}px 정도의 고정 높이가 잘 맞습니다.",
    "embedHeightClassic": "클래식 폼은 한 페이지에 모두 펼쳐지므로 {{height}}px 정도에서 시작해 가장 긴 화면에 맞게 높이를 늘리세요.",
    "embedInline": "인라인 프레임",
    "embedPopup": "팝업",
    "embedSlideIn": "슬라이드인 패널",
    "embedSideTab": "사이드탭",
    "embedFullscreen": "전체화면",
    "embedKiosk": "키오스크",
    "embedKioskHint": "키오스크 모드는 제출할 때마다 깨끗한 폼을 다시 불러와 다음 응답자에게 이전 입력이 남지 않게 합니다.",
    "embedCopiedNote": "임베드 코드를 클립보드에 복사했습니다.",
    "copyEmbed": "임베드 코드 복사",
    "customDomainTitle": "커스텀 도메인",
    "customDomainHint": "소유한 도메인을 연결합니다. 아래 대상을 CNAME으로 지정하고 소유권 확인용 TXT 레코드를 게시하세요.",
    "customDomainHostname": "도메인",
    "customDomainConfigure": "도메인 설정",
    "customDomainPending": "DNS 확인 대기 중",
    "customDomainActive": "도메인 확인 및 활성화 완료",
    "customDomainDnsHint": "DNS 변경 전파에는 시간이 걸릴 수 있습니다. 도메인을 사용하는 동안 두 레코드를 유지하세요.",
    "customDomainVerify": "DNS 확인",
    "customDomainVerifying": "확인 중…",
    "customDomainRemove": "도메인 제거",
    "customDomainRemoveConfirm": "한 번 더 눌러 제거",
    "customDomainError": {
      "invalid": "경로나 포트 없이 올바른 호스트 이름을 입력하세요.",
      "taken": "이미 다른 폼에 연결된 도메인입니다.",
      "not_configured": "먼저 도메인을 설정하세요.",
      "not_verified": "아직 예상한 TXT 레코드를 찾지 못했습니다."
    },
    "openForm": "폼 열기",
    "slugTitle": "사용자 지정 URL",
    "slugHint": "소문자, 숫자, 하이픈만 사용하세요 (3–60자). 변경하면 기존 링크가 깨집니다.",
    "slugSave": "URL 저장",
    "slugSaved": "URL이 변경되었습니다.",
    "slugInvalidFormat": "소문자, 숫자, 하이픈만 사용할 수 있습니다.",
    "slugTooShort": "너무 짧습니다 — 3자 이상 입력하세요.",
    "slugTooLong": "너무 깁니다 — 60자 이하로 입력하세요.",
    "slugReserved": "예약된 URL입니다. 다른 값을 사용하세요.",
    "slugTaken": "이미 사용 중인 URL입니다. 다른 값을 사용하세요.",
    "slugError": "URL을 변경할 수 없습니다.",
    "launchEyebrow": "공유 시작",
    "launchTitle": "폼을 공유할 준비가 되었습니다",
    "launchBody": "공개 링크를 복사하거나, 응답자 화면으로 열어 보고, 사이트에 임베드할 수 있습니다.",
    "launchDraftTitle": "공유하려면 먼저 공개하세요",
    "launchDraftBody": "에디터에서 폼을 마무리한 뒤 공개하면 공개 링크가 생성됩니다.",
    "previewRespondent": "응답자 화면 미리보기",
    "viewResponses": "응답 보기",
    "checkPublished": "공개됨",
    "checkLink": "공유 링크 준비됨",
    "checkTest": "테스트 응답 보내기",
    "checkQuestions": "질문 추가됨",
    "readyTitle": "준비됨",
    "recommendedTitle": "공유하기 전에",
    "checkPreview": "응답자 화면으로 미리보기",
    "checkMobile": "휴대폰에서 열어 보기",
    "qrTitle": "QR 코드",
    "qrHint": "인쇄하거나 화면에 띄워 두면, 휴대폰 카메라로 스캔해 바로 폼을 열 수 있습니다.",
    "qrDownloadPng": "PNG 다운로드",
    "qrDownloadSvg": "SVG 다운로드",
    "emailNotificationTitle": "이메일 알림",
    "emailNotificationHint": "응답이 완료될 때마다 팀에 이메일을 보냅니다. 전송은 백그라운드 큐에서 처리됩니다.",
    "emailNotificationEnable": "응답 완료 시 이메일 받기",
    "emailNotificationEnableHint": "클래식 폼과 AI 인터뷰 모두에 적용됩니다.",
    "emailNotificationRecipients": "수신자",
    "emailNotificationRecipientsHint": "한 줄에 하나씩 또는 쉼표로 구분하세요. 최대 5명까지 가능합니다.",
    "emailNotificationSave": "알림 저장",
    "emailNotificationSaved": "이메일 알림 설정이 저장되었습니다.",
    "emailNotificationNotConfigured": "이 배포에는 이메일 전송이 설정되어 있지 않습니다.",
    "emailNotificationInvalid": "올바른 이메일 주소를 입력하세요.",
    "emailNotificationLimit": "수신자는 최대 5명까지 입력할 수 있습니다.",
    "emailNotificationConflict": "다른 곳에서 폼이 변경되었습니다. 최신 설정을 불러왔으니 다시 시도하세요.",
    "emailNotificationError": "이메일 알림 설정을 변경할 수 없습니다.",
    "respondentConvenienceTitle": "응답자 후속 기능",
    "respondentConvenienceHint": "계정을 만들지 않아도 제출한 응답을 수정하거나 응답 사본을 받을 수 있게 합니다.",
    "respondentEditingEnable": "비공개 응답 수정 링크 발급",
    "respondentEditingHint": "링크는 30일 동안 응답 1건에만 권한을 부여합니다. 응답 목록에서 폐기할 수 있습니다.",
    "respondentReceiptEnable": "응답자에게 응답 사본 이메일 보내기",
    "respondentReceiptHint": "제출 후 백그라운드 큐에서 발송합니다. 업로드 파일과 서명 원본은 첨부하지 않습니다.",
    "respondentReceiptEmailField": "응답자 이메일 문항",
    "respondentReceiptEmailPlaceholder": "이메일 문항 선택",
    "respondentConvenienceEmailRequired": "폼에 이메일 문항을 추가한 뒤 여기에서 선택하세요.",
    "respondentConvenienceSave": "응답자 옵션 저장",
    "respondentConvenienceSaved": "응답자 옵션을 저장했습니다.",
    "respondentConvenienceError": "응답자 옵션을 변경할 수 없습니다.",
    "translationsTitle": "설문 번역",
    "translationsHint": "발행된 제목, 문항, 선택지, 시작 화면, 제출 문구, 완료 화면을 번역합니다. 빈 항목은 기본 언어로 폴백합니다.",
    "translationsPublishWarning": "발행하지 않은 초안 변경이 있습니다. 다시 발행할 때 설정된 모든 언어의 누락 문구를 검사하고 다음 버전 생성 전에 목록을 표시합니다.",
    "translationsLanguage": "번역 언어",
    "translationsBase": "기본 언어: {{locale}}",
    "translationsRevision": "리비전 {{revision}}",
    "translationsValue": "번역",
    "translationsSave": "번역 리비전 저장",
    "translationsAiDraft": "AI 초벌 번역",
    "translationsMissing": "번역 {{count}}개 누락",
    "translationsMissing_plural": "번역 {{count}}개 누락",
    "translationsComplete": "번역 완료",
    "translationsSaved": "새 불변 번역 리비전을 저장했습니다.",
    "translationsError": "번역 리비전을 만들 수 없습니다.",
    "translationsRtlUnsupported": "이번 릴리스는 오른쪽에서 왼쪽으로 쓰는 언어를 지원하지 않습니다. 응답자 언어는 영어, 한국어, 일본어를 지원합니다.",
    "accessTitle": "폼 권한",
    "accessHint": "편집자는 폼 변경과 응답 열람, 분석자는 응답 열람만, 뷰어는 응답 없이 폼 확인만 할 수 있습니다.",
    "accessRole": "{{email}}의 폼 권한",
    "accessNone": "권한 없음",
    "accessEditor": "편집자",
    "accessAnalyst": "분석자",
    "accessViewer": "뷰어",
    "accessCreator": "편집자 (생성자)",
    "accessWorkspaceManager": "편집자 (워크스페이스 관리자)",
    "accessSave": "권한 저장",
    "researchComplianceTitle": "연구 준법",
    "researchComplianceHint": "이 폼의 연구 동의문, 철회 링크, 보존기간 자동 파기와 IRB용 데이터 처리 기록을 설정합니다.",
    "researchPurpose": "연구 목적",
    "researchContact": "연구 문의처",
    "researchRetentionDays": "보존기간 (응답 완료 후 일수)",
    "researchCollectionItems": "동의문 수집 항목",
    "researchCollectionItemsHint": "한 줄에 하나씩, 최대 20개까지 입력하세요.",
    "researchWithdrawalEnable": "완료 후 비공개 철회 및 삭제 링크 발급",
    "researchThirdPartyEnable": "제3자에게 데이터를 제공합니다",
    "researchThirdPartyDetails": "제공받는 자, 제공 항목과 목적",
    "researchSave": "연구 설정 저장",
    "researchSaved": "연구 설정을 저장했습니다.",
    "researchSaveFailed": "연구 설정을 저장할 수 없습니다.",
    "researchConsentApply": "연구 동의문 블록 추가",
    "researchConsentRefresh": "연구 동의문 블록 갱신",
    "researchConsentApplied": "초안의 연구 동의문 블록을 갱신했습니다.",
    "researchConsentFailed": "동의문 블록을 갱신할 수 없습니다.",
    "researchConsentFlagRequired": "템플릿을 적용하려면 이 워크스페이스에서 개인정보 동의 블록 기능을 활성화하세요.",
    "researchProcessingRecord": "데이터 처리 기록 다운로드",
    "contactsTitle": "연락처와 개별 초대",
    "contactsHint": "워크스페이스 연락처를 가져와 개별 폼 링크를 보내고, 링크 사용과 완료 상태를 확인합니다. 다시 가져오지 않은 연락처는 365일 뒤 삭제됩니다.",
    "contactsResult": {
      "invalid_csv": "CSV를 읽을 수 없습니다. 파일 형식을 확인한 뒤 다시 시도하세요.",
      "missing_email": "CSV에 email 열이 필요합니다.",
      "row_limit": "CSV가 5,000행 제한을 초과합니다.",
      "no_valid_contacts": "CSV에서 유효한 연락처를 찾지 못했습니다.",
      "imported": "연락처 {{count}}명을 가져왔습니다.",
      "publish_first": "초대를 보내려면 먼저 폼을 발행하세요.",
      "email_not_configured": "이 워크스페이스에 이메일 발송이 구성되어 있지 않습니다.",
      "invalid_reminder": "리마인더 일수는 1~30 사이의 정수여야 합니다.",
      "invited": "연락처 {{count}}명에게 초대를 보냈습니다.",
      "revoked": "초대 접근 권한을 폐기했습니다.",
      "delete_confirmation": "계속하려면 대화상자에서 연락처 전체 삭제를 확인하세요.",
      "deleted": "연락처 {{count}}명을 삭제했습니다.",
      "unknown": "연락처 작업을 완료할 수 없습니다."
    },
    "contactsInvited": "초대",
    "contactsClaimed": "링크 사용",
    "contactsCompleted": "완료",
    "contactsImportTitle": "CSV 가져오기",
    "contactsImportHint": "email 열은 필수이고 name 열은 선택입니다. 나머지 열은 연락처 속성이 됩니다. 최대 5,000행까지 지원합니다.",
    "contactsImport": "연락처 가져오기",
    "contactsImporting": "가져오는 중…",
    "contactsSendTitle": "개별 링크 보내기",
    "contactsSendHint": "활성 연락처 {{count}}명이 대상입니다. 수신 거부 및 보존 기간 만료 연락처는 항상 제외됩니다.",
    "contactsReminderDays": "며칠 뒤 리마인더",
    "contactsSend": "활성 연락처 초대",
    "contactsSending": "보내는 중…",
    "contactsList": "워크스페이스 연락처",
    "contactsInvitations": "폼 초대",
    "contactsEmail": "이메일",
    "contactsName": "이름",
    "contactsState": "상태",
    "contactsAccess": "접근 권한",
    "contactsOptedOut": "수신 거부",
    "contactsActive": "활성",
    "contactsRevoke": "폐기",
    "contactsRevoking": "폐기 중…",
    "contactsDeleteTitle": "워크스페이스 연락처 전체 삭제",
    "contactsDeleteHint": "연락처, 초대 이력, 대기 중인 초대 메일이 영구 삭제됩니다.",
    "contactsDeleteConfirmBody": "워크스페이스의 모든 연락처, 초대 이력, 대기 중인 초대 메일이 영구 삭제됩니다. 이 작업은 되돌릴 수 없습니다.",
    "contactsDeleteConfirm": "연락처 전체 삭제",
    "contactsDeleteCancel": "취소",
    "contactsDelete": "연락처 전체 삭제",
    "contactsDeleting": "삭제 중…",
    "contactsInvitationState": {
      "invited": "초대됨",
      "reminded": "리마인더 전송",
      "claimed": "링크 사용",
      "completed": "완료",
      "revoked": "폐기됨",
      "optedOut": "수신 거부"
    },
    "webhookTitle": "웹훅",
    "webhookHint": "응답 완료 시 response.completed, 인터뷰 분석이 종료 상태에 도달하면 response.analysis.completed 이벤트를 지정한 엔드포인트로 보냅니다. 전송은 백그라운드 큐에서 처리됩니다.",
    "webhookUrl": "웹훅 URL",
    "webhookSecret": "서명 secret",
    "webhookSecretPlaceholder": "서명 secret (선택)",
    "webhookAdd": "웹훅 추가",
    "webhookEmpty": "아직 웹훅이 없습니다.",
    "webhookEnabled": "활성",
    "webhookDisabled": "비활성",
    "webhookSigned": "서명됨",
    "webhookEnable": "활성화",
    "webhookDisable": "비활성화",
    "webhookDelete": "삭제",
    "webhookStats": "대기 {{queued}} · 전송 {{succeeded}} · 실패 {{failed}}",
    "webhookLastDelivered": "마지막 전송",
    "webhookDeliveriesTitle": "최근 전송",
    "webhookDeliveryAttempts": "{{count}}회 시도",
    "webhookDeliveryAttempts_plural": "{{count}}회 시도",
    "webhookDeliveryDelivered": "전송됨",
    "webhookDeliveryNextRun": "다음 실행",
    "webhookRetry": "재전송",
    "webhookRetryQueued": "웹훅 전송을 재시도 큐에 넣었습니다.",
    "webhookRetryBusy": "이미 대기 중이거나 실행 중인 전송입니다.",
    "webhookDeliveryStatus": {
      "queued": "대기",
      "running": "실행 중",
      "succeeded": "전송됨",
      "failed": "실패",
      "canceled": "취소됨"
    },
    "webhookSaved": "웹훅 설정이 저장되었습니다.",
    "webhookDuplicate": "이미 설정된 웹훅 URL입니다.",
    "webhookUrlInvalid": "유효한 HTTPS URL을 입력하세요. 로컬 HTTP는 개발 환경에서만 허용됩니다.",
    "webhookSecretInvalid": "서명 secret은 200자 이하여야 합니다.",
    "webhookLimit": "이 폼에 추가할 수 있는 웹훅 수를 초과했습니다.",
    "webhookError": "웹훅 설정을 변경할 수 없습니다.",
    "webhookDeleteConfirm": "삭제하시겠어요?"
  },
  "editor": {
    "titlePlaceholder": "폼 제목",
    "blockPlaceholder": "질문 추가를 눌러 블록을 삽입하세요",
    "labelPlaceholder": "질문을 입력하세요…",
    "publish": "공개",
    "unpublish": "공개 취소",
    "discardChanges": "변경 취소",
    "unpublishConfirm": "공개를 취소하면 응답자가 더 이상 이 폼에 접근할 수 없습니다. 계속할까요?",
    "revertConfirm": "공개된 버전 이후의 편집 내용이 모두 사라집니다. 계속할까요?",
    "confirm": "계속",
    "cancel": "취소",
    "publishedToast": "폼을 공개했습니다.",
    "unpublishedToast": "폼 공개를 취소했습니다.",
    "reverted": "공개된 버전으로 되돌렸습니다.",
    "saved": "저장됨",
    "saving": "저장 중…",
    "saveError": "저장 실패",
    "saveConflict": "다른 세션에서 편집됨",
    "saveConflictReload": "최신본 불러오기",
    "saveConflictReloadConfirm": "최신본을 불러오면 이 탭에서 편집한 내용이 저장된 최신 버전으로 교체됩니다. 되돌릴 수 없습니다. 계속할까요?",
    "saveRetry": "다시 시도",
    "unsavedLeaveWarning": "저장되지 못한 변경 사항이 있습니다. 그래도 나가시겠습니까?",
    "invalidDraft": "미완성",
    "invalidDraftDetail": "아직 공개할 수 없습니다. 다음 질문을 확인해 주세요: {{labels}}",
    "invalidDraftGeneric": "아직 공개할 수 없습니다. 일부 질문이 미완성입니다.",
    "interviewEmptyHint": "발행하려면 항목(필드)이나 대화 주제를 최소 하나는 추가해 주세요.",
    "invalidDefinition": "폼 정의가 유효하지 않습니다.",
    "missingTranslations": "번역 {{count}}개가 누락되어 발행할 수 없습니다. 공유 탭에서 완료하세요. 우선 항목: {{fields}}",
    "interviewPreflightTitle": "인터뷰 발행 사전 점검",
    "interviewPreflightSummary": "필수 필드 {{hardFields}}개, 필수 목표 {{requiredGoals}}개 · 예산 {{maxExchanges}}회 교환 / 후속질문 {{maxFollowups}}개",
    "interviewPreflightReady": "현재 설계는 실행 가능합니다.",
    "interviewPreflightBlocked": "발행 전 차단 항목을 먼저 해결해 주세요.",
    "interviewPreflightBlockers": "차단 항목 ({{count}})",
    "interviewPreflightWarnings": "주의 항목 ({{count}})",
    "featureDisabled": "이 워크스페이스에서 활성화되지 않은 기능을 사용하는 폼입니다.",
    "emptyForm": "질문을 하나 이상 추가한 뒤 공개해 주세요.",
    "publishedUrl": "공개 URL",
    "aiPlaceholder": "AI에게 이 폼을 어떻게 바꿀지 입력하세요…",
    "aiApply": "AI 수정 적용",
    "aiPending": "수정 중…",
    "aiError": "AI 수정을 적용하지 못했습니다.",
    "required": "필수",
    "addChoice": "선택지 추가",
    "removeChoice": "선택지 삭제",
    "addChoiceImage": "이미지 추가",
    "choiceImageUploading": "업로드 중…",
    "removeChoiceImage": "이미지 제거",
    "choiceImageAlt": "이미지 설명",
    "choiceImageAltPlaceholder": "이미지 설명(대체 텍스트)",
    "choiceImageError": "업로드 실패",
    "allowOther": "기타(직접 입력) 옵션 추가",
    "qualityTrap": "주의력 확인 문항으로 사용",
    "qualityTrapExpected": "기대 정답",
    "qualityTrapHint": "응답자에게는 일반 문항으로 보이며, 오답은 제출 후 작성자 전용 품질 신호에만 반영됩니다.",
    "moveChoiceUp": "선택지 위로",
    "moveChoiceDown": "선택지 아래로",
    "moveQuestionUp": "질문을 위로 이동",
    "moveQuestionDown": "질문을 아래로 이동",
    "rankingSoftCap": "순위 매기기는 선택지 8개 이하일 때 가장 잘 동작합니다 — 목록이 길면 버튼으로 정렬하기 어렵습니다.",
    "choice": "선택지",
    "scale": "단계",
    "ratingShape": "모양",
    "ratingShapeNumber": "숫자",
    "ratingShapeStar": "별",
    "ratingShapeCircle": "동그라미",
    "ratingLowLabel": "최저점 라벨",
    "ratingHighLabel": "최고점 라벨",
    "ratingZeroBased": "0부터 시작 (0–N 척도)",
    "insertTitle": "삽입",
    "questionGroup": "질문",
    "libraryGroup": "연구 문항 라이브러리",
    "contentGroup": "콘텐츠",
    "hint": "질문 추가를 눌러 블록을 삽입하세요. 핸들을 드래그하면 순서를 바꿉니다.",
    "descriptionPlaceholder": "설명 추가 (선택사항)",
    "choiceAria": "선택지 {{index}}",
    "statementBodyPlaceholder": "안내 내용…",
    "statementBodyAria": "안내 내용",
    "inlineFieldInsert": "인라인 필드 삽입",
    "optionsToggle": "옵션",
    "placeholderLabel": "안내 문구",
    "minLength": "최소 글자 수",
    "maxLength": "최대 글자 수",
    "minValue": "최솟값",
    "maxValue": "최댓값",
    "integerOnly": "정수만 허용",
    "numberStep": "증가 단위",
    "numberPrefix": "접두 기호",
    "numberSuffix": "접미 기호",
    "numberDecimals": "소수 자릿수",
    "minSelected": "최소 선택 개수",
    "maxSelected": "최대 선택 개수",
    "dateMin": "가장 이른 날짜",
    "dateMax": "가장 늦은 날짜",
    "timeMin": "가장 이른 시각",
    "timeMax": "가장 늦은 시각",
    "maxFiles": "최대 파일 수",
    "signatureWidth": "패드 너비",
    "signatureHeight": "패드 높이",
    "maxSizeMb": "최대 크기 (MB)",
    "acceptedTypes": "허용 형식 (쉼표로 구분, 예: image/*, .pdf)",
    "privacyItems": "수집 항목",
    "privacyItemsPlaceholder": "한 줄에 한 항목씩 입력",
    "privacyItemsHint": "한 줄에 하나씩 최대 20개 항목을 입력하세요.",
    "privacyPurpose": "수집 및 이용 목적",
    "privacyRetention": "보유 및 이용 기간",
    "privacyRefusal": "동의 거부권과 불이익",
    "privacyLegalNotice": "이 문구는 시작용 템플릿이며 법률 자문이 아닙니다. 공개 전에 운영 정책과 적용 법률에 맞는지 검토하세요.",
    "privacyAgreePreview": "위 개인정보 수집 및 이용에 동의합니다.",
    "privacyMode": "동의 방식",
    "privacyModeAgreeOnly": "동의 체크",
    "privacyModeAgreeOrDecline": "동의/비동의 선택",
    "privacyModeAgreeOnlyHint": "응답자가 동의해야만 제출할 수 있습니다 (필수 동의).",
    "privacyModeAgreeOrDeclineHint": "동의 또는 비동의 중 하나를 반드시 선택합니다. 비동의를 선택해도 제출할 수 있으며 비동의 사실이 기록됩니다 (선택 동의).",
    "privacyPartialBlockedNote": "응답자가 이 동의 문항에 응답하기 전까지는 작성 중인 답변이 부분 응답으로 저장되지 않습니다. 동의 완료 후부터 수집이 시작됩니다.",
    "format": "형식",
    "formatNone": "제한 없음",
    "formatEmail": "이메일",
    "formatUrl": "URL",
    "formatPhone": "전화번호",
    "formatPhoneKr": "한국 휴대폰",
    "formatE164": "국제 (E.164)",
    "formatCustom": "직접 입력 (정규식)",
    "deleteBlock": "질문 삭제",
    "permanentBlockDeleteTitle": "이 블록을 영구 삭제할까요?",
    "permanentBlockDeleteBody": "이 블록은 영구 삭제되며 변경사항을 공개한 뒤에는 응답 표, 요약, CSV 내보내기 등에 더 이상 나타나지 않습니다. 이 작업은 되돌릴 수 없습니다.",
    "permanentBlockDeleteConfirm": "영구 삭제",
    "blockDeleted": "질문을 삭제했습니다",
    "shortcutsTitle": "키보드 단축키",
    "shortcutsGeneral": "일반",
    "shortcutsWriting": "작성·삽입",
    "shortcutsCanvas": "문서 캔버스(블록 선택)",
    "shortcutsOpen": "이 치트시트 열기",
    "shortcutsSlash": "블록 삽입 팔레트",
    "shortcutsMention": "이전 답변 삽입",
    "shortcutsMarkdown": "마크다운 줄 단축",
    "shortcutsEditBlock": "선택한 블록 편집",
    "shortcutsSelect": "이전·다음 블록 선택",
    "shortcutsMove": "블록 위·아래 이동",
    "shortcutsResize": "블록 폭 줄이기·늘리기",
    "shortcutsRowBreak": "행 분리 전환",
    "shortcutsDeselect": "선택 해제·닫기",
    "undo": "실행 취소",
    "redo": "다시 실행",
    "insertBelow": "아래에 삽입",
    "typeSwitchLostChoices": "유형이 바뀌어 선택지가 제거되었습니다.",
    "flushBlocked": "초안을 저장하지 못했습니다 — 표시된 문제를 해결하거나 최신본을 불러온 뒤 다시 시도하세요.",
    "blockDeletedLogicWarning": "삭제됨 — 이 질문을 조건으로 쓰는 로직이 있어 해당 규칙이 함께 제거됩니다.",
    "conditionMissingChoice": "(삭제된 선택지)",
    "conditionValueMissing": "값을 선택해야 이 조건이 동작합니다.",
    "duplicateBlock": "질문 복제",
    "addQuestion": "질문 추가",
    "country": "국가",
    "countryDatasetNote": "응답자가 내장 국가 목록에서 선택합니다. ISO 국가 코드로 저장됩니다.",
    "matrix": "행렬",
    "matrixNote": "각 행은 같은 열을 공유하는 별도의 단일 선택 질문입니다. 아래에서 행을 편집하세요.",
    "matrixRow": "{{n}}번째 행",
    "matrixCol": "{{n}}번째 열",
    "matrixMulti": "행마다 복수 선택 허용",
    "matrixRowsLabel": "행",
    "matrixColsLabel": "열 (공유)",
    "matrixAddRow": "행 추가",
    "matrixAddCol": "열 추가",
    "matrixRowAria": "{{index}}번째 행 라벨",
    "matrixColAria": "{{index}}번째 열 라벨",
    "randomizeChoices": "선택지 순서 변경",
    "randomizeMode": "순서 방식",
    "randomizeShuffle": "무작위 섞기",
    "randomizeReverse": "역순",
    "randomizeLatinSquare": "균형 로테이션",
    "randomizePinLast": "마지막 N개 고정",
    "randomGroupsTitle": "문항 제시 순서",
    "randomGroupsDescription": "연속 문항의 순서를 바꾸고 응답마다 실제 제시 순서를 기록합니다.",
    "randomGroupAdd": "그룹 추가",
    "randomGroupRange": "연속 문항 범위",
    "randomGroupInvalid": "유효한 범위를 선택하세요",
    "randomGroupRemove": "랜덤 그룹 제거",
    "scoringTitle": "척도와 퀴즈",
    "scoringDescription": "숫자 문항을 점수로 묶거나 선택한 문항을 채점합니다. 퀴즈 정답은 제출 성공 전까지 공개되지 않습니다.",
    "scoringScales": "척도",
    "scoringQuizzes": "퀴즈",
    "scoringAddScale": "척도 추가",
    "scoringAddQuiz": "퀴즈 추가",
    "scoringScaleDefault": "척도 {{n}}",
    "scoringQuizDefault": "퀴즈 {{n}}",
    "scoringNoNumericQuestions": "평점, 숫자 또는 계산 필드를 추가하면 척도를 만들 수 있습니다.",
    "scoringNoQuizQuestions": "선택형, 체크박스, 평점, 숫자 또는 동의 문항을 추가하면 퀴즈를 만들 수 있습니다.",
    "scoringLabel": "점수 이름",
    "scoringAggregation": "집계 방식",
    "scoringMean": "평균",
    "scoringSum": "합계",
    "scoringMissing": "결측 답변",
    "scoringMissingExclude": "평균에서 제외",
    "scoringMissingZero": "0점으로 계산",
    "scoringMissingRequireAll": "모든 문항 필수",
    "scoringReverse": "역채점",
    "scoringRemoveScale": "척도 제거",
    "scoringRemoveQuiz": "퀴즈 제거",
    "scoringCutoffs": "기준점 라벨",
    "scoringAddCutoff": "기준점 추가",
    "scoringCutoffDefault": "수준 {{n}}",
    "scoringCutoffMin": "최소 점수",
    "scoringCutoffLabel": "기준점 라벨",
    "scoringRemoveCutoff": "기준점 제거",
    "scoringQuizQuestion": "퀴즈 문항",
    "scoringCorrectAnswer": "정답",
    "scoringCorrectAnswers": "정답",
    "scoringPoints": "배점",
    "scoringCorrectFeedback": "정답 피드백",
    "scoringIncorrectFeedback": "오답 피드백",
    "scoringAddQuizItem": "퀴즈 문항 추가",
    "scoringRemoveQuizItem": "퀴즈 문항 제거",
    "scoringConsentAgree": "동의",
    "scoringConsentDecline": "거부",
    "pageBreak": "페이지 나누기",
    "pageBreakConversational": "페이지 나누기는 대화형 모드에서 적용되지 않습니다.",
    "aiRateLimited": "AI 요청이 너무 많습니다. 잠시 후 다시 시도해 주세요.",
    "aiQuotaExceeded": "일일 AI 한도를 모두 사용했습니다. 워크스페이스 설정의 AI 사용량을 확인하세요.",
    "aiQuotaExceededWithRetry": "일일 AI 한도를 모두 사용했습니다. {{when}} 다시 시도하거나 워크스페이스 설정의 AI 사용량을 확인하세요.",
    "aiUnconfigured": "서버에 AI가 설정되어 있지 않습니다.",
    "aiInputTooLarge": "이 폼은 AI로 수정하기에 너무 큽니다. 긴 질문 문구를 줄이거나 직접 수정하세요.",
    "aiConflict": "그 사이 폼이 변경되었습니다. 다시 시도해 주세요.",
    "aiChangesTitle": "AI가 다음을 변경했습니다",
    "aiChangeAdded": "추가: “{{label}}”",
    "aiChangeRemoved": "삭제: “{{label}}”",
    "aiChangeUpdated": "수정: “{{label}}”",
    "aiChangeReordered": "질문 순서 변경",
    "aiChangeLogic": "조건 로직 변경",
    "aiChangeTitle": "폼 제목 변경",
    "aiUndoAll": "되돌리기",
    "aiDismiss": "닫기",
    "aiAssistant": "AI 어시스턴트",
    "aiPreview": "변경 미리보기",
    "aiPreviewTitle": "AI가 다음을 제안합니다",
    "aiApplyChanges": "적용하기",
    "aiDiscard": "취소",
    "aiReviewing": "변경 내용을 검토하세요 — 적용 전까지 저장되지 않습니다.",
    "aiNoChanges": "이 요청으로 실제 변경된 내용이 없습니다. 적용할 항목이 없습니다.",
    "aiPendingAnnounce": "처리 중입니다 — 몇 초 정도 걸릴 수 있습니다.",
    "aiProposalDiscarded": "적용하지 않은 AI 제안이 취소되었습니다.",
    "emptyTitle": "폼을 만들어 보세요",
    "emptyBody": "질문 추가를 눌러 질문·텍스트·제목을 삽입하세요.",
    "emptyAddCta": "질문 추가",
    "aiEmptyTitle": "AI로 폼 시작하기",
    "aiEmptyBody": "어떤 설문을 만들고 싶은지 한두 문장으로 알려 주세요. 질문 초안을 만들어 드릴게요.",
    "aiEmptyCta": "초안 만들기",
    "aiEmptyPlaceholder": "예: 신규 사용자 온보딩 만족도 설문 (별점, 객관식, 한 줄 의견)",
    "aiGenerating": "초안 만드는 중…",
    "types": {
      "short_text": "짧은 텍스트",
      "long_text": "긴 텍스트",
      "multiple_choice": "객관식",
      "checkboxes": "체크박스",
      "dropdown": "드롭다운",
      "ranking": "순위 매기기",
      "rating": "척도",
      "date": "날짜",
      "datetime": "날짜·시간",
      "time": "시간",
      "date_range": "기간",
      "email": "이메일",
      "number": "숫자",
      "file_upload": "파일 업로드",
      "signature": "서명",
      "privacy_consent": "개인정보 동의",
      "conversational_open": "대화형 서술",
      "statement": "안내문",
      "text": "텍스트",
      "heading": "제목",
      "calculated_field": "계산 필드",
      "hidden_field": "숨김 필드",
      "matrix": "행렬",
      "divider": "구분선",
      "image": "이미지",
      "address": "한국 주소"
    },
    "logicSection": "조건 로직",
    "textColor": "글자색",
    "bgColor": "배경색",
    "color": {
      "default": "기본",
      "gray": "회색",
      "brown": "갈색",
      "red": "빨강",
      "orange": "주황",
      "yellow": "노랑",
      "green": "초록",
      "blue": "파랑",
      "purple": "보라",
      "pink": "분홍"
    },
    "reorder": "드래그하여 순서 변경",
    "statementBody": "본문",
    "statementPlaceholder": "텍스트나 제목을 입력하세요...",
    "turnIntoText": "텍스트",
    "divider": "구분선",
    "documentCanvas": "문서형 폼 편집기",
    "documentBlocksRemaining": "블록 {{count}}개 남음",
    "documentHiddenFields": "숨김 필드 ({{count}})",
    "documentGhostPlaceholder": "입력하거나 /를 눌러 블록 추가...",
    "slashAddBlock": "블록 추가 (/)",
    "slashSearch": "블록 검색",
    "slashSearchPlaceholder": "질문과 콘텐츠 검색...",
    "slashResults": "추가할 수 있는 블록",
    "slashNoResults": "일치하는 블록이 없습니다",
    "slashGroups": {
      "answer": "답변",
      "choice": "선택",
      "contact": "연락처",
      "content": "콘텐츠",
      "layout": "레이아웃",
      "library": "연구 문항 라이브러리",
      "advanced": "고급"
    },
    "documentQuickAddTitle": "질문으로 시작하세요",
    "documentQuickAddBrowseAll": "모든 블록 보기 (/)",
    "documentQuickAddHint": "자주 쓰는 필드를 고르거나 /를 입력해 모든 블록을 찾으세요.",
    "blockInspector": "블록 설정",
    "documentLayout": "레이아웃",
    "documentEditorMenu": "폼 메뉴",
    "documentAdvancedTools": "고급 도구",
    "documentReviewTools": "검토, 공개 준비도 및 AI",
    "documentQuickSettings": "폼 설정",
    "documentQuickSettingsHint": "문서형 폼의 핵심 설정을 조정합니다. 수집 제어는 설정 탭에 있습니다.",
    "documentOpenSettings": "수집 설정 열기",
    "documentBlockWidth": "블록 너비",
    "documentStartNewRow": "새 행에서 시작",
    "documentStartsNewRow": "새 행에서 시작",
    "documentFlowsInRow": "현재 행에서 이어짐",
    "documentBlockLayoutStatus": "너비 12칸 중 {{span}}칸, {{row}}.",
    "documentDragBlock": "블록 끌어 이동",
    "documentResizeBlock": "블록 너비 조절",
    "documentPlaceBesidePrevious": "이전 블록 옆에 배치",
    "documentPlaceBesideNext": "다음 블록 옆에 배치",
    "documentMergePages": "앞뒤 페이지 합치기",
    "documentPageOutline": "페이지",
    "documentPreviewSize": "미리보기 크기",
    "documentPreviewResponsive": "편집기 너비에 맞춤",
    "documentPreviewDesktop": "데스크톱 미리보기",
    "documentPreviewTablet": "태블릿 미리보기",
    "documentPreviewMobile": "모바일 미리보기",
    "documentAddPageAfter": "{{index}}페이지 뒤에 페이지 추가",
    "documentEmptyPage": "빈 페이지",
    "documentSelectPage": "{{index}}페이지 선택: {{label}}",
    "documentMovePageUp": "{{index}}페이지를 위로 이동",
    "documentMovePageDown": "{{index}}페이지를 아래로 이동",
    "documentDuplicatePage": "{{index}}페이지 복제",
    "documentDeletePage": "{{index}}페이지 삭제",
    "documentMergePagePrevious": "{{index}}페이지를 이전 페이지와 합치기",
    "documentMergePageNext": "{{index}}페이지를 다음 페이지와 합치기",
    "documentPageActions": "{{index}}페이지 작업",
    "documentPageMutationApplied": "{{index}}페이지를 사용할 수 있습니다.",
    "documentPageMutationBlocked": "폼이 유효하지 않게 되므로 이 페이지 변경을 적용할 수 없습니다.",
    "documentFieldChrome": "필드 표시",
    "documentSemanticLabel": "의미 레이블",
    "documentFieldChromeRequiresLabel": "필드만 표시하려면 의미 레이블을 먼저 입력하세요.",
    "documentFieldChromeFull": "레이블과 필드",
    "documentFieldChromeOnly": "필드만",
    "documentControlWidth": "입력 너비",
    "documentControlWidthAuto": "내용에 맞춤",
    "documentControlWidthFull": "칸 채우기",
    "documentOneQuestionPerPage": "질문마다 페이지 나누기",
    "documentShowFieldsOnly": "필드만 표시",
    "documentShowFieldLabels": "필드 레이블 표시",
    "documentFieldsOnlyMissingLabels": "필드 레이블을 숨기기 전에 {{count}}개 필드의 의미 레이블을 입력하세요.",
    "documentPaginationConfirm": "문서를 질문 {{count}}개 페이지로 다시 구성합니다. 기존 수동 페이지 구분은 교체됩니다.",
    "documentPaginationApply": "페이지 만들기",
    "documentPaginationBlockLimit": "모든 질문 페이지를 만들 블록 여유가 없습니다. 변경하지 않았습니다.",
    "documentDuplicateTitleWarning": "문서 안에 폼 제목과 같은 제목 블록이 하나 더 있습니다.",
    "documentDuplicateTitleRemove": "중복 제목 블록 삭제",
    "alignLeft": "왼쪽 정렬",
    "alignCenter": "가운데 정렬",
    "alignRight": "오른쪽 정렬",
    "statementQuote": "인용",
    "statementCallout": "강조 상자",
    "statementBulletList": "글머리 기호 목록",
    "statementNumberList": "번호 목록",
    "mentionSearchAria": "답변 참조 검색",
    "mentionSearchPlaceholder": "앞선 질문 검색...",
    "markdownImport": "마크다운 가져오기",
    "markdownImportTitle": "문서 가져오기",
    "markdownImportDescription": "마크다운을 붙여 넣으면 제목, 문단, 인용, 목록, 구분선을 편집 가능한 블록으로 나눕니다.",
    "markdownImportSource": "마크다운 문서",
    "markdownImportPlaceholder": "# 신청서\n\n안내 내용과 목록을 붙여 넣으세요...",
    "markdownImportAction": "{{count}}개 블록 가져오기",
    "markdownImportTruncated": "폼 블록 한도를 넘는 {{count}}개 블록은 가져오지 않습니다.",
    "documentBlockLimitReached": "블록 한도에 도달해 더 이상 블록을 추가할 수 없습니다.",
    "documentDeletePageTitle": "페이지 삭제",
    "documentDeletePageConfirm": "\"{{label}}\" 페이지와 블록 {{count}}개를 영구 삭제할까요? 변경사항을 공개한 뒤에는 해당 블록이 응답 표, 요약, CSV 내보내기 등에 더 이상 나타나지 않습니다. 이 작업은 되돌릴 수 없습니다.",
    "documentDeletePageAction": "페이지 영구 삭제",
    "documentHint": "마지막 줄에 입력하거나 / 를 눌러 블록을 삽입하세요. 드래그 또는 Ctrl+Shift+화살표로 순서를 바꿉니다.",
    "documentPageMutationBlockLimit": "이 변경은 폼 블록 한도를 초과해 적용할 수 없습니다.",
    "documentPageMutationIdAllocation": "새 블록 id를 발급하지 못했습니다 — 다시 시도해 주세요.",
    "documentDuplicateDropsInlineField": "인라인 빈칸은 복제본에서 제외했습니다 — 한 필드는 폼 전체에서 한 번만 인라인 배치할 수 있습니다.",
    "documentEmptyPageHidden": "응답자에게 표시되지 않음",
    "imagePlaceholder": "이미지 업로드 준비 중",
    "imageAdd": "이미지 업로드",
    "imageUploading": "업로드 중…",
    "imageReplace": "이미지 교체",
    "imageRemove": "이미지 제거",
    "imageUploadError": "이미지를 업로드하지 못했습니다.",
    "imageAlt": "대체 텍스트",
    "imageCaption": "캡션 추가",
    "imageWidth": "이미지 너비",
    "imageWidthOptions": {
      "small": "작게",
      "medium": "중간",
      "full": "전체"
    },
    "documentCover": "커버",
    "documentLogo": "로고",
    "documentImageAdd": "{{label}} 추가",
    "documentImageReplace": "{{label}} 교체",
    "documentImageRemove": "{{label}} 삭제",
    "documentImageUploading": "업로드 중...",
    "documentImageError": "이미지를 업로드하지 못했습니다.",
    "documentHeaderSaving": "디자인 저장 중...",
    "documentHeaderSaved": "디자인 저장됨",
    "documentHeaderSaveError": "디자인을 저장하지 못했습니다.",
    "documentOpenDesign": "디자인 열기",
    "linkDialogTitle": "링크 추가",
    "linkUrlLabel": "URL",
    "linkApply": "링크 추가",
    "linkInvalid": "올바른 http(s) URL을 입력해 주세요.",
    "bold": "굵게",
    "italic": "기울임",
    "underline": "밑줄",
    "strike": "취소선",
    "code": "코드",
    "link": "링크",
    "showWhen": "다음일 때만 이 질문 표시…",
    "branchWhen": "이 답에 따라 건너뛰기",
    "logicNoEarlier": "조건으로 쓸 앞선 질문을 먼저 추가하세요.",
    "matchAll": "모두 충족",
    "matchAny": "하나라도 충족",
    "addCondition": "조건 추가",
    "removeCondition": "조건 삭제",
    "addShowCondition": "조건 추가",
    "removeShowCondition": "항상 표시",
    "logicComparator": "비교",
    "skipTo": "건너뛰기",
    "skipToEnd": "폼 끝으로",
    "skipTargetMissing": "(대상 없음 — 다시 선택)",
    "addBranch": "분기 추가",
    "removeBranch": "분기 삭제",
    "comparator": {
      "eq": "같음",
      "neq": "다름",
      "contains": "포함",
      "not_contains": "포함하지 않음",
      "gt": "초과",
      "gte": "이상",
      "lt": "미만",
      "lte": "이하",
      "is_empty": "비어 있음",
      "is_filled": "비어 있지 않음"
    },
    "calcExpression": "수식",
    "calcInsertField": "필드 삽입",
    "calcPrecision": "소수 자리",
    "calcHelp": "+ - * / ( ) 와 다른 답을 사용하세요. 예: {가격} × {수량}",
    "calcBadRef": "알 수 없는 참조: {{refs}}. 이 필드보다 앞에 있는 숫자 질문을 사용하세요.",
    "hiddenNamePlaceholder": "필드 이름(관리용)",
    "hiddenParam": "URL 파라미터",
    "hiddenDefault": "기본값",
    "hiddenHelp": "폼 URL에서 채워집니다. 예:",
    "conversationalPrompt": "대화 시작 질문",
    "conversationalPromptPlaceholder": "응답자가 먼저 답할 열린 질문을 입력하세요…",
    "conversationalTemplate": "템플릿",
    "conversationalTemplatePick": "프리셋 적용…",
    "conversationalStructuredFields": "구조화 필드",
    "conversationalAddField": "필드 추가",
    "conversationalRecommend": "AI 추천",
    "conversationalRecommending": "추천 중…",
    "conversationalNoFields": "구조화 필드가 없습니다. 이 블록은 전사만 수집합니다.",
    "conversationalFieldDefault": "{{n}}번째 필드",
    "conversationalFieldLabel": "라벨",
    "conversationalFieldId": "필드 ID",
    "conversationalIdHint": "코드용 식별자 — 영문·숫자·_·- 만 가능합니다.",
    "conversationalIdEdit": "ID 편집 ({{id}})",
    "conversationalFieldType": "유형",
    "conversationalFieldOptions": "선택지",
    "conversationalOptionId": "선택지 ID",
    "conversationalOptionLabel": "선택지 라벨",
    "conversationalOptionDefault": "{{n}}번째 선택지",
    "conversationalRemoveField": "필드 삭제",
    "conversationalRequiredForAnalysis": "분석 필수",
    "conversationalAskDirectly": "누락 시 직접 질문",
    "conversationalAllowInference": "추론 허용",
    "conversationalConfidence": "신뢰도",
    "conversationalQualGoals": "정성 목표",
    "conversationalAddGoal": "목표 추가",
    "conversationalGoalDefault": "{{n}}번째 목표",
    "conversationalGoalLabel": "라벨",
    "conversationalGoalId": "목표 ID",
    "conversationalPriority": "우선순위",
    "conversationalGoalDescription": "이 목표가 무엇을 찾아야 하나요?",
    "conversationalRemoveGoal": "목표 삭제",
    "conversationalFollowupPolicy": "후속 질문 정책",
    "conversationalMinFollowups": "최소 후속 질문",
    "conversationalMaxFollowups": "최대 후속 질문",
    "conversationalMaxTurns": "최대 턴",
    "conversationalTokenBudget": "토큰 예산",
    "conversationalAvoidTopics": "피할 주제, 줄마다 하나",
    "conversationalDisclosure": "고지 문구",
    "conversationalSensitiveMode": "민감 모드",
    "conversationalAllowDeepDive": "심화 질문 허용",
    "conversationalEmergentProbe": "새 주제 탐색",
    "interviewBasics": "기본 정보",
    "interviewSections": "인터뷰 섹션",
    "interviewTitle": "제목",
    "interviewTitlePlaceholder": "인터뷰 이름을 입력하세요…",
    "interviewGoal": "리서치 브리프",
    "interviewGoalPlaceholder": "이 인터뷰로 무엇을 알아내려 하나요?",
    "interviewLanguage": "언어",
    "interviewLanguagePlaceholder": "예: en, ko",
    "interviewPersona": "페르소나",
    "interviewPersonaName": "이름",
    "interviewPersonaNamePlaceholder": "인터뷰어 이름 (선택)",
    "interviewPersonaTone": "톤",
    "interviewPersonaTonePlaceholder": "예: 따뜻하고 호기심 있는",
    "interviewOpeningClosing": "시작 및 마무리",
    "interviewGreeting": "인사말",
    "interviewGreetingPlaceholder": "응답자가 처음 보는 메시지…",
    "interviewClosing": "마무리말",
    "interviewClosingPlaceholder": "인터뷰 종료 후 마지막 메시지…",
    "interviewFields": "구조화 필드",
    "interviewFieldsHint": "대화에서 추출되는 결과입니다.",
    "interviewAddField": "필드 추가",
    "interviewNoFields": "구조화 필드가 없습니다. 인터뷰는 대화 기록만 수집합니다.",
    "interviewFieldDefault": "필드 {{n}}",
    "interviewRemoveField": "필드 삭제",
    "interviewFieldRemoved": "필드를 삭제했습니다",
    "interviewObjectives": "목표",
    "interviewAddGoal": "목표 추가",
    "interviewNoGoals": "목표가 없습니다.",
    "interviewGoalDefault": "목표 {{n}}",
    "interviewGoalDescription": "이 목표는 무엇을 살펴봐야 하나요?",
    "interviewRemoveGoal": "목표 삭제",
    "interviewGoalRemoved": "목표를 삭제했습니다",
    "interviewPolicy": "대화 정책",
    "interviewExperience": "경험",
    "interviewTheme": "테마",
    "interviewThemePlaceholder": "테마 키 (선택)",
    "interviewLiveProfile": "라이브 프로필",
    "interviewSmartChips": "스마트 칩",
    "interviewProgress": "진행 표시줄",
    "interviewAllowRestart": "다시 하기 허용",
    "interviewMotion": "모션",
    "interviewMotionFull": "전체",
    "interviewMotionReduced": "줄임",
    "interviewRequiredPill": "필수",
    "interviewAssistButton": "AI 어시스트",
    "interviewAssistClose": "닫기",
    "interviewAssistTitle": "AI 설계 도우미",
    "interviewAssistSubtitle": "대화로 인터뷰를 함께 설계해요",
    "interviewAssistModeDraft": "한 줄로 초안",
    "interviewAssistModeChat": "대화로 설계",
    "interviewAssistDraftHint": "무엇을 알아내고 싶은지 한두 문장으로 적어 주세요. 나머지는 AI가 채웁니다.",
    "interviewAssistBriefPlaceholder": "예: 최근 구독을 해지한 고객에게 왜 떠났는지, 다시 돌아올 의향이 있는지 묻고 싶어요",
    "interviewAssistReplaceNote": "생성된 초안은 현재 인터뷰 내용을 대체합니다. 적용 후에도 모든 항목을 직접 편집할 수 있어요.",
    "interviewAssistGenerate": "초안 생성",
    "interviewAssistGenerating": "생성 중…",
    "interviewAssistChatWelcome": "안녕하세요! 어떤 인터뷰를 만들고 싶으세요? 목적이나 알아내고 싶은 점을 편하게 말씀해 주세요.",
    "interviewAssistChatPlaceholder": "메시지를 입력하세요…",
    "interviewAssistThinking": "생각 중…",
    "interviewAssistSend": "보내기",
    "interviewAssistProposalTitle": "제안된 설계",
    "interviewAssistFieldsCount": "필드 {{count}}개",
    "interviewAssistObjectivesCount": "목표 {{count}}개",
    "interviewAssistMore": "외 {{count}}개",
    "interviewAssistApply": "이 설계 적용",
    "interviewAssistKeepRefining": "계속 다듬기",
    "interviewAssistApplied": "AI 설계를 적용했습니다.",
    "interviewAssistApplyCaution": "적용하면 현재 편집 내용이 이 제안으로 대체됩니다.",
    "interviewAssistSendHint": "⌘/Ctrl + Enter 로 전송",
    "interviewAssistCtaTitle": "AI와 함께 인터뷰를 설계해 보세요",
    "interviewAssistCtaSubtitle": "한 줄 설명만 주면 초안을, 대화하면 함께 다듬어 드려요.",
    "interviewAssistErrRate": "요청이 너무 많습니다. 잠시 후 다시 시도해 주세요.",
    "interviewAssistErrQuota": "일일 AI 한도를 모두 사용했습니다. 워크스페이스 설정의 AI 사용량을 확인하세요.",
    "interviewAssistErrQuotaWithRetry": "일일 AI 한도를 모두 사용했습니다. {{when}} 다시 시도하거나 워크스페이스 설정의 AI 사용량을 확인하세요.",
    "interviewAssistErrUnconfigured": "AI가 설정되어 있지 않습니다.",
    "interviewAssistErrDisabled": "이 기능을 사용할 수 없습니다.",
    "interviewAssistErrGeneric": "생성에 실패했습니다. 다시 시도해 주세요.",
    "interviewAssistReviewTitle": "적용할 항목을 선택하세요",
    "interviewAssistApplySelected": "선택 {{count}}개 적용",
    "interviewAssistBack": "다른 브리프로",
    "interviewAssistRecommend": "AI 추천",
    "interviewAssistRecommending": "추천 중…",
    "interviewAssistRecommendedToast": "추천 필드 {{count}}개를 추가했어요.",
    "interviewAssistRecommendEmpty": "추가할 만한 필드를 찾지 못했어요.",
    "interviewEditor": {
      "wizard": {
        "brief": "브리프",
        "modules": "모듈",
        "preview": "미리보기",
        "publish": "발행",
        "previewTitle": "인터뷰 한눈에 보기",
        "previewDescription": "현재 초안의 개수입니다. 발행 후 Share에서 미리보기·공유 링크를 열 수 있습니다.",
        "fieldCount": "필드",
        "goalCount": "목표",
        "moduleCount": "모듈",
        "openShare": "공유·미리보기 열기"
      },
      "researchDesignTitle": "조사 설계",
      "researchDesignDescription": "누구에게서 무엇을 알아내고, 그 결과로 어떤 의사결정을 할지 정의합니다.",
      "methodPresetLabel": "인터뷰 방법론",
      "methodPresetNone": "방법론 선택",
      "methodPresetHint": "빈 인터뷰에만 모듈과 핵심 질문을 채웁니다. 별도 런타임을 만들거나 기존 작업을 덮어쓰지 않습니다.",
      "methodPresets": {
        "exploratory": "탐색적 반구조화",
        "critical_incident": "Critical Incident",
        "jtbd_switch": "JTBD Switch",
        "laddering": "Laddering",
        "cognitive": "Cognitive Interviewing"
      },
      "participantProfile": "참여자 범위",
      "participantProfilePlaceholder": "누가 이 인터뷰에 답해야 하나요?",
      "decisionUse": "조사가 지원할 의사결정",
      "decisionUsePlaceholder": "결과를 바탕으로 어떤 결정을 내리나요?",
      "researchQuestions": "연구 질문",
      "researchQuestionsPlaceholder": "최종 분석이 답해야 할 질문을 한 줄에 하나씩 입력",
      "goalLabel": "리서치 브리프",
      "goalPlaceholder": "이 인터뷰로 무엇을 파악하려는지 적어 주세요",
      "goalHint": "이 인터뷰 전체의 목적이에요. 응답 추출과 분석의 기준이 됩니다.",
      "goalsDescription": "대화에서 깊이 파고들 주제예요. 각 주제는 후속 질문으로 다뤄집니다. 주제를 비워 두면 평점·필드만 순서대로 묻는 설문처럼 진행돼요.",
      "personaTitle": "페르소나 / 말투",
      "personaDescription": "인터뷰어의 이름과 말투를 정하면 질문 문장의 톤에 반영됩니다.",
      "personaName": "인터뷰어 이름",
      "personaNamePlaceholder": "예: 리서처 정",
      "personaTone": "말투 / 톤",
      "personaTonePlaceholder": "예: 따뜻하고 차분한 존댓말",
      "messagesTitle": "환영 / 마무리 메시지",
      "messagesDescription": "응답자가 처음 보는 인사말과 완료 화면의 마무리말입니다. 비워 두면 기본 문구가 쓰입니다.",
      "greetingLabel": "환영 인사말",
      "greetingPlaceholder": "예: 안녕하세요! 잠깐 몇 가지만 여쭤볼게요.",
      "closingLabel": "마무리 인사말",
      "closingPlaceholder": "예: 소중한 의견 감사합니다. 큰 도움이 되었어요.",
      "appearanceTitle": "배경 / 외관",
      "appearanceDescription": "인터뷰 화면에 깔리는 배경 이미지입니다. 이미지를 올리면 글자가 잘 보이도록 위에 테마 색이 덮입니다(스크림).",
      "backgroundLabel": "배경 이미지",
      "backgroundAdd": "이미지 업로드",
      "backgroundUploading": "업로드 중…",
      "backgroundRemove": "제거",
      "backgroundUrlLabel": "또는 이미지 URL",
      "backgroundUrlPlaceholder": "https://…",
      "backgroundError": "업로드 실패",
      "scrimLabel": "배경 덮개(스크림) 진하기",
      "modulesTitle": "인터뷰 모듈",
      "modulesDescription": "비교할 핵심 개념을 의도적인 순서로 묶습니다. 모듈은 기존 필드와 목표를 조직하며 중복 정의하지 않습니다.",
      "addModule": "모듈 추가",
      "moduleLabel": "모듈",
      "moduleLabelPlaceholder": "예: 최근 사용 경험",
      "modulePurpose": "내부 조사 목적",
      "modulePurposePlaceholder": "이 모듈에서 반드시 확인할 내용",
      "moduleMaxFollowups": "모듈 후속질문 상한",
      "deleteModule": "모듈 삭제",
      "noModule": "모듈 없음",
      "noModules": "아직 모듈이 없습니다. 기존 인터뷰는 전체 우선순위 방식으로 계속 동작합니다.",
      "fieldsTitle": "구조화 필드",
      "recommendFields": "필드 추천",
      "addField": "필드 추가",
      "allHardWarning": "모든 필드가 필수로 설정돼 있어요. 인터뷰가 항목을 순서대로 훑는 설문처럼 느껴질 수 있습니다. 꼭 필요한 것만 필수로 두고 나머지는 권장 또는 선택으로 낮추면 대화가 더 자연스러워집니다.",
      "fieldLabel": "질문 라벨",
      "fieldLabelPlaceholder": "예: 가장 큰 중단 이유",
      "authoredQuestion": "고정 핵심 질문 (선택)",
      "authoredQuestionPlaceholder": "모든 응답자에게 이 문구 그대로 질문",
      "deleteField": "필드 삭제",
      "fieldDeleted": "필드를 삭제했습니다.",
      "moveFieldUp": "필드를 위로 이동",
      "moveFieldDown": "필드를 아래로 이동",
      "type": "유형",
      "requirednessLabel": "필수성",
      "sensitivityLabel": "민감도",
      "options": "선택지",
      "optionPlaceholder": "선택지 {{index}}",
      "deleteOption": "선택지 삭제",
      "addOption": "선택지 추가",
      "allowInference": "근거 없는 추론 허용 (확인 절차 후 확정)",
      "advancedSettings": "고급 설정 (질문·비응답 정책)",
      "allowedNonAnswerStates": "허용 비응답 상태",
      "maxAttempts": "최대 질문 횟수",
      "allowFollowup": "추가 질문 허용 (평점·짧은 답에 '왜'를 되물어 이유를 듣기)",
      "askIfAlreadyImplied": "이미 암시된 답이 있어도 직접 질문",
      "noFields": "아직 필드가 없습니다.",
      "goalsTitle": "정성 목표",
      "addGoal": "목표 추가",
      "goalFieldLabel": "목표 라벨",
      "goalFieldLabelPlaceholder": "예: 구매 장벽",
      "deleteGoal": "목표 삭제",
      "publicHint": "응답자에게 보일 힌트 (공개)",
      "publicHintPlaceholder": "예: 중단을 결심한 구체적 계기",
      "anchorQuestion": "고정 시작 질문 (선택)",
      "anchorQuestionPlaceholder": "모든 응답자에게 같은 질문으로 이 목표를 시작",
      "internalRubric": "내부 채점 기준 (비공개)",
      "internalRubricPlaceholder": "예: 구체적 사건·시점·행동 변화가 언급됨",
      "requiredGoal": "필수 목표 (커버리지 충족 필요)",
      "maxProbes": "이 목표의 최대 꼬리질문",
      "probeKindsLabel": "탐색 방식",
      "noGoals": "목표가 없습니다.",
      "budgetTitle": "대화 예산",
      "maxExchanges": "최대 교환",
      "maxFollowups": "최대 후속질문",
      "targetFollowups": "목표 후속질문",
      "researchQualityTitle": "응답자 검증 / 분석",
      "researchQualityDescription": "응답자가 추출 내용을 확인·수정하고, 일부 구조화 값을 검증하며, 조사별 코드북을 사용할 수 있습니다.",
      "memberCheckEnabled": "완료 전 응답자 확인 요약 표시",
      "memberCheckCorrection": "확인 요약에서 수정 허용",
      "validationEnabled": "확인 후 구조화 검증 문항 질문",
      "validationItemsPerRespondent": "응답자당 검증 문항 수",
      "validationAssignmentVersion": "배정 버전",
      "validationFields": "검증 대상 필드",
      "codebookEnabled": "조사별 코드북 사용",
      "codebookVersion": "코드북 버전",
      "allowEmergentCodes": "새로운 코드 제안 허용",
      "addCode": "코드 추가",
      "codeLabel": "코드 라벨",
      "codeLabelPlaceholder": "예: TIME_SAVING",
      "deleteCode": "코드 삭제",
      "disclosureTitle": "고지",
      "enabled": "사용",
      "version": "버전",
      "versionPlaceholder": "예: v1",
      "disclosureRequired": "동의 필수 (시작 전 고지 필요)",
      "purposeText": "수집 목적 안내 (공개)",
      "purposePlaceholder": "예: 서비스 개선을 위한 사용자 조사 목적으로만 사용됩니다",
      "retentionText": "보관 안내 (공개)",
      "retentionPlaceholder": "예: 응답은 6개월간 보관 후 파기됩니다",
      "disclosureEmpty": "고지를 사용하면 시작 전 수집 목적·보관 안내를 보여줄 수 있습니다.",
      "emergentTitle": "창발적 추출",
      "captureTypesLabel": "포착 유형",
      "relatednessPolicy": "관련성 정책",
      "onlyRelated": "정의된 필드·주제와 관련될 때만 포착",
      "allowNovelTheme": "새로운 주제도 허용",
      "requireEvidenceSpan": "근거 구간 필수",
      "followupPolicy": "후속질문 정책",
      "allowEmergentFollowup": "창발적 후속질문 허용",
      "maxEmergentFollowups": "세션당 최대 창발 후속",
      "emergentEmpty": "대화 중 드러나는 정의되지 않은 인사이트를 포착합니다.",
      "valueTypes": {
        "short_text": "짧은 텍스트",
        "long_text": "긴 텍스트",
        "single_select": "단일 선택",
        "multi_select": "복수 선택",
        "boolean": "예/아니오",
        "number": "숫자",
        "scale_1_5": "척도 1-5",
        "nps_0_10": "NPS 0-10"
      },
      "requiredness": {
        "hard": "필수",
        "soft": "권장",
        "optional": "선택"
      },
      "probeKinds": {
        "example": "사례",
        "why": "이유",
        "impact": "영향",
        "behavior": "행동",
        "emotion": "감정",
        "barrier": "장벽",
        "tradeoff": "트레이드오프",
        "clarify": "명확화",
        "temporal_sequence": "시간순 복원",
        "comparison": "비교",
        "counterexample": "반례",
        "priority": "우선순위",
        "laddering": "래더링"
      },
      "sensitivity": {
        "none": "민감도 없음",
        "low": "낮음",
        "moderate": "중간",
        "high": "높음"
      },
      "nonAnswerStates": {
        "refused": "거부",
        "unknown": "모름",
        "not_applicable": "해당 없음",
        "deferred": "나중에"
      },
      "captureTypes": {
        "pain_point": "불편/고충",
        "motivation": "동기",
        "barrier": "장벽",
        "preference": "선호",
        "emotion": "감정",
        "context": "맥락",
        "constraint": "제약",
        "risk": "리스크",
        "contradiction": "모순",
        "unexpected_topic": "예상 밖 주제",
        "quote": "인용"
      }
    },
    "convFieldType": {
      "single_select": "단일 선택",
      "multi_select": "복수 선택",
      "scale_1_5": "1–5 척도",
      "nps_0_10": "NPS 0–10",
      "ordinal": "순서 선택",
      "boolean": "예/아니오",
      "short_text": "짧은 텍스트",
      "number": "숫자"
    },
    "followupType": {
      "clarify": "명확화",
      "example": "예시",
      "why": "이유",
      "tradeoff": "절충",
      "emotion": "감정",
      "behavior": "행동",
      "barrier": "장벽"
    },
    "pipingInsert": "답변 삽입",
    "pipingHint": "이전 답변을 여기에 표시",
    "pipingReferences": "참조:",
    "pipingBroken": "원본 질문이 삭제됨",
    "publishChanges": "변경사항 공개",
    "statusDraftTitle": "아직 공개되지 않은 초안입니다",
    "statusDraftBody": "질문을 검토한 뒤 공개하면 응답을 받을 수 있습니다.",
    "statusChangedTitle": "변경사항이 아직 공개되지 않았습니다",
    "statusChangedBody": "폼은 공개 중이지만, 다시 공개하기 전까지 응답자는 이전 공개 버전을 보게 됩니다. 다시 공개하면 작성 중이던 응답자의 진행 저장이 초기화될 수 있습니다.",
    "statusLiveTitle": "공개 중이며 최신 상태입니다",
    "statusLiveBody": "폼이 공개되어 있습니다. 링크를 공유하거나 들어온 응답을 확인하세요.",
    "shareCta": "링크 공유",
    "viewResponsesCta": "응답 보기",
    "aiDraftTitle": "AI 초안이 만들어졌습니다",
    "aiDraftBody": "AI가 초안을 만들었습니다. 공개하기 전에 질문 문구, 필수 여부, 개인정보 문항, 응답자 경험을 검토하세요.",
    "aiDraftCheckQuestions": "질문 문구와 필수 여부",
    "aiDraftCheckPrivacy": "개인정보를 묻는 문항",
    "aiDraftCheckDesign": "디자인과 완료 메시지",
    "aiDraftReview": "질문 검토",
    "aiDraftDismiss": "닫기",
    "qualityTitle": "발행 준비됐나요?",
    "qualityReadyStatus": "준비된 것 같아요",
    "qualityReviewStatus_one": "제안 {{count}}건 검토",
    "qualityReviewStatus_other": "제안 {{count}}건 검토",
    "qualityReadyBody": "눈에 띄는 문제는 없어요. 발행 전에 응답자 화면으로 한 번 미리보기 하세요.",
    "qualityEmptyTitle": "질문을 하나 이상 추가하세요",
    "qualityEmptyBody": "아직 질문이 없어 응답자가 답할 내용이 없습니다.",
    "qualityTooShortTitle": "질문이 하나뿐이에요",
    "qualityTooShortBody": "응답자에게서 더 알고 싶은 게 있으면 질문을 추가하세요.",
    "qualityTooLongTitle": "질문 {{count}}개는 다소 많아요",
    "qualityTooLongBody": "긴 폼일수록 이탈이 늘어납니다. 줄이거나 페이지 나눔으로 분할하세요.",
    "qualityManyRequiredTitle": "필수 질문이 {{count}}개예요",
    "qualityManyRequiredBody": "필수 항목이 많으면 마찰이 커집니다. 가능한 항목은 선택으로 바꾸세요.",
    "qualitySensitiveTitle": "연락처·파일 질문이 있어요",
    "qualitySensitiveBody": "왜 수집하고 어떻게 쓰는지 응답자에게 알려 주세요.",
    "qualityIntroTitle": "안내문이 없어요",
    "qualityIntroBody": "첫 화면에 맥락을 주려면 안내문 블록을 추가하세요.",
    "featureDisabledNamed": "이 워크스페이스에서 활성화되지 않은 기능을 사용하는 폼입니다: {{features}}.",
    "interviewAssistYou": "나",
    "interviewAssistAi": "AI",
    "documentDragKeyboardHint": "키보드로 옮기려면 블록을 선택한 뒤 Control+Shift+위쪽 화살표 또는 Control+Shift+아래쪽 화살표를 누르세요.",
    "documentBlockMoved": "블록을 옮겼습니다."
  },
  "design": {
    "paneSettings": "설정",
    "panePreview": "미리보기",
    "paneSwitch": "디자인 보기 전환",
    "title": "디자인",
    "liveNotice": "이 폼은 공개 상태입니다 — 디자인·완료 페이지 변경이 공개 폼에 즉시 반영됩니다.",
    "themeTitle": "테마",
    "presets": "프리셋",
    "presetKoreanDocument": "명조 문서",
    "palette": "팔레트",
    "paletteDefault": "기본",
    "theme_cloud": "클라우드",
    "theme_ink": "잉크",
    "theme_warm": "웜",
    "theme_forest": "포레스트",
    "accent": "강조 색",
    "accentReset": "테마 기본 강조색",
    "font": "글꼴",
    "fontDefault": "기본",
    "fontSerif": "명조",
    "fontNanum": "나눔고딕",
    "knobsPaletteNote": "팔레트가 적용 중입니다 — 색상을 직접 조정하면 팔레트가 해제됩니다.",
    "corners": "모서리",
    "cornerRounded": "둥글게",
    "cornerSharp": "각지게",
    "cornerRound": "많이 둥글게",
    "background": "배경",
    "backgroundPlain": "단색",
    "backgroundSoft": "부드럽게",
    "backgroundGradient": "그라데이션",
    "density": "밀도",
    "densityCompact": "좁게",
    "densityCozy": "보통",
    "densityComfortable": "넓게",
    "reduceMotion": "모션 줄이기",
    "advancedLocked": "설정된 고급 제어는 계속 표시되지만, 변경하려면 워크스페이스에서 디자인 플러스를 활성화해야 합니다.",
    "logo": "로고",
    "logoAdd": "로고 업로드",
    "logoUploading": "업로드 중…",
    "logoRemove": "로고 제거",
    "logoError": "업로드 실패",
    "intro": "시작 화면",
    "introHint": "대화형 모드에서 첫 질문 전에 표시됩니다.",
    "introHeadline": "제목",
    "introBody": "안내 문구",
    "introButton": "시작 버튼",
    "introButtonPlaceholder": "시작하기",
    "preview": "실시간 미리보기",
    "previewEmpty": "질문을 추가하면 미리보기가 표시됩니다.",
    "previewRestart": "처음부터 다시",
    "documentLayout": "문서 레이아웃",
    "documentPageWidth": "페이지 폭",
    "documentPageWidthNarrow": "좁게",
    "documentPageWidthNormal": "기본",
    "documentPageWidthWide": "넓게",
    "documentShowNumbers": "문항 번호 표시",
    "documentShowNumbersHint": "각 페이지에서 보이는 입력 필드 순서대로 번호를 표시합니다.",
    "submissionTitle": "응답 접수",
    "submissionButtonLabel": "제출 버튼 문구 (선택)",
    "submissionButtonLabelPlaceholder": "제출하기",
    "submissionButtonLabelHint": "비워 두면 폼 언어의 기본 문구를 사용합니다.",
    "acceptingResponses": "새 응답 받기",
    "submissionClosesAt": "마감 시각 (선택)",
    "submissionMaxResponses": "최대 응답 수 (선택)",
    "submissionClosedMessage": "마감 안내 문구 (선택)",
    "respondentContinuityTitle": "응답자 연속성 추정",
    "respondentContinuityHint": "폼별 capability로 최대 90일 동안 재방문을 추정합니다. 본인 확인이나 확정 식별이 아닙니다.",
    "respondentAnonymous": "완전 익명 모드: respondent ID를 영구 저장하지 않기",
    "repeatResponsePolicy": "추정 재응답 처리",
    "repeatResponseAllow": "허용",
    "repeatResponseWarn": "허용하고 검토 표시",
    "repeatResponseSoftBlock": "소프트 차단",
    "respondentContinuityLimitations": "시크릿 창, 기기나 브라우저 변경, 저장소 삭제로 우회할 수 있습니다. 임베드 폼에서 쿠키가 차단되면 추정 신뢰도가 낮아질 수 있습니다.",
    "respondentNoticeTemplateTitle": "개인정보 고지 문구 예시",
    "respondentNoticeTemplate": "수집 항목: 폼별 브라우저 연속성 추정 ID. 이용 목적: 폼 조회와 제출 간 연속성 추정 및 재응답 가능성 표시. 보유 기간: 발급일로부터 최대 90일. 이 값은 본인 확인 결과가 아니며 우회할 수 있습니다. 공개 전에 운영 정책과 적용 법률에 맞게 문구를 조정하세요.",
    "completionTitle": "완료 화면",
    "completionHeading": "제목",
    "completionBody": "내용",
    "completionRedirect": "제출 후 이동할 URL (선택)",
    "completionAllowAnother": "“다른 응답 제출” 표시",
    "completionIcon": "엔딩 아이콘",
    "completionIconCheck": "체크",
    "completionIconHeart": "하트",
    "completionIconParty": "컨페티",
    "completionIconNone": "없음",
    "completionCtaLabel": "버튼 라벨 (선택사항)",
    "completionCtaUrl": "버튼 링크 (선택사항)",
    "completionConfetti": "컨페티로 축하하기",
    "unsavedChanges": "미리보기에는 반영되었지만 아직 저장되지 않았습니다.",
    "contrastWarning": "텍스트와 배경의 대비가 낮아 응답자가 읽기 어렵습니다. 색상을 조정해 주세요.",
    "primaryContrastWarning": "주요 버튼 색상과 그 위 글자의 대비가 낮습니다. 다른 primary 색상을 골라 CTA가 잘 보이게 해 주세요.",
    "customScriptTitle": "커스텀 스크립트",
    "customScriptWarning": "발행된 폼에서 임의의 JavaScript가 실행됩니다. 신뢰하는 코드만 붙여넣으세요 — 응답자가 입력하는 모든 내용을 읽을 수 있고 방문할 때마다 실행됩니다.",
    "customScriptLabel": "스니펫 (HTML / <script>)",
    "customScriptPlaceholder": "<script>/* 애널리틱스 / 픽셀 / 위젯 */</script>",
    "hexLabel": "hex",
    "contrastValue": "(현재 {{ratio}}:1, 4.5:1 이상 필요)",
    "notSavedFixContrast": "저장 안 됨 — 대비를 조정해 주세요",
    "previewAddQuestions": "질문 추가하기",
    "previewViewport": "응답자 미리보기"
  },
  "error": {
    "title": "문제가 발생했습니다",
    "unexpected": "예기치 못한 오류가 발생했습니다.",
    "notFound": "요청하신 페이지를 찾을 수 없습니다.",
    "backHome": "대시보드로 돌아가기",
    "goHome": "홈으로 가기"
  },
  "admin": {
    "title": "운영자 콘솔",
    "badge": "운영자",
    "homeNavigation": "관리자 홈",
    "tabsLabel": "관리자 섹션",
    "backToApp": "앱으로",
    "tabs": {
      "users": "사용자",
      "forms": "폼",
      "flags": "기능 플래그",
      "settings": "설정",
      "audit": "변경 이력",
      "apiLogs": "API 로그",
      "usage": "AI 사용량",
      "modelRuns": "모델 실행",
      "interviewTurns": "턴 테이킹",
      "scheduler": "스케줄러"
    },
    "apiLogs": {
      "empty": "아직 API 요청이 없습니다.",
      "time": "시각",
      "method": "메서드",
      "path": "경로",
      "status": "상태",
      "latency": "지연",
      "errorCode": "오류",
      "scope": "권한",
      "key": "키",
      "requestId": "요청 ID",
      "allStatuses": "모든 상태",
      "allMethods": "모든 메서드",
      "filter": "필터",
      "loadMore": "더 보기"
    },
    "scheduler": {
      "instanceNote": "별도 worker와 인프로세스 스케줄러의 실행 인스턴스는 모두 영속 기록됩니다. 상태는 현재 웹 프로세스, 배치 패널은 최신 별도 worker 값을 우선 표시합니다.",
      "instancesTitle": "실행 인스턴스",
      "lastHeartbeat": "마지막 heartbeat",
      "healthy": "정상",
      "stale": "응답 없음",
      "stopped": "정지됨",
      "worker": "별도 worker",
      "inProcess": "인프로세스",
      "noInstances": "최근 7일 동안 기록된 scheduler heartbeat가 없습니다.",
      "batchSource": "배치 통계 출처",
      "requestProcess": "현재 요청 프로세스",
      "refresh": "새로고침",
      "stateTitle": "상태",
      "enabled": "인프로세스 스케줄러",
      "started": "시작됨",
      "analysisTick": "인터뷰 분석 tick",
      "webhookTick": "웹훅 tick",
      "gcTick": "GC tick",
      "on": "켜짐",
      "off": "꺼짐",
      "yes": "예",
      "no": "아니오",
      "running": "실행 중",
      "idle": "대기",
      "disabled": "이 인스턴스에서는 인프로세스 스케줄러가 꺼져 있습니다(RUN_INPROC_SCHEDULER off).",
      "analysisTitle": "최근 인터뷰 분석 배치",
      "webhookTitle": "최근 웹훅 배치",
      "emailTitle": "최근 이메일 배치",
      "gcTitle": "최근 GC 스윕",
      "lastRun": "마지막 실행",
      "never": "아직 실행 안 됨",
      "claimed": "claim",
      "succeeded": "성공",
      "failed": "실패",
      "canceled": "취소",
      "superseded": "교체된 claim",
      "reclaimed": "reclaim",
      "staleReclaimed": "stale reclaim",
      "queueLag": "큐 지연",
      "errorTitle": "최근 오류",
      "noError": "기록된 오류 없음.",
      "errorAt": "발생 시각",
      "failedJobsTitle": "실패 작업",
      "failedJobsNote": "웹훅·이메일·인터뷰 outbox 워커의 최근 단말 실패입니다. 재시도는 행을 queued로 되돌리고 attempts를 초기화하며, 다음 워커 틱이 claim합니다.",
      "failedJobsEmpty": "실패한 작업이 없습니다.",
      "failedJobsRetried": "작업을 다시 큐에 넣었습니다.",
      "failedJobsBusy": "해당 작업은 이미 큐에 있거나 실행 중입니다.",
      "failedJobsInvalid": "해당 작업을 재시도할 수 없습니다.",
      "retry": "재시도",
      "attempts": "시도"
    },
    "forms": {
      "empty": "삭제된 폼이 없습니다.",
      "emptyLive": "라이브 폼이 없습니다.",
      "form": "폼",
      "slug": "URL",
      "workspace": "워크스페이스",
      "status": "상태",
      "live": "라이브",
      "suspended": "정지됨",
      "suspend": "정지",
      "unsuspend": "정지 해제",
      "suspendReason": "사유(선택)",
      "viewLive": "라이브 폼",
      "viewDeleted": "삭제된 폼",
      "deletedAt": "삭제 시각",
      "updatedAt": "수정 시각",
      "actions": "작업",
      "hardDelete": "영구 삭제",
      "confirmHardDelete": "한 번 더 눌러 영구 삭제",
      "loadMore": "더 보기",
      "errors": {
        "invalid": "요청이 올바르지 않습니다.",
        "not_found": "폼을 찾을 수 없습니다.",
        "not_live": "발행된 라이브 폼만 정지할 수 있습니다.",
        "not_deleted": "이미 삭제 대기 상태가 아닌 폼은 영구 삭제할 수 없습니다."
      }
    },
    "usage": {
      "window": "최근 {{days}}일",
      "note": "AI 인터뷰 런타임과 사후 분석의 토큰 사용량을 집계합니다.",
      "quotaTitle": "일일 AI 한도",
      "quotaDesc": "재배포 없이 워크스페이스별 일일 요청 수와 토큰 상한을 조정합니다.",
      "quotaDisabledHint": "값을 0으로 두면 해당 일일 한도가 비활성화됩니다.",
      "quotaRequestLimit": "워크스페이스별 요청 수",
      "quotaTokenLimit": "워크스페이스별 토큰",
      "quotaRuntime": "런타임 설정",
      "quotaEnvFallback": "환경변수 기본값",
      "quotaStatusError": "환경변수 fallback 사용 중",
      "quotaSave": "한도 저장",
      "quotaSaving": "저장 중…",
      "quotaSavedToast": "AI 한도를 저장했습니다.",
      "quotaErrorToast": "AI 한도를 저장하지 못했습니다.",
      "empty": "이 기간에 AI 사용 기록이 없습니다.",
      "calls": "호출 수",
      "totalTokens": "총 토큰",
      "inputTokens": "입력 토큰",
      "outputTokens": "출력 토큰",
      "health": "상태",
      "degraded": "저하",
      "byWorkspace": "워크스페이스별 사용량",
      "byModel": "모델별 사용량",
      "daily": "일자별 추이",
      "workspace": "워크스페이스",
      "model": "모델",
      "total": "합계",
      "day": "일자",
      "unknownWorkspace": "(이름 없음)",
      "unknownModel": "(미상)"
    },
    "modelRuns": {
      "note": "인터뷰 모델 파이프라인의 단계별 지연·에러율·토큰 사용량. 운영자 전용 — 인프라/비용 디버깅.",
      "empty": "이 기간에 인터뷰 모델 실행 기록이 없습니다.",
      "byStage": "단계별",
      "byModel": "모델별",
      "stage": "단계",
      "failed": "실패",
      "refused": "거부",
      "errorRate": "에러율",
      "avgLatency": "평균 지연",
      "p95Latency": "p95 지연"
    },
    "interviewTurns": {
      "note": "턴 단위 AI 대화 로그 — 엔진 결정 분포·degraded/안전/stale 비율·지연. 운영자 전용(콘텐츠 포함), 보존 주기마다 스윕.",
      "empty": "이 기간에 기록된 인터뷰 턴이 없습니다.",
      "turns": "턴",
      "degraded": "디그레이드",
      "safetyBlocked": "안전 중단",
      "stale": "스테일",
      "byAction": "액션/인텐트별",
      "byEntrypoint": "진입점별",
      "action": "액션",
      "intent": "인텐트",
      "entrypoint": "진입점",
      "outcome": "결과",
      "sessionLookup": "세션 타임라인 (세션 ID 입력)",
      "sessionIdPlaceholder": "세션 ID…",
      "viewSession": "세션 보기",
      "timeline": "세션 타임라인",
      "timelineEmpty": "이 세션의 턴 기록이 없습니다 (ID가 틀렸거나 스윕됨).",
      "prompt": "질문",
      "answer": "답변",
      "reply": "응답"
    },
    "users": {
      "add": "사용자 추가",
      "creating": "추가 중…",
      "createdToast": "사용자를 생성했습니다.",
      "inviteTitle": "초대 링크",
      "inviteDesc": "일회용 가입 링크를 생성합니다. 링크는 한 번만 사용할 수 있습니다.",
      "createInvite": "초대 링크 만들기",
      "inviteCreating": "생성 중…",
      "inviteCreatedToast": "초대 링크를 생성했습니다.",
      "inviteLink": "가입 링크",
      "inviteCopy": "복사",
      "inviteCopied": "클립보드에 복사했습니다.",
      "inviteCopyError": "복사하지 못했습니다.",
      "moreActions": "추가 작업",
      "actionToast": "완료되었습니다.",
      "errorToast": "요청에 실패했습니다.",
      "selfForbidden": "자신의 계정에는 이 작업을 할 수 없습니다.",
      "confirmBan": "한 번 더 눌러 계정 정지",
      "confirmRevoke": "한 번 더 눌러 강제 로그아웃",
      "confirmHardDelete": "한 번 더 눌러 영구 삭제",
      "search": "검색",
      "searchPlaceholder": "이메일, 이름, 내부 ID로 검색…",
      "empty": "사용자가 없습니다.",
      "emptySearch": "\"{{q}}\"와 일치하는 사용자가 없습니다.",
      "clearSearch": "검색 지우기",
      "internalId": "내부 ID",
      "roleAdmin": "운영자",
      "banned": "정지됨",
      "promote": "운영자 지정",
      "demote": "운영자 해제",
      "ban": "계정 정지",
      "unban": "계정 정지 해제",
      "hardDelete": "영구 삭제",
      "revoke": "강제 로그아웃",
      "resetPassword": "비밀번호 재설정",
      "apply": "적용"
    },
    "flags": {
      "intro": "플래그 키는 코드에서 정의됩니다. 여기서는 기존 키의 전역·범위 오버라이드를 관리합니다.",
      "capabilityControls": "운영자 기능 제어",
      "capabilityControlsIntro": "강제 차단은 항상 우선합니다. 제한 기능은 워크스페이스별 명시적 허가도 필요합니다. 파일럿 워크스페이스에서는 이 제어가 권위 경계입니다.",
      "legacyFlags": "레거시 롤아웃 플래그",
      "hardDeny": "강제 차단",
      "restricted": "허가 필요",
      "capabilityDefault": "등록 기본값",
      "codeDefaultValue": "상속 ({{value}})",
      "grantWorkspace": "워크스페이스 ID",
      "grant": "허가",
      "codeDefault": "코드 기본값",
      "globalOverride": "전역 오버라이드",
      "on": "켜짐",
      "off": "꺼짐",
      "toggleGlobal": "{{key}} 전역 값 전환",
      "resetGlobal": "코드 기본값으로 초기화",
      "scope": "범위",
      "scopeWorkspace": "워크스페이스",
      "scopeUser": "사용자",
      "scopeId": "범위 ID",
      "scopeIdPlaceholder": "organization.id 또는 user.id",
      "value": "값",
      "addScope": "범위 오버라이드 추가",
      "clear": "삭제",
      "apply": "적용",
      "savedToast": "플래그를 업데이트했습니다.",
      "errorToast": "플래그를 업데이트하지 못했습니다."
    },
    "settings": {
      "publicSignupTitle": "회원가입 허용",
      "publicSignupDesc": "가입 페이지에서 새 사용자가 직접 계정을 만들 수 있도록 허용합니다.",
      "publicSignupOn": "회원가입이 열려 있습니다. 누구나 새 계정을 만들 수 있습니다.",
      "publicSignupOff": "회원가입이 닫혀 있습니다. 운영자만 사용자를 추가할 수 있습니다.",
      "publicSignupStatusError": "저장된 회원가입 설정을 읽지 못했습니다. 운영 환경에서는 문제가 해결될 때까지 회원가입을 닫힌 상태로 처리합니다.",
      "savedToast": "설정을 저장했습니다."
    },
    "audit": {
      "empty": "아직 활동이 없습니다.",
      "time": "시각",
      "actor": "운영자",
      "action": "동작",
      "target": "대상",
      "details": "상세",
      "loadMore": "더 보기",
      "allActions": "모든 작업",
      "actorPlaceholder": "운영자 이메일로 필터",
      "filter": "필터"
    }
  },
  "workflow": {
    "questions": "질문 추가됨",
    "published": "공개됨",
    "responses": "응답 수집됨",
    "label": "폼 진행 상태",
    "next": "다음",
    "statusCompleted": "완료됨",
    "statusNext": "다음 단계",
    "statusPending": "미완료",
    "itemAria": "{{step}}: {{status}}",
    "stepCount": "{{total}}단계 중 {{done}}단계 완료"
  },
  "interviewReview": {
    "title": "정성 코드 검수",
    "description": "원문 근거가 연결된 AI 코드를 승인, 거절 또는 수정합니다. 모든 판단은 변경 불가능한 검수 이벤트로 보존됩니다.",
    "openReview": "AI 코드 검수",
    "backToResults": "결과로 돌아가기",
    "filterLabel": "검수 상태",
    "empty": "이 상태의 검수 대상 코드가 없습니다.",
    "evidence": "원문 근거",
    "staleEvidence": "원문 답변이 변경되었습니다. 이전 인용은 숨기며 검수할 수 없습니다.",
    "openResponse": "원본 응답 열기",
    "useAsCrosstabBanner": "코드를 교차표 배너로 사용",
    "codebook": "코드북",
    "model": "모델 실행",
    "rationale": "검수 근거",
    "rationalePlaceholder": "이 판단의 근거를 남겨 주세요",
    "accept": "코드 승인",
    "accepting": "승인 중…",
    "reject": "코드 거절",
    "rejecting": "거절 중…",
    "editAndAccept": "수정 후 승인",
    "editedLabel": "수정된 코드 라벨",
    "editedDescription": "수정된 코드 설명",
    "saveEdit": "수정 코드 저장",
    "saving": "저장 중…",
    "status": {
      "all": "전체",
      "pending": "대기",
      "accepted": "승인",
      "rejected": "거절",
      "edited": "수정됨"
    },
    "error": {
      "invalid": "검수 판단이 올바르지 않습니다.",
      "not_found": "코드를 더 이상 찾을 수 없습니다.",
      "conflict": "다른 사용자가 먼저 검수했습니다. 최신 상태를 불러왔습니다.",
      "ungrounded_evidence": "원문 근거가 유효하지 않아 검수할 수 없습니다.",
      "quota_exceeded": "워크스페이스 AI 사용 한도에 도달했습니다. 한도가 초기화된 후 다시 시도해 주세요.",
      "coding_busy": "이 문항의 정성 코딩이 이미 실행 중입니다. 완료된 후 다시 시도해 주세요."
    }
  },
  "classicCoding": {
    "title": "주관식 정성 코딩",
    "description": "코드북을 버전 관리하고 발행된 장문 답변을 코딩한 뒤 원문 근거와 함께 검수합니다.",
    "open": "정성 코딩",
    "codebookTitle": "코드북 버전",
    "codebookVersion": "코드북 버전",
    "codebookName": "코드북 이름",
    "taxonomyVersion": "분류 체계 버전",
    "allowEmergentCodes": "새 코드 발견 허용",
    "entries": "코드 항목",
    "addEntry": "코드 추가",
    "entriesEmpty": "이 코드북에 첫 코드를 추가하세요.",
    "entryId": "안정적인 코드 ID",
    "entryType": "코드 유형",
    "removeEntry": "코드 삭제",
    "entryLabel": "코드 라벨",
    "entryDescription": "코드 설명",
    "entryRules": "포함·제외 기준과 예시",
    "inclusionCriteria": "포함 기준, 한 줄에 하나",
    "exclusionCriteria": "제외 기준, 한 줄에 하나",
    "examples": "예시, 한 줄에 하나",
    "codebookEmpty": "이 소스에 생성된 코드북이 없습니다.",
    "defaultCodebookName": "연구 코드북",
    "createCodebook": "코드북 만들기",
    "saveNewVersion": "새 버전으로 저장",
    "runTitle": "코딩 실행",
    "runUnavailable": "장문 문항을 발행하고 코드북을 먼저 만들어 주세요.",
    "question": "장문 문항",
    "run": "다음 응답 25개 코딩",
    "running": "응답 코딩 중…",
    "manualLifecycle": "클래식 소스 · 수동 배치 · 답변 해시와 정확한 구간으로 최신성 판정",
    "automaticLifecycle": "인터뷰 소스 · 완료 outbox 자동 실행 · 불변 메시지 구간",
    "automaticRunDescription": "인터뷰 코딩은 세션 완료 후 자동으로 실행됩니다. 재시도와 멱등성은 분석 워커가 관리합니다.",
    "editorRunOnly": "분석가는 코드를 검수할 수 있습니다. 클래식 코딩 배치는 편집자만 시작할 수 있습니다."
  },
  "charts": {
    "barItemLabel": "{{label}}: {{pct}}% ({{count}}명)"
  },
  "a11y": {
    "scrollableTable": "가로 스크롤 표",
    "navigatedTo": "{{title}}(으)로 이동했습니다",
    "scrollableRegion": "가로 스크롤 영역"
  }
}
