import antdKoKR from 'ant-design-vue/es/locale-provider/ko_KR'
import momentKO from 'moment/locale/ko'

const components = {
  antLocale: antdKoKR,
  momentName: 'ko',
  momentLocale: momentKO
}
const locale = {
  'submit': '제출',
  'save': '저장',
  'submit.ok': '제출 성공',
  'save.ok': '성공적으로 저장되었습니다',
  'menu.welcome': '환영합니다',
  'menu.home': '홈페이지',
  'menu.dashboard': '대시보드',
  'menu.dashboard.indicator': '지표분석',
  'menu.dashboard.community': '지표 커뮤니티',
  'menu.dashboard.analysis': 'AI 분석',
  'menu.dashboard.tradingAssistant': '트레이딩 어시스턴트',
  'menu.dashboard.aiTradingAssistant': 'AI 트레이딩 도우미',
  'menu.dashboard.signalRobot': '시그널 로봇',
  'menu.dashboard.monitor': '모니터링 페이지',
  'menu.dashboard.workplace': '작업대',
  'menu.form': '양식 페이지',
  'menu.form.basic-form': '기본 형태',
  'menu.form.step-form': '단계별 양식',
  'menu.form.step-form.info': '단계별 양식(이체 정보 입력)',
  'menu.form.step-form.confirm': '단계별 양식(이체정보 확인)',
  'menu.form.step-form.result': '단계별 양식(완료)',
  'menu.form.advanced-form': '고급 양식',
  'menu.list': '목록 페이지',
  'menu.list.table-list': '문의 양식',
  'menu.list.basic-list': '표준 목록',
  'menu.list.card-list': '카드 목록',
  'menu.list.search-list': '검색 목록',
  'menu.list.search-list.articles': '검색 목록(기사)',
  'menu.list.search-list.projects': '검색 목록(프로젝트)',
  'menu.list.search-list.applications': '검색 목록(앱)',
  'menu.profile': '세부정보 페이지',
  'menu.profile.basic': '기본 세부정보 페이지',
  'menu.profile.advanced': '고급 세부정보 페이지',
  'menu.result': '결과 페이지',
  'menu.result.success': '성공 페이지',
  'menu.result.fail': '실패 페이지',
  'menu.exception': '예외 페이지',
  'menu.exception.not-permission': '403',
  'menu.exception.not-find': '404',
  'menu.exception.server-error': '500',
  'menu.exception.trigger': '트리거 오류',
  'menu.account': '개인 페이지',
  'menu.account.center': '개인 센터',
  'menu.account.settings': '개인 설정',
  'menu.account.trigger': '트리거 오류',
  'menu.account.logout': '로그아웃',
  'menu.wallet': '내 지갑',
  'menu.docs': '문서 센터',
  'menu.docs.detail': '문서 세부정보',
  'menu.header.refreshPage': '페이지 새로 고침',
  'menu.invite.friends': '친구 초대',
  'app.setting.pagestyle': '전반적인 스타일 설정',
  'app.setting.pagestyle.light': '밝은 메뉴 스타일',
  'app.setting.pagestyle.dark': '어두운 메뉴 스타일',
  'app.setting.pagestyle.realdark': '다크 모드',
  'app.setting.themecolor': '테마 색상',
  'app.setting.navigationmode': '탐색 모드',
  'app.setting.sidemenu.nav': '사이드바 탐색',
  'app.setting.topmenu.nav': '상단 표시줄 탐색',
  'app.setting.content-width': '콘텐츠 영역 너비',
  'app.setting.content-width.tooltip': '이 설정은 [상단 표시줄 탐색]인 경우에만 유효합니다.',
  'app.setting.content-width.fixed': '고정',
  'app.setting.content-width.fluid': '스트리밍',
  'app.setting.fixedheader': '고정 헤더',
  'app.setting.fixedheader.tooltip': '헤더 고정 시 구성 가능',
  'app.setting.autoHideHeader': '스크롤할 때 헤더 숨기기',
  'app.setting.fixedsidebar': '사이드 메뉴 고정',
  'app.setting.sidemenu': '사이드 메뉴 레이아웃',
  'app.setting.topmenu': '상단 메뉴 레이아웃',
  'app.setting.othersettings': '기타 설정',
  'app.setting.weakmode': '색약 모드',
  'app.setting.multitab': '멀티탭 모드',
  'app.setting.copy': '설정 복사',
  'app.setting.loading': '테마 로드 중',
  'app.setting.copyinfo': '설정을 성공적으로 복사했습니다. src/config/defaultSettings.js',
  'app.setting.copy.success': '복사 완료',
  'app.setting.copy.fail': '복사 실패',
  'app.setting.theme.switching': '테마 변경!',
  'app.setting.production.hint': '구성 표시줄은 개발 환경에서 미리 보기에만 사용되며 프로덕션 환경에서는 표시되지 않습니다. 구성 파일을 수동으로 복사하고 수정하십시오.',
  'app.setting.themecolor.daybreak': '새벽 파란색(기본값)',
  'app.setting.themecolor.dust': '황혼',
  'app.setting.themecolor.volcano': '화산',
  'app.setting.themecolor.sunset': '일몰',
  'app.setting.themecolor.cyan': '밍칭',
  'app.setting.themecolor.green': '오로라 그린',
  'app.setting.themecolor.geekblue': '긱 블루',
  'app.setting.themecolor.purple': '장쯔(Jiang Zi)',
  'app.setting.tooltip': '페이지 설정',
  'user.login.userName': '사용자 이름',
  'user.login.password': '비밀번호',
  'user.login.username.placeholder': '계정: 관리자',
  'user.login.password.placeholder': '비밀번호: admin 또는 ant.design',
  'user.login.message-invalid-credentials': '로그인에 실패했습니다. 이메일과 인증 코드를 확인하세요.',
  'user.login.message-invalid-verification-code': '인증코드 오류',
  'user.login.tab-login-credentials': '계정 비밀번호 로그인',
  'user.login.tab-login-email': '이메일 로그인',
  'user.login.tab-login-mobile': '휴대폰번호 로그인',
  'user.login.captcha.placeholder': '그래픽 인증 코드를 입력하세요.',
  'user.login.mobile.placeholder': '휴대전화번호',
  'user.login.mobile.verification-code.placeholder': '인증코드',
  'user.login.email.placeholder': '이메일 주소를 입력해주세요',
  'user.login.email.verification-code.placeholder': '인증번호를 입력해주세요',
  'user.login.email.sending': '인증코드가 전송되는 중입니다...',
  'user.login.email.send-success-title': '팁',
  'user.login.email.send-success': '인증코드가 성공적으로 전송되었습니다. 이메일을 확인해 주세요.',
  'user.login.sms.send-success': '인증번호가 성공적으로 전송되었습니다. 문자 메시지를 확인하세요.',
  'user.login.remember-me': '자동 로그인',
  'user.login.forgot-password': '비밀번호를 잊으셨나요?',
  'user.login.sign-in-with': '기타 로그인 방법',
  'user.login.signup': '계정 등록',
  'user.login.login': '로그인',
  'user.register.register': '등록',
  'user.register.email.placeholder': '이메일',
  'user.register.password.placeholder': '6자 이상 입력해주세요. 쉽게 추측할 수 있는 비밀번호는 사용하지 마세요.',
  'user.register.password.popover-message': '6자 이상 입력해주세요. 쉽게 추측할 수 있는 비밀번호는 사용하지 마세요.',
  'user.register.confirm-password.placeholder': '비밀번호 확인',
  'user.register.get-verification-code': '인증 코드 받기',
  'user.register.sign-in': '기존 계정을 사용하여 로그인',
  'user.register-result.msg': '귀하의 계정: {email} 등록이 완료되었습니다.',
  'user.register-result.activation-email': '활성화 이메일이 귀하의 사서함으로 전송되었으며 24시간 동안 유효합니다. 귀하의 이메일에 즉시 로그인하고 이메일에 있는 링크를 클릭하여 계정을 활성화하십시오.',
  'user.register-result.back-home': '홈페이지로 돌아가기',
  'user.register-result.view-mailbox': '우편함을 확인하세요',
  'user.email.required': '이메일 주소를 입력해주세요!',
  'user.email.wrong-format': '이메일 주소 형식이 잘못되었습니다!',
  'user.userName.required': '계정 이름이나 이메일 주소를 입력하세요',
  'user.password.required': '비밀번호를 입력해주세요!',
  'user.password.twice.msg': '두 번 입력한 비밀번호가 일치하지 않습니다!',
  'user.password.strength.msg': '비밀번호가 충분히 강력하지 않습니다.',
  'user.password.strength.strong': '힘: 강한',
  'user.password.strength.medium': '강도: 중간',
  'user.password.strength.low': '강도: 낮음',
  'user.password.strength.short': '강도: 너무 짧음',
  'user.confirm-password.required': '비밀번호를 확인해 주세요!',
  'user.phone-number.required': '정확한 휴대폰번호를 입력해주세요',
  'user.phone-number.wrong-format': '휴대폰 번호 형식이 잘못되었습니다!',
  'user.verification-code.required': '인증번호를 입력해주세요!',
  'user.captcha.required': '그래픽 인증코드를 입력해주세요!',
  'user.login.infos': 'QuantDinger는 AI 멀티에이전트 주식 분석 보조 도구로 증권 투자 컨설팅 자격이 없습니다. 플랫폼 내 모든 분석 결과, 점수, 참고 의견은 과거 데이터를 기반으로 AI에 의해 자동으로 생성되며 학습, 연구 및 기술 교류에만 사용되며 투자 조언이나 의사 결정 기반을 구성하지 않습니다. 주식투자에는 시장리스크, 유동성리스크, 정책리스크 등 다양한 리스크가 수반되며, 이로 인해 원금 손실이 발생할 수 있습니다. 사용자는 자신의 위험 허용 범위에 따라 독립적인 결정을 내려야 하며, 이 도구의 사용으로 인해 발생하는 모든 투자 행위 및 결과는 사용자가 부담해야 합니다. 시장은 위험하므로 투자에 신중해야 합니다.',
  'user.login.tab-login-web3': 'Web3 로그인',
  'user.login.web3.tip': '지갑을 이용한 서명 로그인',
  'user.login.web3.connect': '지갑을 연결하고 로그인하세요',
  'user.login.web3.no-wallet': '지갑이 감지되지 않음',
  'user.login.web3.no-address': '지갑 주소를 가져오지 못했습니다.',
  'user.login.web3.nonce-failed': '난수를 가져오지 못했습니다.',
  'user.login.web3.verify-failed': '서명 확인 실패',
  'user.login.web3.success': '로그인 성공',
  'user.login.web3.failed': '지갑 로그인 실패',
  'nav.no_wallet': '지갑이 감지되지 않음',
  'nav.copy': '복사',
  'nav.copy_success': '성공적으로 복사되었습니다',
  'user.login.oauth.google': 'Google로 로그인',
  'user.login.oauth.github': 'GitHub로 로그인',
  'user.login.oauth.loading': '승인 페이지로 리디렉션 중...',
  'user.login.oauth.failed': 'OAuth 로그인 실패',
  'user.login.oauth.get-url-failed': '승인 링크를 얻지 못했습니다.',
  'user.login.subtitle': '글로벌 시장에 대한 정량적 통찰력 확보',
  'user.login.legal.title': '법적 고지 사항',
  'user.login.legal.view': '법적 고지사항 보기',
  'user.login.legal.collapse': '법적 면책조항 접기',
  'user.login.legal.agree': '법적 고지 사항을 읽었으며 이에 동의합니다.',
  'user.login.legal.required': '먼저 법적 고지 사항을 읽고 확인하십시오.',
  'user.login.legal.content': 'QuantDinger는 AI 멀티에이전트 주식 분석 보조 도구로 증권 투자 컨설팅 자격이 없습니다. 플랫폼 내 모든 분석 결과, 등급, 참고 의견은 과거 데이터를 기반으로 AI에 의해 자동으로 생성되며 학습, 연구 및 기술 교류에만 사용되며 투자 조언이나 의사 결정 기반을 구성하지 않습니다. 주식투자에는 시장리스크, 유동성리스크, 정책리스크 등 다양한 리스크가 수반되며, 이로 인해 원금 손실이 발생할 수 있습니다. 사용자는 자신의 위험 허용 범위에 따라 독립적인 결정을 내려야 하며, 이 도구의 사용으로 인해 발생하는 모든 투자 행위 및 결과는 사용자가 부담해야 합니다. 시장은 위험하므로 투자에 신중해야 합니다.',
  'user.login.privacy.title': '사용자 개인 정보 보호 정책',
  'user.login.privacy.view': '사용자 개인 정보 보호 정책 보기',
  'user.login.privacy.collapse': '사용자 개인정보 보호 약관 닫기',
  'user.login.privacy.content': '우리는 귀하의 개인 정보 보호와 데이터 보호를 중요하게 생각합니다. 1) 수집 범위 : 기능 구현에 꼭 필요한 정보(이메일, 휴대전화번호, 지역번호, Web3 지갑 주소 등)와 필수 로그, 기기정보만 수집합니다. 2) 이용 목적: 계정 로그인 및 보안 확인, 서비스 기능 제공, 문제 해결 및 규정 준수 요구 사항. 3) 저장 및 보안: 데이터는 암호화되어 저장되며, 무단 접근, 공개 또는 손실을 방지하기 위해 필요한 권한 및 접근 제어 조치가 취해집니다. 4) 제3자와의 공유: 법률 및 규정에 의해 요구되거나 서비스 수행에 필요한 경우를 제외하고, 귀하의 개인정보는 제3자와 공유되지 않습니다. 제3자 서비스(예: 지갑, SMS 서비스 제공업체)가 관련된 경우 해당 기능을 구현하는 데 필요한 최소한의 범위에서만 처리됩니다. 5) 쿠키/로컬 저장소: 로그인 상태 및 필요한 세션 유지 관리(예: 토큰, PHPSESSID)에 사용되며 브라우저에서 이를 삭제하거나 제한할 수 있습니다. 6) 개인권리 : 귀하는 법령에 따른 조회, 정정, 삭제, 동의철회 등의 권리를 행사할 수 있습니다. 7) 변경 및 공지: 본 약관이 업데이트되면 페이지에 눈에 띄게 표시됩니다. 본 서비스를 계속 이용하시면 업데이트된 내용을 읽고 동의하신 것으로 간주됩니다. 본 약관 또는 그에 대한 업데이트에 동의하지 않는 경우 서비스 사용을 중단하고 당사에 문의하십시오.',
  'account.basicInfo': '기본정보',
  'account.id': '사용자 ID',
  'account.username': '사용자 이름',
  'account.nickname': '닉네임',
  'account.email': '이메일',
  'account.mobile': '휴대전화번호',
  'account.web3address': '지갑 주소',
  'account.pid': '추천인 ID',
  'account.level': '사용자 수준',
  'account.money': '균형',
  'account.qdtBalance': 'QDT 잔액',
  'account.score': '포인트',
  'account.createtime': '등록 시간',
  'account.inviteLink': '초대링크',
  'account.recharge': '재충전',
  'account.rechargeTip': '충전하려면 WeChat 또는 Alipay를 사용하여 아래 QR 코드를 스캔하세요.',
  'account.qrCodePlaceholder': 'QR 코드 자리 표시자(에뮬레이션)',
  'account.rechargeAmount': '충전금액',
  'account.enterAmount': '충전금액을 입력해주세요',
  'account.rechargeHint': '최소 입금액: 1 QDT',
  'account.confirmRecharge': '충전 확인',
  'account.enterValidAmount': '유효한 충전 금액을 입력하세요.',
  'account.rechargeSuccess': '재충전 성공! {amount} QDT 입금',
  'account.settings.menuMap.basic': '기본 설정',
  'account.settings.menuMap.security': '보안 설정',
  'account.settings.menuMap.notification': '새 메시지 알림',
  'account.settings.menuMap.moneyLog': '기금 세부정보',
  'account.moneyLog.empty': '아직 펀드 세부정보가 없습니다.',
  'account.moneyLog.total': '총 {total}개 기록',
  'account.moneyLog.type.purchase': '매수 지표',
  'account.moneyLog.type.recharge': '재충전',
  'account.moneyLog.type.refund': '환불',
  'account.moneyLog.type.reward': '보상',
  'account.moneyLog.type.income': '지표소득',
  'account.moneyLog.type.commission': '플랫폼 취급 수수료',
  'wallet.balance': 'QDT 잔액',
  'wallet.recharge': '재충전',
  'wallet.withdraw': '현금 인출',
  'wallet.filter': '필터',
  'wallet.reset': '재설정',
  'wallet.totalRecharge': '누적 충전',
  'wallet.totalWithdraw': '누적 출금',
  'wallet.totalIncome': '누적 수입',
  'wallet.records': '거래기록 및 자금내역',
  'wallet.tradingRecords': '거래 내역',
  'wallet.moneyLog': '기금 세부정보',
  'wallet.rechargeTip': '충전하려면 WeChat 또는 Alipay를 사용하여 아래 QR 코드를 스캔하세요.',
  'wallet.qrCodePlaceholder': 'QR 코드 자리 표시자(에뮬레이션)',
  'wallet.rechargeAmount': '충전금액',
  'wallet.enterAmount': '충전금액을 입력해주세요',
  'wallet.rechargeHint': '최소 입금액: 1 QDT',
  'wallet.confirmRecharge': '충전 확인',
  'wallet.enterValidAmount': '유효한 충전 금액을 입력하세요.',
  'wallet.rechargeSuccess': '재충전 성공! {amount} QDT 입금',
  'wallet.rechargeFailed': '재충전 실패',
  'wallet.withdrawTip': '출금금액과 출금주소를 입력해주세요',
  'wallet.withdrawAmount': '출금금액',
  'wallet.enterWithdrawAmount': '출금금액을 입력해주세요',
  'wallet.withdrawHint': '최소 출금 금액: 1 QDT',
  'wallet.withdrawAddress': '출금주소(선택)',
  'wallet.enterWithdrawAddress': '출금주소를 입력해주세요',
  'wallet.confirmWithdraw': '출금 확인',
  'wallet.enterValidWithdrawAmount': '유효한 인출 금액을 입력하세요.',
  'wallet.insufficientBalance': '잔액 부족',
  'wallet.withdrawSuccess': '출금 성공! 인출된 {금액} QDT',
  'wallet.withdrawFailed': '출금 실패',
  'wallet.noTradingRecords': '아직 거래기록이 없습니다',
  'wallet.noMoneyLog': '아직 펀드 세부정보가 없습니다.',
  'wallet.loadTradingRecordsFailed': '거래 기록을 로드하지 못했습니다.',
  'wallet.loadMoneyLogFailed': '자금 세부정보를 로드하지 못했습니다.',
  'wallet.moneyLogTotal': '총 {total}개 기록',
  'wallet.moneyLogTypeTitle': '유형',
  'wallet.moneyLogType.all': '모든 유형',
  'wallet.table.time': '시간',
  'wallet.table.type': '유형',
  'wallet.table.price': '가격',
  'wallet.table.amount': '수량',
  'wallet.table.money': '금액',
  'wallet.table.balance': '균형',
  'wallet.table.memo': '비고',
  'wallet.table.value': '가치',
  'wallet.table.profit': '이익과 손실',
  'wallet.table.commission': '취급 수수료',
  'wallet.table.total': '총 {total}개 기록',
  'wallet.tradeType.buy': '사다',
  'wallet.tradeType.sell': '팔다',
  'wallet.tradeType.liquidation': '강제청산',
  'wallet.tradeType.openLong': '길게 열다',
  'wallet.tradeType.addLong': '가돗',
  'wallet.tradeType.closeLong': '핀듀오',
  'wallet.tradeType.closeLongStop': '손실을 멈추고 오랫동안',
  'wallet.tradeType.closeLongProfit': '이익을 얻고 더 많은 레벨을 올리세요',
  'wallet.tradeType.openShort': '오픈 쇼트',
  'wallet.tradeType.addShort': '짧게 추가하다',
  'wallet.tradeType.closeShort': '비어 있음',
  'wallet.tradeType.closeShortStop': '손실 중지',
  'wallet.tradeType.closeShortProfit': '이익을 얻고 공매도 마감',
  'wallet.moneyLogType.purchase': '매수 지표',
  'wallet.moneyLogType.recharge': '재충전',
  'wallet.moneyLogType.withdraw': '현금 인출',
  'wallet.moneyLogType.refund': '환불',
  'wallet.moneyLogType.reward': '보상',
  'wallet.moneyLogType.income': '소득',
  'wallet.moneyLogType.commission': '취급 수수료',
  'wallet.web3Address.required': '먼저 Web3 지갑 주소를 입력해주세요',
  'wallet.web3Address.requiredDescription': '충전하기 전에 Web3 지갑 주소를 바인딩해야 충전을 받을 수 있습니다.',
  'wallet.web3Address.placeholder': 'Web3 지갑 주소(0x로 시작)를 입력하세요.',
  'wallet.web3Address.save': '지갑 주소 저장',
  'wallet.web3Address.saveSuccess': '지갑 주소가 성공적으로 저장되었습니다',
  'wallet.web3Address.saveFailed': '지갑 주소 저장 실패',
  'wallet.web3Address.invalidFormat': '유효한 Web3 지갑 주소를 입력하세요. (이더리움 형식: 0x로 시작하는 42자 또는 TRC20 형식: T로 시작하는 34자)',
  'wallet.selectCoin': '통화 선택',
  'wallet.selectChain': '선택 체인',
  'wallet.chain.eth': 'ETH(ERC20)',
  'wallet.chain.trc20': 'TRC20',
  'wallet.chain.bsc': 'BSC',
  'wallet.targetQdtAmount': '상환하려는 QDT 금액(선택 사항)',
  'wallet.targetQdtAmount.placeholder': '상환하려는 QDT 수량, 현재 QDT 가격을 입력하세요: {price} USDT',
  'wallet.targetQdtAmount.requiredUsdt': '재충전 필요: {amount} USDT',
  'wallet.rechargeAddress': '충전 주소',
  'wallet.copyAddress': '복사',
  'wallet.copySuccess': '성공적으로 복사되었습니다!',
  'wallet.copyFailed': '복사하지 못했습니다. 수동으로 복사하세요.',
  'wallet.rechargeAddressHint': '이 주소에 {coin}을 입금하려면 반드시 {chain}을 사용하세요.',
  'wallet.qdtPrice.loading': '로드 중...',
  'wallet.rechargeTip.new': '통화와 체인을 선택한 후 아래 QR 코드를 스캔하여 충전하세요.',
  'wallet.exchangeRate': '1 QDT ≒ {rate} USDT',
  'wallet.withdrawableAmount': '사용 가능한 현금 금액',
  'wallet.totalBalance': '총 잔액',
  'wallet.insufficientWithdrawable': '출금 가능한 현금 금액이 부족합니다. 현재 인출할 수 있는 금액은 다음과 같습니다: {amount} QDT',
  'wallet.withdrawAddressRequired': '출금주소를 입력해주세요',
  'wallet.withdrawAddressHint': '주소가 올바른지 확인하십시오. 탈퇴 후에는 취소가 불가능합니다.',
  'wallet.withdrawSubmitSuccess': '철회 신청서가 성공적으로 제출되었습니다. 검토를 기다려 주세요.',
  'menu.footer.contactUs': '문의하기',
  'menu.footer.getSupport': '지원 받기',
  'menu.footer.socialAccounts': '소셜 계정',
  'menu.footer.userAgreement': '사용자 계약',
  'menu.footer.privacyPolicy': '개인 정보 보호 정책',
  'menu.footer.support': '지원',
  'menu.footer.featureRequest': '기능 요청',
  'menu.footer.email': '이메일',
  'menu.footer.liveChat': '연중무휴 라이브 채팅',
  'dashboard.analysis.title': '다차원 분석',
  'dashboard.analysis.subtitle': 'AI 기반 종합재무분석 플랫폼',
  'dashboard.analysis.selectSymbol': '기본 코드 선택 또는 입력',
  'dashboard.analysis.selectModel': '모델 선택',
  'dashboard.analysis.startAnalysis': '분석 시작',
  'dashboard.analysis.history': '역사',
  'dashboard.analysis.tab.overview': '종합적인 분석',
  'dashboard.analysis.tab.fundamental': '기초',
  'dashboard.analysis.tab.technical': '기술',
  'dashboard.analysis.tab.news': '뉴스',
  'dashboard.analysis.tab.sentiment': '감정',
  'dashboard.analysis.tab.risk': '위험',
  'dashboard.analysis.tab.debate': '길고 짧은 논쟁',
  'dashboard.analysis.tab.decision': '최종 결정',
  'dashboard.analysis.empty.selectSymbol': '분석을 시작하려면 대상을 선택하세요.',
  'dashboard.analysis.empty.selectSymbolDesc': '자체 선택한 주식 목록에서 선택하거나 기본 코드를 입력하여 다차원 AI 분석 보고서를 얻습니다.',
  'dashboard.analysis.empty.startAnalysis': '다차원 분석을 수행하려면 "분석 시작" 버튼을 클릭하세요.',
  'dashboard.analysis.empty.startAnalysisDesc': '펀더멘털, 기술, 뉴스, 정서, 리스크 등 다차원에서 종합적인 분석을 제공해드립니다.',
  'dashboard.analysis.empty.noData': '현재 {type} 분석 데이터가 없습니다. 먼저 종합적인 분석을 수행해 주세요.',
  'dashboard.analysis.empty.noWatchlist': '현재 자체선택한 종목이 없습니다.',
  'dashboard.analysis.empty.noHistory': '아직 기록이 없습니다.',
  'dashboard.analysis.empty.watchlistHint': '현재 자체 선택한 주식이 없습니다. 먼저 문의해 주세요.',
  'dashboard.analysis.empty.noDebateData': '아직 토론 데이터가 없습니다.',
  'dashboard.analysis.empty.noDecisionData': '아직 결정 데이터가 없습니다.',
  'dashboard.analysis.empty.selectAgent': '분석 결과를 보려면 에이전트를 선택하세요.',
  'dashboard.analysis.loading.analyzing': '분석 중입니다. 잠시 기다려 주세요...',
  'dashboard.analysis.loading.fundamental': '기본 데이터 분석 중...',
  'dashboard.analysis.loading.technical': '기술 지표 분석 중...',
  'dashboard.analysis.loading.news': '뉴스 데이터 분석 중...',
  'dashboard.analysis.loading.sentiment': '시장 심리 분석 중…',
  'dashboard.analysis.loading.risk': '위험 평가 중...',
  'dashboard.analysis.loading.debate': '롱숏 논쟁이 진행중인데..',
  'dashboard.analysis.loading.decision': '최종 결정을 내리는 중...',
  'dashboard.analysis.score.overall': '종합평가',
  'dashboard.analysis.score.recommendation': '투자 조언',
  'dashboard.analysis.score.confidence': '자신감',
  'dashboard.analysis.dimension.fundamental': '기초',
  'dashboard.analysis.dimension.technical': '기술',
  'dashboard.analysis.dimension.news': '뉴스',
  'dashboard.analysis.dimension.sentiment': '감정',
  'dashboard.analysis.dimension.risk': '위험',
  'dashboard.analysis.card.dimensionScores': '각 차원에 대한 평가',
  'dashboard.analysis.card.overviewReport': '종합분석보고서',
  'dashboard.analysis.card.financialMetrics': '재무 지표',
  'dashboard.analysis.card.fundamentalReport': '기초분석 보고서',
  'dashboard.analysis.card.technicalIndicators': '기술 지표',
  'dashboard.analysis.card.technicalReport': '기술적 분석 보고서',
  'dashboard.analysis.card.newsList': '관련 뉴스',
  'dashboard.analysis.card.newsReport': '뉴스 분석 보고서',
  'dashboard.analysis.card.sentimentIndicators': '감정 지표',
  'dashboard.analysis.card.sentimentReport': '감정 분석 보고서',
  'dashboard.analysis.card.riskMetrics': '위험 지표',
  'dashboard.analysis.card.riskReport': '위험 평가 보고서',
  'dashboard.analysis.card.bullView': '강세 전망(강세)',
  'dashboard.analysis.card.bearView': '약세 전망 (곰)',
  'dashboard.analysis.card.researchConclusion': '연구원의 결론',
  'dashboard.analysis.card.traderPlan': '상인 계획',
  'dashboard.analysis.card.riskDebate': '위험위원회 토론',
  'dashboard.analysis.card.finalDecision': '최종 결정',
  'dashboard.analysis.card.tradePlanDetail': '거래 계획 세부정보',
  'dashboard.analysis.tradingPlan.entry_price': '입장료',
  'dashboard.analysis.tradingPlan.position_size': '위치 크기',
  'dashboard.analysis.tradingPlan.stop_loss': '손실을 막다',
  'dashboard.analysis.tradingPlan.take_profit': '이익을 얻으세요',
  'dashboard.analysis.label.confidence': '자신감',
  'dashboard.analysis.label.keyPoints': '핵심 포인트',
  'dashboard.analysis.label.riskWarning': '위험 경고',
  'dashboard.analysis.risk.risky': '위험하다',
  'dashboard.analysis.risk.neutral': '중립적 관점 (Neutral)',
  'dashboard.analysis.risk.safe': '보수적 관점(안전)',
  'dashboard.analysis.risk.conclusion': '결론',
  'dashboard.analysis.feature.fundamental': '기본적 분석',
  'dashboard.analysis.feature.technical': '기술적 분석',
  'dashboard.analysis.feature.news': '뉴스 분석',
  'dashboard.analysis.feature.sentiment': '감정 분석',
  'dashboard.analysis.feature.risk': '위험 평가',
  'dashboard.analysis.watchlist.title': '나의 주식 선택',
  'dashboard.analysis.watchlist.add': '추가하다',
  'dashboard.analysis.watchlist.addStock': '재고 추가',
  'dashboard.analysis.modal.addStock.title': '옵션 재고 추가',
  'dashboard.analysis.modal.addStock.confirm': '알았어',
  'dashboard.analysis.modal.addStock.cancel': '취소',
  'dashboard.analysis.modal.addStock.market': '시장 유형',
  'dashboard.analysis.modal.addStock.marketPlaceholder': '시장을 선택해주세요',
  'dashboard.analysis.modal.addStock.marketRequired': '시장 유형을 선택하세요.',
  'dashboard.analysis.modal.addStock.symbol': '주식 코드',
  'dashboard.analysis.modal.addStock.symbolPlaceholder': '예: AAPL, TSLA, GOOGL, 000001, BTC',
  'dashboard.analysis.modal.addStock.symbolRequired': '주식코드를 입력해주세요',
  'dashboard.analysis.modal.addStock.searchPlaceholder': '대상 코드 또는 이름 검색',
  'dashboard.analysis.modal.addStock.searchOrInputPlaceholder': '기본 코드를 검색하거나 입력하세요(예: AAPL, BTC/USDT, EUR/USD)',
  'dashboard.analysis.modal.addStock.searchOrInputHint': '데이터베이스에서 객체 검색 또는 코드 직접 입력 지원(시스템이 자동으로 이름을 얻음)',
  'dashboard.analysis.modal.addStock.search': '검색',
  'dashboard.analysis.modal.addStock.searchResults': '검색결과',
  'dashboard.analysis.modal.addStock.hotSymbols': '인기 있는 타겟',
  'dashboard.analysis.modal.addStock.noHotSymbols': '아직 인기 있는 타겟이 없습니다.',
  'dashboard.analysis.modal.addStock.selectedSymbol': '선택됨',
  'dashboard.analysis.modal.addStock.pleaseSelectSymbol': '먼저 대상을 선택하세요.',
  'dashboard.analysis.modal.addStock.pleaseSelectOrEnterSymbol': '대상을 선택하거나 대상 코드를 먼저 입력하세요',
  'dashboard.analysis.modal.addStock.pleaseEnterSymbol': '타겟코드를 입력해주세요',
  'dashboard.analysis.modal.addStock.pleaseSelectMarket': '먼저 시장 유형을 선택하세요.',
  'dashboard.analysis.modal.addStock.searchFailed': '검색에 실패했습니다. 나중에 다시 시도해 주세요.',
  'dashboard.analysis.modal.addStock.noSearchResults': '일치하는 대상이 없습니다.',
  'dashboard.analysis.modal.addStock.willAutoFetchName': '시스템에서 자동으로 이름을 가져옵니다.',
  'dashboard.analysis.modal.addStock.addDirectly': '직접 추가',
  'dashboard.analysis.modal.addStock.nameWillBeFetched': '추가되면 이름이 자동으로 선택됩니다.',
  'dashboard.analysis.market.AShare': 'A주',
  'dashboard.analysis.market.USStock': '미국 주식',
  'dashboard.analysis.market.HShare': '홍콩 주식',
  'dashboard.analysis.market.Crypto': '암호화폐',
  'dashboard.analysis.market.Forex': '외환',
  'dashboard.analysis.market.Futures': '선물',
  'dashboard.analysis.modal.history.title': '역사적 분석 기록',
  'dashboard.analysis.modal.history.viewResult': '결과 보기',
  'dashboard.analysis.modal.history.completeTime': '완료 시간',
  'dashboard.analysis.modal.history.error': '오류',
  'dashboard.analysis.status.pending': '보류 중',
  'dashboard.analysis.status.processing': '처리',
  'dashboard.analysis.status.completed': '완료됨',
  'dashboard.analysis.status.failed': '실패했다',
  'dashboard.analysis.message.selectSymbol': '대상을 먼저 선택해주세요',
  'dashboard.analysis.message.taskCreated': '분석 작업이 생성되어 백그라운드에서 실행 중입니다...',
  'dashboard.analysis.message.analysisComplete': '분석 완료',
  'dashboard.analysis.message.analysisCompleteCache': '분석 완료(캐시된 데이터 활용)',
  'dashboard.analysis.message.analysisFailed': '분석에 실패했습니다. 나중에 다시 시도해 주세요.',
  'dashboard.analysis.message.addStockSuccess': '성공적으로 추가되었습니다',
  'dashboard.analysis.message.addStockFailed': '추가 실패',
  'dashboard.analysis.message.removeStockSuccess': '성공적으로 제거되었습니다',
  'dashboard.analysis.message.removeStockFailed': '제거 실패',
  'dashboard.analysis.message.resumingAnalysis': '분석 작업을 재개하는 중...',
  'dashboard.analysis.message.deleteSuccess': '성공적으로 삭제되었습니다',
  'dashboard.analysis.message.deleteFailed': '삭제 실패',
  'dashboard.analysis.modal.history.delete': '삭제',
  'dashboard.analysis.modal.history.deleteConfirm': '이 분석 기록을 삭제하시겠습니까?',
  'dashboard.analysis.test': '상점 번호 {no}, Gongzhuan Road',
  'dashboard.analysis.introduce': '표시기 설명',
  'dashboard.analysis.total-sales': '총매출',
  'dashboard.analysis.day-sales': '일평균 매출엔엔',
  'dashboard.analysis.visits': '방문',
  'dashboard.analysis.visits-trend': '트래픽 동향',
  'dashboard.analysis.visits-ranking': '매장 방문 순위',
  'dashboard.analysis.day-visits': '일일 방문',
  'dashboard.analysis.week': '매주 전년 대비',
  'dashboard.analysis.day': '전년 대비',
  'dashboard.analysis.payments': '결제 횟수',
  'dashboard.analysis.conversion-rate': '전환율',
  'dashboard.analysis.operational-effect': '운영활동 효과',
  'dashboard.analysis.sales-trend': '판매 동향',
  'dashboard.analysis.sales-ranking': '매장판매순위',
  'dashboard.analysis.all-year': '일년 내내',
  'dashboard.analysis.all-month': '이번 달',
  'dashboard.analysis.all-week': '이번 주',
  'dashboard.analysis.all-day': '오늘',
  'dashboard.analysis.search-users': '검색 사용자 수',
  'dashboard.analysis.per-capita-search': '1인당 검색량',
  'dashboard.analysis.online-top-search': '온라인 인기 검색어',
  'dashboard.analysis.the-proportion-of-sales': '판매 카테고리 비율',
  'dashboard.analysis.dropdown-option-one': '첫 번째 작전',
  'dashboard.analysis.dropdown-option-two': '작전 2',
  'dashboard.analysis.channel.all': '모든 채널',
  'dashboard.analysis.channel.online': '온라인',
  'dashboard.analysis.channel.stores': '저장',
  'dashboard.analysis.sales': '판매',
  'dashboard.analysis.traffic': '승객 흐름',
  'dashboard.analysis.table.rank': '순위',
  'dashboard.analysis.table.search-keyword': '키워드 검색',
  'dashboard.analysis.table.users': '사용자 수',
  'dashboard.analysis.table.weekly-range': '주간 증가',
  'dashboard.indicator.selectSymbol': '기본 코드 선택 또는 입력',
  'dashboard.indicator.emptyWatchlistHint': '현재 자체 선택한 주식이 없습니다. 먼저 추가해 주세요.',
  'dashboard.indicator.hint.selectSymbol': '분석을 시작하려면 대상을 선택하세요.',
  'dashboard.indicator.hint.selectSymbolDesc': 'K-라인 차트 및 기술 지표를 보려면 위 검색창에서 주식 코드를 선택하거나 입력하세요.',
  'dashboard.indicator.retry': '다시 시도하세요',
  'dashboard.indicator.panel.title': '기술 지표',
  'dashboard.indicator.panel.realtimeOn': '실시간 업데이트 끄기',
  'dashboard.indicator.panel.realtimeOff': '실시간 업데이트 활성화',
  'dashboard.indicator.panel.themeLight': '어두운 테마로 전환',
  'dashboard.indicator.panel.themeDark': '밝은 테마로 전환',
  'dashboard.indicator.section.enabled': '활성화됨',
  'dashboard.indicator.section.added': '내가 추가한 지표',
  'dashboard.indicator.section.custom': '직접 만든 지표',
  'dashboard.indicator.section.bought': '내가 구매한 지표',
  'dashboard.indicator.section.myCreated': '내가 만든 지표',
  'dashboard.indicator.empty': '아직 표시기가 없습니다. 먼저 표시기를 추가하거나 생성하세요.',
  'dashboard.indicator.buy': '매수 지표',
  'dashboard.indicator.action.start': '시작',
  'dashboard.indicator.action.stop': '닫기',
  'dashboard.indicator.action.edit': '편집',
  'dashboard.indicator.action.delete': '삭제',
  'dashboard.indicator.action.backtest': '백테스트',
  'dashboard.indicator.status.normal': '정상',
  'dashboard.indicator.status.normalPermanent': '일반(영구적으로 유효)',
  'dashboard.indicator.status.expired': '만료됨',
  'dashboard.indicator.expiry.permanent': '영구적으로 유효함',
  'dashboard.indicator.expiry.noExpiry': '만료 시간 없음',
  'dashboard.indicator.expiry.expired': '만료됨: {date}',
  'dashboard.indicator.expiry.expiresOn': '만료 시간: {date}',
  'dashboard.indicator.delete.confirmTitle': '삭제 확인',
  'dashboard.indicator.delete.confirmContent': '"{name}" 표시기를 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다.',
  'dashboard.indicator.delete.confirmOk': '삭제',
  'dashboard.indicator.delete.confirmCancel': '취소',
  'dashboard.indicator.delete.success': '성공적으로 삭제되었습니다',
  'dashboard.indicator.delete.failed': '삭제 실패',
  'dashboard.indicator.save.success': '성공적으로 저장되었습니다',
  'dashboard.indicator.save.failed': '저장 실패',
  'dashboard.indicator.error.loadWatchlistFailed': '옵션 재고를 로드하지 못했습니다.',
  'dashboard.indicator.error.chartNotReady': '차트 구성 요소가 초기화되지 않았습니다. 먼저 대상을 선택하고 차트가 로드될 때까지 기다려 주세요.',
  'dashboard.indicator.error.chartMethodNotReady': '차트 구성 요소 메서드가 준비되지 않았습니다. 나중에 다시 시도해 주세요.',
  'dashboard.indicator.error.chartExecuteNotReady': '차트 구성요소 실행 방법이 준비되지 않았습니다. 나중에 다시 시도해 주세요.',
  'dashboard.indicator.error.parseFailed': 'Python 코드를 구문 분석할 수 없습니다.',
  'dashboard.indicator.error.parseFailedCheck': 'Python 코드를 구문 분석할 수 없습니다. 코드 형식을 확인하세요.',
  'dashboard.indicator.error.addIndicatorFailed': '표시기를 추가하지 못했습니다.',
  'dashboard.indicator.error.runIndicatorFailed': '실행 표시기 실패',
  'dashboard.indicator.error.pleaseLogin': '먼저 로그인해주세요',
  'dashboard.indicator.error.loadDataFailed': '데이터 로딩 실패',
  'dashboard.indicator.error.loadDataFailedDesc': '네트워크 연결을 확인해주세요',
  'dashboard.indicator.error.pythonEngineFailed': 'Python 엔진을 로드하지 못했고 표시기 기능을 사용하지 못할 수 있습니다.',
  'dashboard.indicator.error.chartInitFailed': '차트 초기화 실패',
  'dashboard.indicator.warning.enterCode': '표시기 코드를 먼저 입력하세요.',
  'dashboard.indicator.warning.pyodideLoadFailed': 'Python 엔진을 로드하지 못했습니다.',
  'dashboard.indicator.warning.pyodideLoadFailedDesc': '현재 지역 또는 네트워크 환경에서는 이 기능을 사용할 수 없습니다.',
  'dashboard.indicator.warning.chartNotInitialized': '차트가 초기화되지 않아 선 그리기 도구를 사용할 수 없습니다.',
  'dashboard.indicator.success.runIndicator': '표시기가 성공적으로 실행됩니다.',
  'dashboard.indicator.success.clearDrawings': '모든 선화 삭제됨',
  'dashboard.indicator.sma': 'SMA(이동 평균 조합)',
  'dashboard.indicator.ema': 'EMA(지수 이동 평균 조합)',
  'dashboard.indicator.rsi': 'RSI(상대강도)',
  'dashboard.indicator.macd': 'MACD',
  'dashboard.indicator.bb': '볼린저 밴드',
  'dashboard.indicator.atr': 'ATR(평균 실제 범위)',
  'dashboard.indicator.cci': 'CCI(상품 채널 지수)',
  'dashboard.indicator.williams': 'Williams %R(윌리엄스 지표)',
  'dashboard.indicator.mfi': 'MFI(자금 흐름 지수)',
  'dashboard.indicator.adx': 'ADX(평균 추세 지수)',
  'dashboard.indicator.obv': 'OBV(에너지파)',
  'dashboard.indicator.adosc': 'ADOSC(누적/디스패치 오실레이터)',
  'dashboard.indicator.ad': 'AD(집적/분배선)',
  'dashboard.indicator.kdj': 'KDJ(확률적 지표)',
  'dashboard.indicator.signal.buy': '구매',
  'dashboard.indicator.signal.sell': '판매',
  'dashboard.indicator.signal.supertrendBuy': '슈퍼트렌드 구매',
  'dashboard.indicator.signal.supertrendSell': '슈퍼트렌드 매도',
  'dashboard.indicator.chart.kline': 'K라인',
  'dashboard.indicator.chart.volume': '볼륨',
  'dashboard.indicator.chart.uptrend': '상승 추세',
  'dashboard.indicator.chart.downtrend': '하락 추세',
  'dashboard.indicator.tooltip.time': '시간',
  'dashboard.indicator.tooltip.open': '열다',
  'dashboard.indicator.tooltip.close': '받다',
  'dashboard.indicator.tooltip.high': '높다',
  'dashboard.indicator.tooltip.low': '낮음',
  'dashboard.indicator.tooltip.volume': '볼륨',
  'dashboard.indicator.drawing.line': '선분',
  'dashboard.indicator.drawing.horizontalLine': '수평선',
  'dashboard.indicator.drawing.verticalLine': '수직선',
  'dashboard.indicator.drawing.ray': '레이',
  'dashboard.indicator.drawing.straightLine': '직선',
  'dashboard.indicator.drawing.parallelLine': '평행선',
  'dashboard.indicator.drawing.priceLine': '가격선',
  'dashboard.indicator.drawing.priceChannel': '가격 채널',
  'dashboard.indicator.drawing.fibonacciLine': '피보나치 라인',
  'dashboard.indicator.drawing.clearAll': '모든 선화 지우기',
  'dashboard.indicator.market.AShare': 'A주',
  'dashboard.indicator.market.USStock': '미국 주식',
  'dashboard.indicator.market.HShare': '홍콩 주식',
  'dashboard.indicator.market.Crypto': '암호화폐',
  'dashboard.indicator.market.Forex': '외환',
  'dashboard.indicator.market.Futures': '선물',
  'dashboard.indicator.create': '지표 생성',
  'dashboard.indicator.editor.title': '지표 생성/편집',
  'dashboard.indicator.editor.name': '지표 이름',
  'dashboard.indicator.editor.nameRequired': '지표 이름을 입력하세요.',
  'dashboard.indicator.editor.namePlaceholder': '지표 이름을 입력하세요.',
  'dashboard.indicator.editor.description': '표시기 설명',
  'dashboard.indicator.editor.descriptionPlaceholder': '표시기에 대한 설명을 입력하세요(선택 사항).',
  'dashboard.indicator.editor.code': '파이썬 코드',
  'dashboard.indicator.editor.codeRequired': '표시 코드를 입력하세요',
  'dashboard.indicator.editor.codePlaceholder': 'Python 코드를 입력하세요.',
  'dashboard.indicator.editor.run': '달리다',
  'dashboard.indicator.editor.runHint': '실행 버튼을 클릭하면 K-라인 차트의 지표 효과를 미리 볼 수 있습니다.',
  'dashboard.indicator.editor.guide': '개발 가이드',
  'dashboard.indicator.editor.guideTitle': 'Python 지표 개발 가이드',
  'dashboard.indicator.editor.save': '저장',
  'dashboard.indicator.editor.cancel': '취소',
  'dashboard.indicator.editor.unnamed': '이름 없는 표시기',
  'dashboard.indicator.editor.publishToCommunity': '커뮤니티에 게시',
  'dashboard.indicator.editor.publishToCommunityHint': '게시되면 다른 사용자가 커뮤니티에서 귀하의 지표를 보고 사용할 수 있습니다.',
  'dashboard.indicator.editor.indicatorType': '표시기 유형',
  'dashboard.indicator.editor.indicatorTypeRequired': '지표 유형을 선택하세요.',
  'dashboard.indicator.editor.indicatorTypePlaceholder': '지표 유형을 선택하세요.',
  'dashboard.indicator.editor.previewImage': '미리보기',
  'dashboard.indicator.editor.uploadImage': '사진 업로드',
  'dashboard.indicator.editor.previewImageHint': '권장 크기: 800x400, 2MB 이하',
  'dashboard.indicator.editor.pricing': '판매가(QDT)',
  'dashboard.indicator.editor.pricingType.free': '무료',
  'dashboard.indicator.editor.pricingType.permanent': '영구',
  'dashboard.indicator.editor.pricingType.monthly': '월별 결제',
  'dashboard.indicator.editor.price': '가격',
  'dashboard.indicator.editor.priceRequired': '가격을 입력해주세요',
  'dashboard.indicator.editor.pricePlaceholder': '가격을 입력해주세요',
  'dashboard.indicator.editor.pricingHint': '무료 지표의 가격은 0이지만 플랫폼은 지표 사용량과 칭찬률에 따라 보상(QDT)을 제공합니다.',
  'dashboard.indicator.editor.aiGenerate': '지능형 세대',
  'dashboard.indicator.editor.aiPromptPlaceholder': '당신의 아이디어를 알려주시면 Python 표시기 코드를 생성해 드리겠습니다.',
  'dashboard.indicator.editor.aiGenerateBtn': 'AI 생성 코드',
  'dashboard.indicator.editor.aiPromptRequired': '당신의 생각을 입력해주세요',
  'dashboard.indicator.editor.aiGenerateSuccess': '코드 생성 성공',
  'dashboard.indicator.editor.aiGenerateError': '코드 생성에 실패했습니다. 나중에 다시 시도해 주세요.',
  'dashboard.indicator.editor.verifyCode': '코드 검증',
  'dashboard.indicator.editor.verifyCodeSuccess': '검증 통과',
  'dashboard.indicator.editor.verifyCodeFailed': '검증 실패',
  'dashboard.indicator.editor.verifyCodeEmpty': '코드는 비워둘 수 없습니다',
  'dashboard.indicator.backtest.title': '지표 백테스트',
  'dashboard.indicator.backtest.config': '백테스트 매개변수',
  'dashboard.indicator.backtest.startDate': '시작일',
  'dashboard.indicator.backtest.endDate': '종료일',
  'dashboard.indicator.backtest.selectStartDate': '시작일 선택',
  'dashboard.indicator.backtest.selectEndDate': '종료일 선택',
  'dashboard.indicator.backtest.startDateRequired': '시작일을 선택하세요.',
  'dashboard.indicator.backtest.endDateRequired': '종료일을 선택하세요.',
  'dashboard.indicator.backtest.initialCapital': '초기자본금',
  'dashboard.indicator.backtest.initialCapitalRequired': '초기자금을 입력해주세요',
  'dashboard.indicator.backtest.commission': '수수료',
  'dashboard.indicator.backtest.leverage': '레버리지 비율',
  'dashboard.indicator.backtest.tradeDirection': '거래 방향',
  'dashboard.indicator.backtest.longOnly': '오래 가세요',
  'dashboard.indicator.backtest.shortOnly': '짧은',
  'dashboard.indicator.backtest.both': '양방향',
  'dashboard.indicator.backtest.run': '백테스팅 시작',
  'dashboard.indicator.backtest.rerun': '다시 백테스트',
  'dashboard.indicator.backtest.close': '닫기',
  'dashboard.indicator.backtest.running': '지표 백테스트 진행 중...',
  'dashboard.indicator.backtest.results': '백테스트 결과',
  'dashboard.indicator.backtest.totalReturn': '총 수익',
  'dashboard.indicator.backtest.annualReturn': '연간 소득',
  'dashboard.indicator.backtest.maxDrawdown': '최대 감소',
  'dashboard.indicator.backtest.sharpeRatio': '샤프비율',
  'dashboard.indicator.backtest.winRate': '승률',
  'dashboard.indicator.backtest.profitFactor': '손익 비율',
  'dashboard.indicator.backtest.totalTrades': '거래수',
  'dashboard.indicator.totalReturn': '총 수익',
  'dashboard.indicator.annualReturn': '연간 수익률',
  'dashboard.indicator.maxDrawdown': '최대 감소',
  'dashboard.indicator.sharpeRatio': '샤프비율',
  'dashboard.indicator.winRate': '승률',
  'dashboard.indicator.profitFactor': '손익 비율',
  'dashboard.indicator.totalTrades': '총 거래 수',
  'dashboard.indicator.backtest.totalCommission': '총 취급 수수료',
  'dashboard.indicator.backtest.equityCurve': '수익률 곡선',
  'dashboard.indicator.backtest.strategy': '지표소득',
  'dashboard.indicator.backtest.benchmark': '벤치마크 수익률',
  'dashboard.indicator.backtest.tradeHistory': '거래 내역',
  'dashboard.indicator.backtest.tradeTime': '시간',
  'dashboard.indicator.backtest.tradeType': '유형',
  'dashboard.indicator.backtest.buy': '사다',
  'dashboard.indicator.backtest.sell': '팔다',
  'dashboard.indicator.backtest.liquidation': '청산',
  'dashboard.indicator.backtest.openLong': '길게 열다',
  'dashboard.indicator.backtest.closeLong': '핀듀오',
  'dashboard.indicator.backtest.closeLongStop': '매수에 가까움(손절매)',
  'dashboard.indicator.backtest.closeLongProfit': '더 닫기 (이익 실현)',
  'dashboard.indicator.backtest.addLong': '롱 포지션 추가',
  'dashboard.indicator.backtest.openShort': '오픈 쇼트',
  'dashboard.indicator.backtest.closeShort': '비어 있음',
  'dashboard.indicator.backtest.closeShortStop': '청산(손절매)',
  'dashboard.indicator.backtest.closeShortProfit': '마감(이익실현)',
  'dashboard.indicator.backtest.addShort': '숏 포지션 추가',
  'dashboard.indicator.backtest.price': '가격',
  'dashboard.indicator.backtest.amount': '수량',
  'dashboard.indicator.backtest.balance': '계좌잔고',
  'dashboard.indicator.backtest.profit': '이익과 손실',
  'dashboard.indicator.backtest.success': '백테스트 완료',
  'dashboard.indicator.backtest.failed': '백테스트에 실패했습니다. 나중에 다시 시도해 주세요.',
  'dashboard.indicator.backtest.noIndicatorCode': '이 지표에 대한 백테스트 가능한 코드가 없습니다.',
  'dashboard.indicator.backtest.noSymbol': '거래대상을 먼저 선택해주세요',
  'dashboard.indicator.backtest.dateRangeExceeded': '백테스트 시간 범위가 한도를 초과합니다. {timeframe} 기간은 최대 {maxRange}까지 백테스트할 수 있습니다.',
  'dashboard.indicator.backtest.dateRangeExceededDays': 'Backtest range exceeds limit: {timeframe} max {maxRange} ({maxDays} days)',
  'dashboard.indicator.backtest.metaLine': 'Symbol: {symbol} | Market: {market} | Timeframe: {timeframe}',
  'dashboard.indicator.backtest.savedRunId': 'Backtest saved. Run ID: {id}',
  'dashboard.indicator.backtest.prev': 'Previous',
  'dashboard.indicator.backtest.next': 'Next',
  'dashboard.indicator.backtest.hint.entryPctMax': 'Max entry: {maxPct}% (reserve budget for future scale-ins)',
  'dashboard.indicator.backtest.steps.strategy.title': 'Strategy',
  'dashboard.indicator.backtest.steps.strategy.desc': 'Position sizing & risk controls',
  'dashboard.indicator.backtest.steps.trading.title': 'Trading settings',
  'dashboard.indicator.backtest.steps.trading.desc': 'Time range, capital, fees, leverage',
  'dashboard.indicator.backtest.steps.results.title': 'Results',
  'dashboard.indicator.backtest.steps.results.desc': 'Backtest output',
  'dashboard.indicator.backtest.panel.risk': 'Risk management (SL/TP/Trailing)',
  'dashboard.indicator.backtest.panel.scale': 'Scale in / DCA (trend & mean-reversion)',
  'dashboard.indicator.backtest.panel.reduce': 'Reduce position (trend & adverse)',
  'dashboard.indicator.backtest.panel.position': 'Position sizing',
  'dashboard.indicator.backtest.field.stopLossPct': 'Stop Loss (%)',
  'dashboard.indicator.backtest.field.takeProfitPct': 'Take Profit (%)',
  'dashboard.indicator.backtest.field.trailingEnabled': 'Trailing stop / take profit',
  'dashboard.indicator.backtest.field.trailingStopPct': 'Trailing drawdown (%)',
  'dashboard.indicator.backtest.field.trailingActivationPct': 'Trailing activation (%)',
  'dashboard.indicator.backtest.field.slippage': 'Slippage (%)',
  'dashboard.indicator.backtest.field.trendAddEnabled': 'Trend-following scale-in',
  'dashboard.indicator.backtest.field.dcaAddEnabled': 'Mean-reversion scale-in',
  'dashboard.indicator.backtest.field.trendAddStepPct': 'Scale-in trigger (%)',
  'dashboard.indicator.backtest.field.dcaAddStepPct': 'Scale-in trigger (%)',
  'dashboard.indicator.backtest.field.trendAddSizePct': 'Scale-in size (% of capital)',
  'dashboard.indicator.backtest.field.dcaAddSizePct': 'Scale-in size (% of capital)',
  'dashboard.indicator.backtest.field.trendAddMaxTimes': 'Max scale-in times',
  'dashboard.indicator.backtest.field.dcaAddMaxTimes': 'Max scale-in times',
  'dashboard.indicator.backtest.field.trendReduceEnabled': 'Trend reduce',
  'dashboard.indicator.backtest.field.adverseReduceEnabled': 'Adverse reduce',
  'dashboard.indicator.backtest.field.trendReduceStepPct': 'Trend trigger (%)',
  'dashboard.indicator.backtest.field.adverseReduceStepPct': 'Adverse trigger (%)',
  'dashboard.indicator.backtest.field.trendReduceSizePct': 'Reduce size (% of position)',
  'dashboard.indicator.backtest.field.adverseReduceSizePct': 'Adverse reduce size (% of position)',
  'dashboard.indicator.backtest.field.trendReduceMaxTimes': 'Max trend reduce times',
  'dashboard.indicator.backtest.field.adverseReduceMaxTimes': 'Max adverse reduce times',
  'dashboard.indicator.backtest.field.entryPct': 'Entry size (% of capital)',
  'dashboard.indicator.backtest.field.minOrderPct': 'Min order size (% of capital) (optional)',
  'dashboard.indicator.backtest.closeLongTrailing': 'Close Long (Trailing)',
  'dashboard.indicator.backtest.reduceLong': 'Reduce Long',
  'dashboard.indicator.backtest.closeShortTrailing': 'Close Short (Trailing)',
  'dashboard.indicator.backtest.reduceShort': 'Reduce Short',
  'dashboard.docs.title': '문서 센터',
  'dashboard.docs.search.placeholder': '문서 검색...',
  'dashboard.docs.category.all': '모두',
  'dashboard.docs.category.guide': '개발 가이드',
  'dashboard.docs.category.api': 'API 문서',
  'dashboard.docs.category.tutorial': '튜토리얼',
  'dashboard.docs.category.faq': 'FAQ',
  'dashboard.docs.featured.title': '권장 문서',
  'dashboard.docs.featured.tag': '추천',
  'dashboard.docs.list.views': '찾아보기',
  'dashboard.docs.list.author': '작성자',
  'dashboard.docs.list.empty': '아직 문서가 없습니다.',
  'dashboard.docs.list.backToAll': '모든 문서로 돌아가기',
  'dashboard.docs.list.total': '총 {count}개의 문서',
  'dashboard.docs.detail.back': '문서 목록으로 돌아가기',
  'dashboard.docs.detail.updatedAt': '업데이트 날짜',
  'dashboard.docs.detail.related': '관련 문서',
  'dashboard.docs.detail.notFound': '문서가 존재하지 않습니다',
  'dashboard.docs.detail.error': '문서가 존재하지 않거나 삭제되었습니다.',
  'dashboard.docs.search.result': '검색결과',
  'dashboard.docs.search.keyword': '키워드',
  'community.filter.indicatorType': '표시기 유형',
  'community.filter.all': '모두',
  'community.filter.other': '기타 옵션',
  'community.filter.pricing': '가격 유형',
  'community.filter.allPricing': '모든 가격',
  'community.filter.sortBy': '정렬 기준',
  'community.filter.search': '검색',
  'community.filter.searchPlaceholder': '측정항목 이름 검색',
  'community.indicatorType.trend': '트렌드 유형',
  'community.indicatorType.momentum': '모멘텀형',
  'community.indicatorType.volatility': '변동성',
  'community.indicatorType.volume': '볼륨',
  'community.indicatorType.custom': '사용자 정의',
  'community.pricing.free': '무료',
  'community.pricing.paid': '지불',
  'community.sort.downloads': '다운로드',
  'community.sort.rating': '등급',
  'community.sort.newest': '최신 릴리스',
  'community.pagination.total': '총 {total} 지표',
  'community.noDescription': '아직 설명이 없습니다',
  'community.detail.type': '유형',
  'community.detail.pricing': '가격',
  'community.detail.rating': '등급',
  'community.detail.downloads': '다운로드',
  'community.detail.author': '작성자',
  'community.detail.description': '소개',
  'community.detail.detailContent': '자세한 설명',
  'community.detail.backtestStats': '백테스트 통계',
  'community.action.purchase': '매수 지표',
  'community.action.addToMyIndicators': '내 지표에 추가',
  'community.action.favorite': '컬렉션',
  'community.action.unfavorite': '즐겨찾기 취소',
  'community.action.buyNow': '지금 구매',
  'community.action.renew': '갱신',
  'community.purchase.price': '가격',
  'community.purchase.permanent': '영구',
  'community.purchase.monthly': '달',
  'community.purchase.confirmBuy': '이 지표({price} QDT) 구매를 확인하시겠습니까?',
  'community.purchase.confirmRenew': '이 지표({price} QDT/월)를 갱신하시겠습니까?',
  'community.purchase.confirmFree': '이 무료 표시기를 추가하시겠습니까?',
  'community.purchase.confirmTitle': '조치 확인',
  'community.purchase.owned': '이 표시기를 구입하셨습니다(영구적으로 유효함).',
  'community.purchase.ownIndicator': '귀하가 게시한 측정항목입니다.',
  'community.purchase.expired': '구독이 만료되었습니다',
  'community.purchase.expiresOn': '만료 시간: {date}',
  'community.tabs.detail': '지표 세부정보',
  'community.tabs.backtest': '백테스트 데이터',
  'community.tabs.ratings': '사용자 리뷰',
  'community.rating.myRating': '내 평가',
  'community.rating.stars': '별 {count}개',
  'community.rating.commentPlaceholder': '당신의 경험을 공유하세요...',
  'community.rating.submit': '평가 제출',
  'community.rating.modify': '수정',
  'community.rating.saveModify': '변경사항 저장',
  'community.rating.cancel': '취소',
  'community.rating.selectRating': '등급을 선택해 주세요',
  'community.rating.success': '평가 성공',
  'community.rating.modifySuccess': '리뷰가 수정되었습니다.',
  'community.rating.failed': '평가 실패',
  'community.rating.noRatings': '아직 댓글이 없습니다',
  'community.backtest.note': '위 데이터는 과거 백테스트 결과이며 참고용일 뿐 미래 수익을 나타내지는 않습니다.',
  'community.backtest.noData': '아직 백테스트 데이터가 없습니다.',
  'community.backtest.uploadHint': '작성자는 아직 백테스트 데이터를 업로드하지 않았습니다.',
  'community.message.loadFailed': '표시기 목록을 로드하지 못했습니다.',
  'community.message.purchaseProcessing': '구매 요청 처리 중...',
  'community.message.downloadSuccess': '내 측정항목 목록에 측정항목이 추가되었습니다.',
  'community.message.favoriteSuccess': '수집 성공',
  'community.message.unfavoriteSuccess': '수집을 취소했습니다.',
  'community.message.operationSuccess': '작업 성공',
  'community.message.operationFailed': '작업 실패',
  'community.banner.readOnly': '읽기 전용',
  'community.banner.loginHint': '로그인 또는 등록이 필요한 경우 버튼을 클릭하여 독립 페이지로 이동하여 CSRF 문제를 방지하세요',
  'community.banner.jumpButton': '로그인/등록으로 이동',
  'dashboard.totalEquity': '총자본',
  'dashboard.totalPnL': '총손익',
  'dashboard.aiStrategies': 'AI 전략',
  'dashboard.indicatorStrategies': '지표 전략',
  'dashboard.running': '달리기',
  'dashboard.pnlHistory': '역사적 손익',
  'dashboard.strategyPerformance': '전략 손익비율',
  'dashboard.recentTrades': '최근 거래',
  'dashboard.currentPositions': '현재 위치',
  'dashboard.table.time': '시간',
  'dashboard.table.strategy': '정책 이름',
  'dashboard.table.symbol': '대상',
  'dashboard.table.type': '유형',
  'dashboard.table.side': '방향',
  'dashboard.table.size': '미결제약정',
  'dashboard.table.entryPrice': '평균 개장가',
  'dashboard.table.price': '가격',
  'dashboard.table.amount': '수량',
  'dashboard.table.profit': '이익과 손실',
  'dashboard.pendingOrders': '주문 실행 기록',
  'dashboard.totalOrders': '총 {total}건',
  'dashboard.viewError': '오류 보기',
  'dashboard.filled': '체결됨',
  'dashboard.orderTable.time': '생성 시간',
  'dashboard.orderTable.strategy': '전략',
  'dashboard.orderTable.symbol': '거래 쌍',
  'dashboard.orderTable.signalType': '신호 유형',
  'dashboard.orderTable.amount': '수량',
  'dashboard.orderTable.price': '체결 가격',
  'dashboard.orderTable.status': '상태',
  'dashboard.orderTable.executedAt': '실행 시간',
  'dashboard.signalType.openLong': '롱 오픈',
  'dashboard.signalType.openShort': '숏 오픈',
  'dashboard.signalType.closeLong': '롱 청산',
  'dashboard.signalType.closeShort': '숏 청산',
  'dashboard.signalType.addLong': '롱 추가',
  'dashboard.signalType.addShort': '숏 추가',
  'dashboard.status.pending': '대기 중',
  'dashboard.status.processing': '처리 중',
  'dashboard.status.completed': '완료',
  'dashboard.status.failed': '실패',
  'dashboard.status.cancelled': '취소됨',
  'dashboard.table.pnl': '미실현 손익',
  'form.basic-form.basic.title': '기본 형태',
  'form.basic-form.basic.description': '양식 페이지는 사용자로부터 정보를 수집하거나 확인하는 데 사용됩니다. 기본 양식은 데이터 항목이 거의 없는 양식 시나리오에서 일반적으로 사용됩니다.',
  'form.basic-form.title.label': '제목',
  'form.basic-form.title.placeholder': '목표에 이름을 지어주세요',
  'form.basic-form.title.required': '제목을 입력하세요',
  'form.basic-form.date.label': '시작일 및 종료일',
  'form.basic-form.placeholder.start': '시작일',
  'form.basic-form.placeholder.end': '종료일',
  'form.basic-form.date.required': '시작일과 종료일을 선택하세요.',
  'form.basic-form.goal.label': '목표 설명',
  'form.basic-form.goal.placeholder': '단계별 업무 목표를 입력하세요.',
  'form.basic-form.goal.required': '목표 설명을 입력하세요.',
  'form.basic-form.standard.label': '측정하다',
  'form.basic-form.standard.placeholder': '측정항목을 입력하세요.',
  'form.basic-form.standard.required': '측정항목을 입력하세요.',
  'form.basic-form.client.label': '고객',
  'form.basic-form.client.required': '귀하가 서비스를 제공하는 고객에 대해 설명해주세요.',
  'form.basic-form.label.tooltip': '대상 서비스 대상자',
  'form.basic-form.client.placeholder': '귀하가 서비스를 제공하는 고객, 내부 고객을 직접 @이름/직위 번호로 설명하십시오.',
  'form.basic-form.invites.label': '리뷰어 초대',
  'form.basic-form.invites.placeholder': '@이름/사원번호로 직접 보내주세요. 최대 5명까지 초대 가능합니다.',
  'form.basic-form.weight.label': '무게',
  'form.basic-form.weight.placeholder': '입력해주세요',
  'form.basic-form.public.label': '대중을 대상으로',
  'form.basic-form.label.help': '고객과 검토자는 기본적으로 공유됩니다.',
  'form.basic-form.radio.public': '대중',
  'form.basic-form.radio.partially-public': '부분적으로 공개',
  'form.basic-form.radio.private': '비공개',
  'form.basic-form.publicUsers.placeholder': '열려 있다',
  'form.basic-form.option.A': '동료 1',
  'form.basic-form.option.B': '동료 2',
  'form.basic-form.option.C': '동료 3',
  'form.basic-form.email.required': '이메일 주소를 입력해주세요!',
  'form.basic-form.email.wrong-format': '이메일 주소 형식이 잘못되었습니다!',
  'form.basic-form.userName.required': '사용자 이름을 입력해주세요!',
  'form.basic-form.password.required': '비밀번호를 입력해주세요!',
  'form.basic-form.password.twice': '두 번 입력한 비밀번호가 일치하지 않습니다!',
  'form.basic-form.strength.msg': '6자 이상 입력해주세요. 쉽게 추측할 수 있는 비밀번호는 사용하지 마세요.',
  'form.basic-form.strength.strong': '힘: 강한',
  'form.basic-form.strength.medium': '강도: 중간',
  'form.basic-form.strength.short': '강도: 너무 짧음',
  'form.basic-form.confirm-password.required': '비밀번호를 확인해 주세요!',
  'form.basic-form.phone-number.required': '휴대폰번호를 입력해주세요!',
  'form.basic-form.phone-number.wrong-format': '휴대폰 번호 형식이 잘못되었습니다!',
  'form.basic-form.verification-code.required': '인증번호를 입력해주세요!',
  'form.basic-form.form.get-captcha': '인증 코드 받기',
  'form.basic-form.captcha.second': '초',
  'form.basic-form.form.optional': '(선택사항)',
  'form.basic-form.form.submit': '제출',
  'form.basic-form.form.save': '저장',
  'form.basic-form.email.placeholder': '이메일',
  'form.basic-form.password.placeholder': '비밀번호는 6자 이상, 대소문자 구분',
  'form.basic-form.confirm-password.placeholder': '비밀번호 확인',
  'form.basic-form.phone-number.placeholder': '휴대전화번호',
  'form.basic-form.verification-code.placeholder': '인증코드',
  'result.success.title': '제출 성공',
  'result.success.description': '제출 결과 페이지는 일련의 작업 작업의 처리 결과를 피드백하는 데 사용됩니다. 간단한 작업인 경우 메시지 전역 프롬프트 피드백을 사용하세요. 이 텍스트 영역에는 간단한 보충 지침이 표시될 수 있습니다. "문서"를 표시해야 하는 경우 아래 회색 영역에 더 복잡한 내용이 표시될 수 있습니다.',
  'result.success.operate-title': '프로젝트 이름',
  'result.success.operate-id': '프로젝트 ID',
  'result.success.principal': '담당자',
  'result.success.operate-time': '유효시간',
  'result.success.step1-title': '프로젝트 생성',
  'result.success.step1-operator': '쿠 릴리',
  'result.success.step2-title': '학과 사전 검토',
  'result.success.step2-operator': '저우 마오마오',
  'result.success.step2-extra': '긴급',
  'result.success.step3-title': '재무 검토',
  'result.success.step4-title': '완료',
  'result.success.btn-return': '목록으로 돌아가기',
  'result.success.btn-project': '항목 보기',
  'result.success.btn-print': '인쇄',
  'result.fail.error.title': '제출 실패',
  'result.fail.error.description': '다시 제출하기 전에 다음 정보를 확인하고 수정하시기 바랍니다.',
  'result.fail.error.hint-title': '제출한 콘텐츠에 다음 오류가 포함되어 있습니다.',
  'result.fail.error.hint-text1': '귀하의 계정이 동결되었습니다',
  'result.fail.error.hint-btn1': '즉시 해동',
  'result.fail.error.hint-text2': '귀하의 계정은 아직 신청할 수 없습니다',
  'result.fail.error.hint-btn2': '지금 업그레이드',
  'result.fail.error.btn-text': '수정으로 돌아가기',
  'account.settings.menuMap.custom': '개인화',
  'account.settings.menuMap.binding': '계정 바인딩',
  'account.settings.basic.avatar': '아바타',
  'account.settings.basic.change-avatar': '아바타 변경',
  'account.settings.basic.email': '이메일',
  'account.settings.basic.email-message': '이메일을 입력해주세요!',
  'account.settings.basic.nickname': '닉네임',
  'account.settings.basic.nickname-message': '닉네임을 입력해주세요!',
  'account.settings.basic.profile': '프로필',
  'account.settings.basic.profile-message': '개인 프로필을 입력해주세요!',
  'account.settings.basic.profile-placeholder': '프로필',
  'account.settings.basic.country': '국가/지역',
  'account.settings.basic.country-message': '국가나 지역을 입력해주세요!',
  'account.settings.basic.geographic': '지방 및 도시',
  'account.settings.basic.geographic-message': '귀하의 시/도를 입력해주세요!',
  'account.settings.basic.address': '거리 주소',
  'account.settings.basic.address-message': '주소를 입력해주세요!',
  'account.settings.basic.phone': '연락처',
  'account.settings.basic.phone-message': '연락처를 입력해주세요!',
  'account.settings.basic.update': '기본정보 업데이트',
  'account.settings.basic.update.success': '기본 정보를 성공적으로 업데이트했습니다.',
  'account.settings.security.strong': '강한',
  'account.settings.security.medium': '안으로',
  'account.settings.security.weak': '약한',
  'account.settings.security.password': '계정 비밀번호',
  'account.settings.security.password-description': '현재 비밀번호 강도:',
  'account.settings.security.phone': '보안 휴대폰',
  'account.settings.security.phone-description': '이미 바인딩된 휴대폰:',
  'account.settings.security.question': '보안 문제',
  'account.settings.security.question-description': '보안 질문이 설정되지 않아 계정 보안을 효과적으로 보호할 수 있습니다.',
  'account.settings.security.email': '이메일 바인딩',
  'account.settings.security.email-description': '이미 바인딩된 이메일 주소:',
  'account.settings.security.mfa': 'MFA 장치',
  'account.settings.security.mfa-description': 'MFA 디바이스가 바인딩되지 않았습니다. 바인딩 후 다시 확인할 수 있습니다.',
  'account.settings.security.modify': '수정',
  'account.settings.security.set': '설정',
  'account.settings.security.bind': '바인딩',
  'account.settings.binding.taobao': '타오바오 바인딩',
  'account.settings.binding.taobao-description': '현재 타오바오 계정이 연결되어 있지 않습니다',
  'account.settings.binding.alipay': '알리페이 바인딩',
  'account.settings.binding.alipay-description': 'Alipay 계정이 현재 연결되어 있지 않습니다.',
  'account.settings.binding.dingding': '바인딩 딩톡',
  'account.settings.binding.dingding-description': '현재 바인딩된 DingTalk 계정이 없습니다.',
  'account.settings.binding.bind': '바인딩',
  'account.settings.notification.password': '계정 비밀번호',
  'account.settings.notification.password-description': '다른 사용자의 메시지는 사이트 메시지 형식으로 통보됩니다.',
  'account.settings.notification.messages': '시스템 메시지',
  'account.settings.notification.messages-description': '시스템 메시지는 사이트 메시지 형식으로 통보됩니다.',
  'account.settings.notification.todo': '해야 할 일',
  'account.settings.notification.todo-description': '할일은 사이트 내 메시지로 알려드립니다.',
  'account.settings.settings.open': '열다',
  'account.settings.settings.close': '닫기',
  'trading-assistant.title': '트레이딩 어시스턴트',
  'trading-assistant.strategyList': '전략 목록',
  'trading-assistant.createStrategy': '정책 만들기',
  'trading-assistant.noStrategy': '아직 전략이 없습니다.',
  'trading-assistant.selectStrategy': '세부정보를 보려면 왼쪽에서 전략을 선택하세요.',
  'trading-assistant.startStrategy': '출시 전략',
  'trading-assistant.stopStrategy': '중지 전략',
  'trading-assistant.editStrategy': '편집 전략',
  'trading-assistant.deleteStrategy': '정책 삭제',
  'trading-assistant.status.running': '달리기',
  'trading-assistant.status.stopped': '중지됨',
  'trading-assistant.status.error': '오류',
  'trading-assistant.strategyType.IndicatorStrategy': '기술 지표 전략',
  'trading-assistant.strategyType.PromptBasedStrategy': '단서 전략',
  'trading-assistant.strategyType.GridStrategy': '그리드 전략',
  'trading-assistant.tabs.tradingRecords': '거래 내역',
  'trading-assistant.tabs.positions': '직위기록',
  'trading-assistant.tabs.equityCurve': '주식곡선',
  'trading-assistant.form.step1': '지표 선택',
  'trading-assistant.form.step2': '교환 구성',
  'trading-assistant.form.step3': '전략 매개변수',
  'trading-assistant.form.indicator': '지표 선택',
  'trading-assistant.form.indicatorHint': '자신이 구매했거나 생성한 기술 지표만 선택할 수 있습니다.',
  'trading-assistant.form.qdtCostHints': '전략을 사용하면 QDT가 소모됩니다. 계정에 QDT 잔액이 충분한지 확인하세요.',
  'trading-assistant.form.indicatorDescription': '표시기 설명',
  'trading-assistant.form.noDescription': '아직 설명이 없습니다',
  'trading-assistant.form.exchange': '교환 선택',
  'trading-assistant.form.apiKey': 'API 키',
  'trading-assistant.form.secretKey': '비밀키',
  'trading-assistant.form.passphrase': '암호',
  'trading-assistant.form.testConnection': '연결 테스트',
  'trading-assistant.form.strategyName': '정책 이름',
  'trading-assistant.form.symbol': '거래 쌍',
  'trading-assistant.form.symbolHint': '현재는 암호화폐 거래쌍만 지원됩니다',
  'trading-assistant.form.initialCapital': '투자금액',
  'trading-assistant.form.marketType': '시장 유형',
  'trading-assistant.form.marketTypeFutures': '계약',
  'trading-assistant.form.marketTypeSpot': '스팟',
  'trading-assistant.form.marketTypeHint': '계약은 양방향 거래와 레버리지를 지원하는 반면 현물은 롱 포지션만 지원하고 레버리지는 1x로 고정됩니다.',
  'trading-assistant.form.leverage': '여러 가지 활용',
  'trading-assistant.form.leverageHint': '계약 : 1~125회, 현물 : 고정 1회',
  'trading-assistant.form.spotLeverageFixed': '현물 거래 레버리지는 1x로 고정됩니다.',
  'trading-assistant.form.spotOnlyLongHint': '현물 거래는 매수 포지션만 지원합니다',
  'trading-assistant.form.tradeDirection': '거래 방향',
  'trading-assistant.form.tradeDirectionLong': '오직 길다',
  'trading-assistant.form.tradeDirectionShort': '단지 짧다',
  'trading-assistant.form.tradeDirectionBoth': '양방향 거래',
  'trading-assistant.form.timeframe': '기간',
  'trading-assistant.form.klinePeriod': 'K선 기간',
  'trading-assistant.form.timeframe1m': '1분',
  'trading-assistant.form.timeframe5m': '5분',
  'trading-assistant.form.timeframe15m': '15분',
  'trading-assistant.form.timeframe30m': '30분',
  'trading-assistant.form.timeframe1H': '1시간',
  'trading-assistant.form.timeframe4H': '4시간',
  'trading-assistant.form.timeframe1D': '1일',
  'trading-assistant.form.selectStrategyType': '전략 유형 선택',
  'trading-assistant.form.indicatorStrategy': '지표 전략',
  'trading-assistant.form.indicatorStrategyDesc': '기술 지표 기반 자동 거래 전략',
  'trading-assistant.form.aiStrategy': 'AI 전략',
  'trading-assistant.form.aiStrategyDesc': 'AI 지능형 의사결정 기반 자동 거래 전략',
  'trading-assistant.form.enableAiFilter': 'AI 지능형 의사결정 필터 활성화',
  'trading-assistant.form.enableAiFilterHint': '활성화하면 지표 신호가 AI에 의해 필터링되어 거래 품질이 향상됩니다',
  'trading-assistant.form.aiFilterPrompt': '사용자 정의 프롬프트',
  'trading-assistant.form.aiFilterPromptHint': 'AI 필터링을 위한 사용자 정의 지침을 제공하고, 비워두면 시스템 기본값을 사용합니다',
  'trading-assistant.validation.strategyTypeRequired': '전략 유형을 선택하세요',
  'trading-assistant.form.advancedSettings': '고급 설정',
  'trading-assistant.form.orderMode': '주문 모드',
  'trading-assistant.form.orderModeMaker': '메이커',
  'trading-assistant.form.orderModeTaker': '시장가(테이커)',
  'trading-assistant.form.orderModeHint': '지정가 주문 모드는 지정가 주문을 사용하며 처리 수수료가 더 낮습니다. 시장 가격 모드는 즉시 실행되며 처리 수수료가 더 높습니다.',
  'trading-assistant.form.makerWaitSec': '지정가 주문 대기 시간(초)',
  'trading-assistant.form.makerWaitSecHint': '주문 후 거래가 완료될 때까지 기다리는 시간입니다. 취소하고 시간 초과 후 다시 시도하세요.',
  'trading-assistant.form.makerRetries': '보류 중인 주문에 대한 재시도 횟수',
  'trading-assistant.form.makerRetriesHint': '보류 중인 주문이 실행되지 않을 때 최대 재시도 횟수',
  'trading-assistant.form.fallbackToMarket': '지정가 주문이 실패하고 시장 가격이 하락합니다.',
  'trading-assistant.form.fallbackToMarketHint': '개시/청산 보류 주문이 완료되지 않은 경우 거래가 완료되었는지 확인하기 위해 시장가 주문으로 다운그레이드해야 하는지 여부.',
  'trading-assistant.form.marginMode': '마진 모드',
  'trading-assistant.form.marginModeCross': '전체 창고',
  'trading-assistant.form.marginModeIsolated': '고립된 위치',
  'trading-assistant.form.stopLossPct': '정지손해율(%)',
  'trading-assistant.form.stopLossPctHint': '정지 손실 비율을 설정합니다. 0은 정지 손실이 활성화되지 않았음을 의미합니다.',
  'trading-assistant.form.takeProfitPct': '이익 실현 비율(%)',
  'trading-assistant.form.takeProfitPctHint': '이익실현 비율을 설정합니다. 0은 이익실현을 비활성화함을 의미합니다.',
  'trading-assistant.form.signalMode': '신호 모드',
  'trading-assistant.form.signalModeConfirmed': '모드 확인',
  'trading-assistant.form.signalModeAggressive': '공격적 모드',
  'trading-assistant.form.signalModeHint': '확인 모드: 완료된 K 라인만 확인합니다. 공격적 모드: K 라인 형성도 확인합니다.',
  'trading-assistant.form.cancel': '취소',
  'trading-assistant.form.prev': '이전 단계',
  'trading-assistant.form.next': '다음 단계',
  'trading-assistant.form.confirmCreate': '생성 확인',
  'trading-assistant.form.confirmEdit': '변경사항 확인',
  'trading-assistant.messages.createSuccess': '전략이 성공적으로 생성되었습니다.',
  'trading-assistant.messages.createFailed': '정책을 생성하지 못했습니다.',
  'trading-assistant.messages.updateSuccess': '정책 업데이트 성공',
  'trading-assistant.messages.updateFailed': '정책 업데이트 실패',
  'trading-assistant.messages.deleteSuccess': '정책 삭제 성공',
  'trading-assistant.messages.deleteFailed': '정책 삭제 실패',
  'trading-assistant.messages.startSuccess': '전략이 성공적으로 시작되었습니다',
  'trading-assistant.messages.startFailed': '정책을 시작하지 못했습니다.',
  'trading-assistant.messages.stopSuccess': '전략이 성공적으로 중지되었습니다.',
  'trading-assistant.messages.stopFailed': '중지 전략이 실패했습니다.',
  'trading-assistant.messages.loadFailed': '정책 목록을 가져오지 못했습니다.',
  'trading-assistant.messages.runningWarning': '전략이 실행되고 있습니다. 전략을 수정하기 전에 전략을 중지하세요.',
  'trading-assistant.messages.deleteConfirmWithName': '"{name}" 정책을 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다.',
  'trading-assistant.messages.deleteConfirm': '이 정책을 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다.',
  'trading-assistant.messages.loadTradesFailed': '거래 기록을 가져오지 못했습니다.',
  'trading-assistant.messages.loadPositionsFailed': '위치 기록을 가져오지 못했습니다.',
  'trading-assistant.messages.loadEquityFailed': '자기자본곡선 획득 실패',
  'trading-assistant.messages.loadIndicatorsFailed': '표시기 목록을 로드하지 못했습니다. 나중에 다시 시도해 주세요.',
  'trading-assistant.messages.spotLimitations': '현물 거래는 자동으로 매수, 1배 레버리지로 설정되었습니다.',
  'trading-assistant.messages.autoFillApiConfig': '거래소의 과거 API 구성이 자동으로 채워졌습니다.',
  'trading-assistant.placeholders.selectIndicator': '지표를 선택하세요',
  'trading-assistant.placeholders.selectExchange': '교환을 선택해주세요',
  'trading-assistant.placeholders.inputApiKey': 'API 키를 입력하세요',
  'trading-assistant.placeholders.inputSecretKey': '비밀키를 입력해주세요',
  'trading-assistant.placeholders.inputPassphrase': '암호를 입력하세요',
  'trading-assistant.placeholders.inputStrategyName': '정책 이름을 입력하세요.',
  'trading-assistant.placeholders.selectSymbol': '거래쌍을 선택해주세요',
  'trading-assistant.placeholders.selectTimeframe': '기간을 선택하세요.',
  'trading-assistant.placeholders.selectKlinePeriod': 'K선 기간을 선택하세요',
  'trading-assistant.placeholders.inputAiFilterPrompt': '사용자 정의 프롬프트를 입력하세요(선택사항)',
  'trading-assistant.validation.indicatorRequired': '지표를 선택하세요',
  'trading-assistant.validation.exchangeRequired': '교환을 선택해주세요',
  'trading-assistant.validation.apiKeyRequired': 'API 키를 입력하세요',
  'trading-assistant.validation.secretKeyRequired': '비밀키를 입력해주세요',
  'trading-assistant.validation.passphraseRequired': '암호를 입력하세요',
  'trading-assistant.validation.exchangeConfigIncomplete': '전체 교환 구성 정보를 입력하세요.',
  'trading-assistant.validation.testConnectionRequired': '먼저 "연결 테스트" 버튼을 클릭하고 연결이 성공했는지 확인하세요',
  'trading-assistant.validation.testConnectionFailed': '연결 테스트에 실패했습니다. 구성을 확인하고 다시 테스트하세요',
  'trading-assistant.validation.strategyNameRequired': '정책 이름을 입력하세요.',
  'trading-assistant.validation.symbolRequired': '거래쌍을 선택해주세요',
  'trading-assistant.validation.initialCapitalRequired': '투자금액을 입력해주세요.',
  'trading-assistant.validation.leverageRequired': '레버리지 비율을 입력하세요.',
  'trading-assistant.table.time': '시간',
  'trading-assistant.table.type': '유형',
  'trading-assistant.table.price': '가격',
  'trading-assistant.table.amount': '수량',
  'trading-assistant.table.value': '금액',
  'trading-assistant.table.commission': '취급 수수료',
  'trading-assistant.table.symbol': '거래쌍',
  'trading-assistant.table.side': '방향',
  'trading-assistant.table.size': '포지션 수량',
  'trading-assistant.table.entryPrice': '개장 가격',
  'trading-assistant.table.currentPrice': '현재 가격',
  'trading-assistant.table.unrealizedPnl': '미실현 손익',
  'trading-assistant.table.pnlPercent': '손익비율',
  'trading-assistant.table.buy': '사다',
  'trading-assistant.table.sell': '팔다',
  'trading-assistant.table.long': '오래 가세요',
  'trading-assistant.table.short': '짧은',
  'trading-assistant.table.noPositions': '아직 직책이 없습니다.',
  'trading-assistant.detail.title': '전략 세부정보',
  'trading-assistant.detail.strategyName': '정책 이름',
  'trading-assistant.detail.strategyType': '전략 유형',
  'trading-assistant.detail.status': '상태',
  'trading-assistant.detail.tradingMode': '거래 모델',
  'trading-assistant.detail.exchange': '교환',
  'trading-assistant.detail.initialCapital': '초기자본금',
  'trading-assistant.detail.totalInvestment': '총투자금액',
  'trading-assistant.detail.currentEquity': '현재 순자산',
  'trading-assistant.detail.totalPnl': '총손익',
  'trading-assistant.detail.indicatorName': '지표 이름',
  'trading-assistant.detail.maxLeverage': '최대 레버리지',
  'trading-assistant.detail.decideInterval': '결정 간격',
  'trading-assistant.detail.symbols': '거래개체',
  'trading-assistant.detail.createdAt': '생성 시간',
  'trading-assistant.detail.updatedAt': '업데이트 시간',
  'trading-assistant.detail.llmConfig': 'AI 모델 구성',
  'trading-assistant.detail.exchangeConfig': '교환 구성',
  'trading-assistant.detail.provider': '공급자',
  'trading-assistant.detail.modelId': '모델 ID',
  'trading-assistant.detail.close': '닫기',
  'trading-assistant.detail.loadFailed': '정책 세부정보를 가져오지 못했습니다.',
  'trading-assistant.equity.noData': '아직 순자산 데이터가 없습니다.',
  'trading-assistant.equity.equity': '순자산',
  'trading-assistant.exchange.tradingMode': '거래 모델',
  'trading-assistant.exchange.virtual': '모의거래',
  'trading-assistant.exchange.live': '실제 거래',
  'trading-assistant.exchange.selectExchange': '교환 선택',
  'trading-assistant.exchange.walletAddress': '지갑 주소',
  'trading-assistant.exchange.walletAddressPlaceholder': '지갑 주소(0x로 시작)를 입력하세요.',
  'trading-assistant.exchange.privateKey': '개인 키',
  'trading-assistant.exchange.privateKeyPlaceholder': '개인키(64자)를 입력해주세요.',
  'trading-assistant.exchange.testConnection': '연결 테스트',
  'trading-assistant.exchange.connectionSuccess': '연결 성공',
  'trading-assistant.exchange.connectionFailed': '연결 실패',
  'trading-assistant.exchange.testFailed': '연결 테스트 실패',
  'trading-assistant.exchange.fillComplete': '전체 교환 구성 정보를 입력하세요.',
  'trading-assistant.strategyTypeOptions.ai': 'AI 중심 전략',
  'trading-assistant.strategyTypeOptions.indicator': '기술 지표 전략',
  'trading-assistant.strategyTypeOptions.aiDeveloping': 'AI 기반 전략 기능은 개발 중이므로 계속 지켜봐 주시기 바랍니다',
  'trading-assistant.strategyTypeOptions.aiDevelopingWarning': 'AI 기반 전략 기능 개발 중',
  'trading-assistant.indicatorType.trend': '추세',
  'trading-assistant.indicatorType.momentum': '추진력',
  'trading-assistant.indicatorType.volatility': '변동',
  'trading-assistant.indicatorType.volume': '볼륨',
  'trading-assistant.indicatorType.custom': '사용자 정의',
  'trading-assistant.exchangeNames': {
    'okx': 'OKX',
    'binance': '바이낸스',
    'hyperliquid': '초액체',
    'blockchaincom': '블록체인닷컴',
    'coinbaseexchange': '코인베이스',
    'gate': 'Gate.io',
    'mexc': '멕시코',
    'kraken': '크라켄',
    'bitfinex': '비트파이넥스',
    'bybit': '바이비트',
    'kucoin': '쿠코인',
    'huobi': '후오비',
    'bitget': '비트겟',
    'bitmex': '비트멕스',
    'deribit': '데리비트',
    'phemex': '페멕스',
    'bitmart': '비트마트',
    'bitstamp': '비트스탬프',
    'bittrex': '비트렉스',
    'poloniex': '폴로닉스',
    'gemini': '쌍둥이자리',
    'cryptocom': '크립토닷컴',
    'bitflyer': '비트플라이어',
    'upbit': '업비트',
    'bithumb': '빗썸',
    'coinone': '코인원',
    'zb': 'ZB',
    'lbank': 'L은행',
    'bibox': '비박스',
    'bigone': '빅원',
    'bitrue': '바이트루',
    'coinex': '코인엑스',
    'digifinex': '디지파이넥스',
    'ftx': 'FTX',
    'ftxus': 'FTX 미국',
    'binanceus': '바이낸스 미국',
    'binancecoinm': '바이낸스 코인-M',
    'binanceusdm': '바이낸스 USDⓈ-M'
  },
  'ai-trading-assistant.title': 'AI 트레이딩 도우미',
  'ai-trading-assistant.strategyList': '전략 목록',
  'ai-trading-assistant.createStrategy': '정책 만들기',
  'ai-trading-assistant.noStrategy': '아직 전략이 없습니다.',
  'ai-trading-assistant.selectStrategy': '세부정보를 보려면 왼쪽에서 전략을 선택하세요.',
  'ai-trading-assistant.startStrategy': '출시 전략',
  'ai-trading-assistant.stopStrategy': '중지 전략',
  'ai-trading-assistant.editStrategy': '편집 전략',
  'ai-trading-assistant.deleteStrategy': '정책 삭제',
  'ai-trading-assistant.status.running': '달리기',
  'ai-trading-assistant.status.stopped': '중지됨',
  'ai-trading-assistant.status.error': '오류',
  'ai-trading-assistant.tabs.tradingRecords': '거래 내역',
  'ai-trading-assistant.tabs.positions': '직위기록',
  'ai-trading-assistant.tabs.aiDecisions': 'AI 의사결정 기록',
  'ai-trading-assistant.tabs.equityCurve': '주식곡선',
  'ai-trading-assistant.form.createTitle': 'AI 거래 전략 수립',
  'ai-trading-assistant.form.editTitle': 'AI 거래 전략 편집',
  'ai-trading-assistant.form.strategyName': '정책 이름',
  'ai-trading-assistant.form.modelId': 'AI 모델',
  'ai-trading-assistant.form.modelIdHint': 'API 키를 구성하지 않고 시스템 OpenRouter 서비스 사용',
  'ai-trading-assistant.form.decideInterval': '결정 간격',
  'ai-trading-assistant.form.decideInterval5m': '5분',
  'ai-trading-assistant.form.decideInterval10m': '10분',
  'ai-trading-assistant.form.decideInterval30m': '30분',
  'ai-trading-assistant.form.decideInterval1h': '1시간',
  'ai-trading-assistant.form.decideInterval4h': '4시간',
  'ai-trading-assistant.form.decideInterval1d': '1일',
  'ai-trading-assistant.form.decideInterval1w': '1주',
  'ai-trading-assistant.form.decideIntervalHint': 'AI가 결정을 내리는 시간 간격',
  'ai-trading-assistant.form.runPeriod': '실행 주기',
  'ai-trading-assistant.form.runPeriodHint': '전략 실행의 시작 시간과 종료 시간',
  'ai-trading-assistant.form.startDate': '시작일',
  'ai-trading-assistant.form.endDate': '종료일',
  'ai-trading-assistant.form.qdtCostTitle': 'QDT 공제 지침',
  'ai-trading-assistant.form.qdtCostHint': '각 AI 결정에 대해 {cost} QDT가 차감됩니다. 귀하의 계정에 충분한 QDT 잔액이 있는지 확인하십시오. 전략을 실행하는 동안 각 결정에 대해 수수료가 실시간으로 차감됩니다.',
  'ai-trading-assistant.form.apiKey': 'API 키',
  'ai-trading-assistant.form.exchange': '교환 선택',
  'ai-trading-assistant.form.secretKey': '비밀키',
  'ai-trading-assistant.form.passphrase': '암호',
  'ai-trading-assistant.form.testConnection': '연결 테스트',
  'ai-trading-assistant.form.symbol': '거래 쌍',
  'ai-trading-assistant.form.symbolHint': '거래할 거래쌍을 선택하세요',
  'ai-trading-assistant.form.initialCapital': '투자금액(마진)',
  'ai-trading-assistant.form.leverage': '여러 가지 활용',
  'ai-trading-assistant.form.timeframe': '기간',
  'ai-trading-assistant.form.timeframe1m': '1분',
  'ai-trading-assistant.form.timeframe5m': '5분',
  'ai-trading-assistant.form.timeframe15m': '15분',
  'ai-trading-assistant.form.timeframe30m': '30분',
  'ai-trading-assistant.form.timeframe1H': '1시간',
  'ai-trading-assistant.form.timeframe4H': '4시간',
  'ai-trading-assistant.form.timeframe1D': '1일',
  'ai-trading-assistant.form.marketType': '시장 유형',
  'ai-trading-assistant.form.marketTypeFutures': '계약',
  'ai-trading-assistant.form.marketTypeSpot': '스팟',
  'ai-trading-assistant.form.totalPnl': '총손익',
  'ai-trading-assistant.form.customPrompt': '맞춤 프롬프트 단어',
  'ai-trading-assistant.form.customPromptHint': '선택 사항, AI 거래 전략 및 의사 결정 논리를 사용자 정의하는 데 사용됩니다.',
  'ai-trading-assistant.form.cancel': '취소',
  'ai-trading-assistant.form.prev': '이전 단계',
  'ai-trading-assistant.form.next': '다음 단계',
  'ai-trading-assistant.form.confirmCreate': '생성 확인',
  'ai-trading-assistant.form.confirmEdit': '변경사항 확인',
  'ai-trading-assistant.messages.createSuccess': '전략이 성공적으로 생성되었습니다.',
  'ai-trading-assistant.messages.createFailed': '정책을 생성하지 못했습니다.',
  'ai-trading-assistant.messages.updateSuccess': '정책 업데이트 성공',
  'ai-trading-assistant.messages.updateFailed': '정책 업데이트 실패',
  'ai-trading-assistant.messages.deleteSuccess': '정책 삭제 성공',
  'ai-trading-assistant.messages.deleteFailed': '정책 삭제 실패',
  'ai-trading-assistant.messages.startSuccess': '전략이 성공적으로 시작되었습니다',
  'ai-trading-assistant.messages.startFailed': '정책을 시작하지 못했습니다.',
  'ai-trading-assistant.messages.stopSuccess': '전략이 성공적으로 중지되었습니다.',
  'ai-trading-assistant.messages.stopFailed': '중지 전략이 실패했습니다.',
  'ai-trading-assistant.messages.loadFailed': '정책 목록을 가져오지 못했습니다.',
  'ai-trading-assistant.messages.loadDecisionsFailed': 'AI 결정 기록을 가져오지 못했습니다.',
  'ai-trading-assistant.messages.deleteConfirm': '이 정책을 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다.',
  'ai-trading-assistant.placeholders.inputStrategyName': '정책 이름을 입력하세요.',
  'ai-trading-assistant.placeholders.selectModelId': 'AI 모델을 선택해 주세요',
  'ai-trading-assistant.placeholders.selectDecideInterval': '결정 간격을 선택하세요.',
  'ai-trading-assistant.placeholders.startTime': '시작 시간',
  'ai-trading-assistant.placeholders.endTime': '종료 시간',
  'ai-trading-assistant.placeholders.inputApiKey': 'API 키를 입력하세요',
  'ai-trading-assistant.placeholders.selectExchange': '교환을 선택해주세요',
  'ai-trading-assistant.placeholders.inputSecretKey': '비밀키를 입력해주세요',
  'ai-trading-assistant.placeholders.inputPassphrase': '암호를 입력하세요',
  'ai-trading-assistant.placeholders.selectSymbol': '다음과 같은 거래쌍을 선택하세요: BTC/USDT',
  'ai-trading-assistant.placeholders.selectTimeframe': '기간을 선택하세요.',
  'ai-trading-assistant.placeholders.inputCustomPrompt': '맞춤 프롬프트 단어를 입력하세요(선택사항).',
  'ai-trading-assistant.validation.strategyNameRequired': '정책 이름을 입력하세요.',
  'ai-trading-assistant.validation.modelIdRequired': 'AI 모델을 선택해 주세요',
  'ai-trading-assistant.validation.runPeriodRequired': '실행 주기를 선택하세요.',
  'ai-trading-assistant.validation.apiKeyRequired': 'API 키를 입력하세요',
  'ai-trading-assistant.validation.exchangeRequired': '교환을 선택해주세요',
  'ai-trading-assistant.validation.secretKeyRequired': '비밀키를 입력해주세요',
  'ai-trading-assistant.validation.symbolRequired': '거래쌍을 선택해주세요',
  'ai-trading-assistant.validation.initialCapitalRequired': '투자금액을 입력해주세요.',
  'ai-trading-assistant.table.time': '시간',
  'ai-trading-assistant.table.type': '유형',
  'ai-trading-assistant.table.price': '가격',
  'ai-trading-assistant.table.amount': '수량',
  'ai-trading-assistant.table.value': '금액',
  'ai-trading-assistant.table.symbol': '거래 쌍',
  'ai-trading-assistant.table.side': '방향',
  'ai-trading-assistant.table.size': '포지션 수량',
  'ai-trading-assistant.table.entryPrice': '개장 가격',
  'ai-trading-assistant.table.currentPrice': '현재 가격',
  'ai-trading-assistant.table.unrealizedPnl': '미실현 손익',
  'ai-trading-assistant.table.profit': '이익과 손실',
  'ai-trading-assistant.table.openLong': '길게 열다',
  'ai-trading-assistant.table.closeLong': '핀듀오',
  'ai-trading-assistant.table.openShort': '오픈 쇼트',
  'ai-trading-assistant.table.closeShort': '비어 있음',
  'ai-trading-assistant.table.addLong': '가돗',
  'ai-trading-assistant.table.addShort': '짧게 추가하다',
  'ai-trading-assistant.table.closeShortProfit': '숏 포지션에서 이익을 얻으세요',
  'ai-trading-assistant.table.closeShortStop': '손실 중지',
  'ai-trading-assistant.table.closeLongProfit': '오래 멈추고 이익을 얻으십시오',
  'ai-trading-assistant.table.closeLongStop': '손실 중지',
  'ai-trading-assistant.table.buy': '사다',
  'ai-trading-assistant.table.sell': '팔다',
  'ai-trading-assistant.table.long': '오래 가세요',
  'ai-trading-assistant.table.short': '짧은',
  'ai-trading-assistant.table.hold': '보류',
  'ai-trading-assistant.table.reasoning': '분석 이유',
  'ai-trading-assistant.table.decisions': '의사결정',
  'ai-trading-assistant.table.riskAssessment': '위험 평가',
  'ai-trading-assistant.table.confidence': '자신감',
  'ai-trading-assistant.table.totalRecords': '총 {total}개 기록',
  'ai-trading-assistant.table.noPositions': '아직 직책이 없습니다.',
  'ai-trading-assistant.detail.title': '전략 세부정보',
  'ai-trading-assistant.equity.noData': '아직 순자산 데이터가 없습니다.',
  'ai-trading-assistant.equity.equity': '순자산',
  'ai-trading-assistant.exchange.testFailed': '연결 테스트 실패',
  'ai-trading-assistant.exchange.connectionSuccess': '연결 성공',
  'ai-trading-assistant.exchange.connectionFailed': '연결 실패',
  'ai-trading-assistant.form.advancedSettings': '고급 설정',
  'ai-trading-assistant.form.orderMode': '주문 모드',
  'ai-trading-assistant.form.orderModeMaker': '메이커',
  'ai-trading-assistant.form.orderModeTaker': '시장가(테이커)',
  'ai-trading-assistant.form.orderModeHint': '지정가 주문 모드는 지정가 주문을 사용하며 처리 수수료가 더 낮습니다. 시장 가격 모드는 즉시 실행되며 처리 수수료가 더 높습니다.',
  'ai-trading-assistant.form.makerWaitSec': '지정가 주문 대기 시간(초)',
  'ai-trading-assistant.form.makerWaitSecHint': '주문 후 거래가 완료될 때까지 기다리는 시간입니다. 취소하고 시간 초과 후 다시 시도하세요.',
  'ai-trading-assistant.form.makerRetries': '보류 중인 주문에 대한 재시도 횟수',
  'ai-trading-assistant.form.makerRetriesHint': '보류 중인 주문이 실행되지 않을 때 최대 재시도 횟수',
  'ai-trading-assistant.form.fallbackToMarket': '지정가 주문이 실패하고 시장 가격이 하락합니다.',
  'ai-trading-assistant.form.fallbackToMarketHint': '개시/청산 보류 주문이 완료되지 않은 경우 거래가 완료되었는지 확인하기 위해 시장가 주문으로 다운그레이드해야 하는지 여부.',
  'ai-trading-assistant.form.marginMode': '마진 모드',
  'ai-trading-assistant.form.marginModeCross': '전체 창고',
  'ai-trading-assistant.form.marginModeIsolated': '고립된 위치',
  'ai-analysis.title': '퀀트 트레이딩 엔진',
  'ai-analysis.system.online': '온라인',
  'ai-analysis.system.agents': '대리인',
  'ai-analysis.system.active': '활성',
  'ai-analysis.system.stage': '무대',
  'ai-analysis.panel.roster': '에이전트 라인업',
  'ai-analysis.panel.thinking': '생각하다...',
  'ai-analysis.panel.done': '완료',
  'ai-analysis.panel.standby': '대기',
  'ai-analysis.input.title': '퀀트 트레이딩 엔진',
  'ai-analysis.input.placeholder': '대상 자산 선택(예: BTC/USDT)',
  'ai-analysis.input.watchlist': '옵션 주식',
  'ai-analysis.input.start': '분석 시작',
  'ai-analysis.input.recent': '최근 작업:',
  'ai-analysis.vis.stage': '무대',
  'ai-analysis.vis.processing': '처리',
  'ai-analysis.result.complete': '분석 완료',
  'ai-analysis.result.signal': '최종 신호',
  'ai-analysis.result.confidence': '자신감:',
  'ai-analysis.result.new': '새로운 분석',
  'ai-analysis.result.full': '전체 보고서 보기',
  'ai-analysis.logs.title': '시스템 로그',
  'ai-analysis.modal.title': '기밀 보고서',
  'ai-analysis.modal.fundamental': '기본적 분석',
  'ai-analysis.modal.technical': '기술적 분석',
  'ai-analysis.modal.sentiment': '감정 분석',
  'ai-analysis.modal.risk': '위험 평가',
  'ai-analysis.stage.idle': '대기',
  'ai-analysis.stage.1': '1단계: 다차원 분석',
  'ai-analysis.stage.2': '2단계: 장단기 토론',
  'ai-analysis.stage.3': '3단계: 전략적 계획',
  'ai-analysis.stage.4': '네 번째 단계: 위험 통제 검토',
  'ai-analysis.stage.complete': '완료',
  'ai-analysis.agent.investment_director': '투자 이사',
  'ai-analysis.agent.role.investment_director': '종합 분석 및 최종 결론',
  'ai-analysis.agent.market': '시장 분석가',
  'ai-analysis.agent.role.market': '기술 및 시장 데이터',
  'ai-analysis.agent.fundamental': '기본 분석가',
  'ai-analysis.agent.role.fundamental': '재무 및 평가',
  'ai-analysis.agent.technical': '기술 분석가',
  'ai-analysis.agent.role.technical': '기술 지표 및 차트',
  'ai-analysis.agent.news': '뉴스 분석가',
  'ai-analysis.agent.role.news': '글로벌 뉴스 필터',
  'ai-analysis.agent.sentiment': '감정 분석가',
  'ai-analysis.agent.role.sentiment': '사회적 및 정서적',
  'ai-analysis.agent.risk': '위험 분석가',
  'ai-analysis.agent.role.risk': '기본 리스크 점검',
  'ai-analysis.agent.bull': '낙관적인 연구원',
  'ai-analysis.agent.role.bull': '성장촉매 채굴',
  'ai-analysis.agent.bear': '약세 연구원',
  'ai-analysis.agent.role.bear': '위험 및 결함 조사',
  'ai-analysis.agent.manager': '연구 관리자',
  'ai-analysis.agent.role.manager': '토론 진행자',
  'ai-analysis.agent.trader': '상인',
  'ai-analysis.agent.role.trader': '경영 전략가',
  'ai-analysis.agent.risky': '활동가 분석가',
  'ai-analysis.agent.role.risky': '공격적인 전략',
  'ai-analysis.agent.neutral': '균형 분석가',
  'ai-analysis.agent.role.neutral': '균형 전략',
  'ai-analysis.agent.safe': '보수적인 분석가',
  'ai-analysis.agent.role.safe': '보수적 전략',
  'ai-analysis.agent.cro': '위험 통제 관리자(CRO)',
  'ai-analysis.agent.role.cro': '최종 의사결정 권한',
  'ai-analysis.script.market': '주요 거래소에서 OHLCV 데이터를 가져오는 중...',
  'ai-analysis.script.fundamental': '분기별 재무 보고서를 검색하는 중...',
  'ai-analysis.script.technical': '기술지표 및 차트 패턴 분석 중...',
  'ai-analysis.script.news': '글로벌 금융 뉴스를 스캔하는 중...',
  'ai-analysis.script.sentiment': '소셜미디어 트렌드 분석…',
  'ai-analysis.script.risk': '역사적 변동성을 계산하는 중...',
  'invite.inviteLink': '초대링크',
  'invite.copy': '링크 복사',
  'invite.copySuccess': '성공적으로 복사되었습니다!',
  'invite.copyFailed': '복사하지 못했습니다. 수동으로 복사하세요.',
  'invite.noInviteLink': '초대 링크가 생성되지 않았습니다.',
  'invite.totalInvites': '누적 초대',
  'invite.totalReward': '누적 보상',
  'invite.rules': '초대 규칙',
  'invite.rule1': '친구를 등록하도록 성공적으로 초대할 때마다 보상을 받게 됩니다.',
  'invite.rule2': '초대한 친구가 첫 번째 거래를 완료하면 추가 보상을 받을 수 있습니다.',
  'invite.rule3': '초대 보상은 귀하의 계정으로 직접 전송됩니다',
  'invite.inviteList': '초대 목록',
  'invite.tasks': '선교 센터',
  'invite.inviteeName': '초대받은 사람',
  'invite.inviteTime': '초대 시간',
  'invite.status': '상태',
  'invite.reward': '보상',
  'invite.active': '활성',
  'invite.inactive': '활성화되지 않음',
  'invite.completed': '완료됨',
  'invite.claimed': '접수됨',
  'invite.pending': '완료 예정',
  'invite.goToTask': '완료하다',
  'invite.claimReward': '보상 청구',
  'invite.verify': '확인 완료',
  'invite.verifySuccess': '확인에 성공했습니다. 작업 완료',
  'invite.verifyNotCompleted': '작업이 아직 완료되지 않았습니다. 먼저 작업을 완료하세요.',
  'invite.verifyFailed': '확인에 실패했습니다. 나중에 다시 시도해 주세요.',
  'invite.claimSuccess': '{reward} QDT를 성공적으로 받았습니다!',
  'invite.claimFailed': '수집하지 못했습니다. 나중에 다시 시도해 주세요.',
  'invite.totalRecords': '총 {total}개 기록',
  'invite.task.twitter.title': 'X(트위터)로 리트윗',
  'invite.task.twitter.desc': '공식 트윗을 X(트위터) 계정에 공유하세요',
  'invite.task.youtube.title': 'YouTube 채널을 팔로우하세요',
  'invite.task.youtube.desc': '공식 YouTube 채널을 구독하고 팔로우하세요.',
  'invite.task.telegram.title': '텔레그램 그룹에 가입하세요',
  'invite.task.telegram.desc': '공식 텔레그램 커뮤니티 그룹에 가입하세요',
  'invite.task.discord.title': 'Discord 서버에 가입하세요',
  'invite.task.discord.desc': 'Discord 커뮤니티 서버에 가입하세요',
  'message': '-',
  'layouts.usermenu.dialog.title': '정보',
  'layouts.usermenu.dialog.content': '정말로 로그아웃하시겠습니까?',
  'layouts.userLayout.title': '불확실성 속에서 진실을 찾아라',
  // Auto-filled missing keys from en-US (fallback to English)
  'dashboard.indicator.boundary.message': 'Note: The indicator script only computes plots + buy/sell signals. Position sizing, risk, scaling, fees/slippage belong to execution config.',
  'dashboard.indicator.boundary.indicatorRule': "Keep the script to buy/sell only (and set df['buy']/df['sell']). Do NOT implement position management, TP/SL, scaling in the script.",
  'dashboard.indicator.boundary.backtestRule': 'Rule: If a bar has a main signal (buy/sell → open/close/reverse), scaling in/out is skipped on the same bar.',
  'dashboard.indicator.guide.title': 'Python Indicator & Strategy Development Guide',
  'dashboard.indicator.guide.intro': 'This platform supports writing custom technical indicators and trading signals using Python. The system includes built-in pandas and numpy data analysis libraries. You can use standard DataFrame operations to process K-line data and draw charts or mark buy/sell signals.',
  'dashboard.indicator.guide.section1.title': '1. Runtime Environment & Predefined Variables',
  'dashboard.indicator.guide.section1.env': 'Your code runs in a browser-based Python environment (Pyodide).',
  'dashboard.indicator.guide.section1.libs': 'Pre-installed Libraries',
  'dashboard.indicator.guide.section1.libsDesc': 'The following libraries are imported by default, no need to import again:',
  'dashboard.indicator.guide.section1.libsList': '<code>pandas</code> (pd), <code>numpy</code> (np), <code>math</code>, <code>json</code>',
  'dashboard.indicator.guide.section1.data': 'Input Data: df',
  'dashboard.indicator.guide.section1.dataDesc': 'The system automatically converts current K-line data into a Pandas DataFrame object, variable name is <code>df</code>.',
  'dashboard.indicator.guide.section1.dataColumns': '<code>df</code> contains the following columns (all float type):',
  'dashboard.indicator.guide.section1.dataColumnsList': '<code>time</code> (timestamp, seconds), <code>open</code>, <code>high</code>, <code>low</code>, <code>close</code>, <code>volume</code>',
  'dashboard.indicator.guide.section1.dataNote': 'Data index is arranged from old to new (0 is the earliest data, last row is the latest data).',
  'dashboard.indicator.guide.section1.dataIndex': 'Important: df index is timestamp (DatetimeIndex), please preserve the index, avoid using <code>.values</code> which loses the index.',
  'dashboard.indicator.guide.section2.title': '2. Parameter Definition',
  'dashboard.indicator.guide.section2.desc': 'You can define variables as parameters at the beginning of your code. The system will try to parse statements like <code>variable = value</code> as adjustable parameters.',
  'dashboard.indicator.guide.section2.example': 'Parameter Example',
  'dashboard.indicator.guide.section2.exampleCode': '<code>span = 20</code> or <code>multiplier = 2.0</code>',
  'dashboard.indicator.guide.section3.title': '3. Backtest Signal Setup (Important!)',
  'dashboard.indicator.guide.section3.desc': 'If you want your indicator to support backtesting, you <strong>must</strong> set the following two columns in your code:',
  'dashboard.indicator.guide.section3.backtestRequired': '<strong>Required for Backtesting:</strong>',
  'dashboard.indicator.guide.section3.backtestBuySignal': "<code>df['buy_signal']</code> - Boolean Series, True indicates buy signal",
  'dashboard.indicator.guide.section3.backtestSellSignal': "<code>df['sell_signal']</code> - Boolean Series, True indicates sell signal",
  'dashboard.indicator.guide.section3.backtestExample': 'Example:',
  'dashboard.indicator.guide.section3.backtestExampleCode': "<code>df['buy_signal'] = condition_buy</code><br/><code>df['sell_signal'] = condition_sell</code>",
  'dashboard.indicator.guide.section3.backtestNote': 'Note: Even if you only set <code>output.signals</code> for chart display, you must set these two columns to enable backtesting.',
  'dashboard.indicator.guide.section4.title': '4. Output Requirements: output',
  'dashboard.indicator.guide.section4.desc': 'At the end of code execution, you must define a dictionary named <code>output</code> to tell the chart how to display results.',
  'dashboard.indicator.guide.section4.fields': 'The <code>output</code> dictionary contains the following fields:',
  'dashboard.indicator.guide.section4.plots': '<code>plots</code> - For drawing lines (e.g., moving averages, RSI)',
  'dashboard.indicator.guide.section4.signals': '<code>signals</code> - For marking buy/sell signals (e.g., arrows, labels)',
  'dashboard.indicator.guide.section4.name': '<code>name</code> - Indicator name (optional)',
  'dashboard.indicator.guide.section4.calculatedVars': '<code>calculatedVars</code> - Calculated variables (optional, for displaying additional information)',
  'dashboard.indicator.guide.section5.title': '5. Plot Configuration (Plots)',
  'dashboard.indicator.guide.section5.desc': 'Each object in the <code>plots</code> list represents a line.',
  'dashboard.indicator.guide.section5.table.field': 'Field',
  'dashboard.indicator.guide.section5.table.type': 'Type',
  'dashboard.indicator.guide.section5.table.required': 'Required',
  'dashboard.indicator.guide.section5.table.requiredYes': 'Yes',
  'dashboard.indicator.guide.section5.table.requiredNo': 'No',
  'dashboard.indicator.guide.section5.table.desc': 'Description',
  'dashboard.indicator.guide.section5.table.name': 'The name of the indicator line, displayed in the legend',
  'dashboard.indicator.guide.section5.table.data': 'Data list, length must match the number of rows in df. Recommended to use <code>series.tolist()</code>',
  'dashboard.indicator.guide.section5.table.color': "Line color (Hex format, e.g. '#ff0000'). If not filled, the system will automatically assign",
  'dashboard.indicator.guide.section5.table.typeDesc': "Chart type, default is 'line'",
  'dashboard.indicator.guide.section5.table.overlay': '<strong>Important.</strong> True means display on main chart (with K-line), False means display on sub-chart (independent area)',
  'dashboard.indicator.guide.section5.example': 'Example: Draw Simple Moving Average (SMA)',
  'dashboard.indicator.guide.section5.exampleCalc': 'Calculate SMA',
  'dashboard.indicator.guide.section5.exampleOutput': 'Construct Output',
  'dashboard.indicator.guide.section5.exampleOverlay': 'Display on main chart',
  'dashboard.indicator.guide.section6.title': '6. Signal Markers (Signals)',
  'dashboard.indicator.guide.section6.desc': "<code>signals</code> are used to mark buy/sell points on specific K-lines through icons or text. <strong>Note:</strong> This is only for chart display. The backtest system uses <code>df['buy_signal']</code> and <code>df['sell_signal']</code>.",
  'dashboard.indicator.guide.section6.table.type': "Signal type: 'buy' (buy, marked below K-line) or 'sell' (sell, marked above K-line)",
  'dashboard.indicator.guide.section6.table.data': 'Signal data list. Fill price value at signal positions, fill None (or np.nan) at non-signal positions',
  'dashboard.indicator.guide.section6.table.text': 'Text displayed on the label (e.g. "B", "S", "Buy", "Sell")',
  'dashboard.indicator.guide.section6.table.color': 'Marker color',
  'dashboard.indicator.guide.section6.hint': 'The system automatically handles positioning.',
  'dashboard.indicator.guide.section6.buy': 'Markers will be automatically positioned below the Low of the current K-line',
  'dashboard.indicator.guide.section6.sell': 'Markers will be automatically positioned above the High of the current K-line',
  'dashboard.indicator.guide.section6.example': 'Example: Draw Buy/Sell Signals',
  'dashboard.indicator.guide.section6.exampleInit': 'Initialize signal list, fill all with None',
  'dashboard.indicator.guide.section6.exampleLogic': 'Simple logic: mark buy when close price is greater than open price',
  'dashboard.indicator.guide.section6.exampleNote': 'In actual logic, please use loops or vectorized operations',
  'dashboard.indicator.guide.section6.examplePrice': 'Record price',
  'dashboard.indicator.guide.section6.exampleText': 'Buy',
  'dashboard.indicator.guide.section7.title': '7. Complete Code Examples',
  'dashboard.indicator.guide.section7.exampleA': 'Example A: Dual EMA Strategy (Supports Backtesting)',
  'dashboard.indicator.guide.section7.exampleACode': "# 1. Calculate indicators<br/>df['ema_fast'] = df['close'].ewm(span=5, adjust=False).mean()<br/>df['ema_slow'] = df['close'].ewm(span=13, adjust=False).mean()<br/><br/># 2. Calculate crossover signals<br/>cross_up = (df['ema_fast'] > df['ema_slow']) & (df['ema_fast'].shift(1) <= df['ema_slow'].shift(1))<br/>cross_down = (df['ema_fast'] < df['ema_slow']) & (df['ema_fast'].shift(1) >= df['ema_slow'].shift(1))<br/><br/># 3. 【Important】Set NEW backtest signal columns (bool)<br/>df['open_long'] = cross_up<br/>df['close_long'] = cross_down<br/>df['open_short'] = cross_down<br/>df['close_short'] = cross_up<br/><br/># 4. Generate signal data for chart display<br/>buy_signals = [df['low'].iloc[i] * 0.995 if cross_up.iloc[i] else None for i in range(len(df))]<br/>sell_signals = [df['high'].iloc[i] * 1.005 if cross_down.iloc[i] else None for i in range(len(df))]<br/><br/># 5. Build output<br/>output = {<br/>  \"name\": \"Dual EMA Strategy\",<br/>  \"plots\": [<br/>    {\"name\": \"EMA 5\", \"data\": df['ema_fast'].tolist(), \"color\": \"#FF6B6B\", \"overlay\": True},<br/>    {\"name\": \"EMA 13\", \"data\": df['ema_slow'].tolist(), \"color\": \"#4ECDC4\", \"overlay\": True}<br/>  ],<br/>  \"signals\": [<br/>    {\"type\": \"buy\", \"text\": \"BUY\", \"data\": buy_signals, \"color\": \"#00E676\"},<br/>    {\"type\": \"sell\", \"text\": \"SELL\", \"data\": sell_signals, \"color\": \"#FF5252\"}<br/>  ]<br/>}",
  'dashboard.indicator.guide.section7.exampleB': 'Example B: Bollinger Bands - Chart Display Only',
  'dashboard.indicator.guide.section7.exampleBCode': "# Calculate Bollinger Bands (chart display only, no backtesting)<br/>length = 20<br/>mult = 2.0<br/>df['sma'] = df['close'].rolling(length).mean()<br/>df['std'] = df['close'].rolling(length).std()<br/>df['upper'] = df['sma'] + mult * df['std']<br/>df['lower'] = df['sma'] - mult * df['std']<br/><br/>output = {<br/>  \"name\": \"Bollinger Bands\",<br/>  \"plots\": [<br/>    {\"name\": \"Upper\", \"data\": df['upper'].tolist(), \"color\": \"#FF5252\", \"overlay\": True},<br/>    {\"name\": \"Middle\", \"data\": df['sma'].tolist(), \"color\": \"#2196F3\", \"overlay\": True},<br/>    {\"name\": \"Lower\", \"data\": df['lower'].tolist(), \"color\": \"#00E676\", \"overlay\": True}<br/>  ]<br/>}",
  'dashboard.indicator.guide.section7.exampleC': 'Example C: RSI Strategy (Supports Backtesting)',
  'dashboard.indicator.guide.section7.exampleCCode': "# Calculate RSI<br/>delta = df['close'].diff()<br/>up = delta.clip(lower=0)<br/>down = -1 * delta.clip(upper=0)<br/>ema_up = up.ewm(com=13, adjust=False).mean()<br/>ema_down = down.ewm(com=13, adjust=False).mean()<br/>rs = ema_up / ema_down<br/>df['rsi'] = 100 - (100 / (1 + rs))<br/><br/># Generate trading signals<br/>buy_condition = df['rsi'] < 30  # Oversold buy<br/>sell_condition = df['rsi'] > 70  # Overbought sell<br/><br/># 【Important】Set NEW backtest signal columns (bool)<br/>df['open_long'] = buy_condition<br/>df['close_long'] = sell_condition<br/>df['open_short'] = sell_condition<br/>df['close_short'] = buy_condition<br/><br/># Generate chart signals<br/>buy_signals = [df['low'].iloc[i] * 0.995 if buy_condition.iloc[i] else None for i in range(len(df))]<br/>sell_signals = [df['high'].iloc[i] * 1.005 if sell_condition.iloc[i] else None for i in range(len(df))]<br/><br/>output = {<br/>  \"name\": \"RSI Strategy\",<br/>  \"plots\": [<br/>    {\"name\": \"RSI\", \"data\": df['rsi'].tolist(), \"color\": \"#9C27B0\", \"overlay\": False},<br/>    {\"name\": \"Overbought\", \"data\": [70] * len(df), \"color\": \"#FF5252\", \"style\": \"dashed\", \"overlay\": False},<br/>    {\"name\": \"Oversold\", \"data\": [30] * len(df), \"color\": \"#00E676\", \"style\": \"dashed\", \"overlay\": False}<br/>  ],<br/>  \"signals\": [<br/>    {\"type\": \"buy\", \"text\": \"BUY\", \"data\": buy_signals, \"color\": \"#00E676\"},<br/>    {\"type\": \"sell\", \"text\": \"SELL\", \"data\": sell_signals, \"color\": \"#FF5252\"}<br/>  ]<br/>}",
  'dashboard.indicator.guide.section6.param': 'Parameters',
  'dashboard.indicator.guide.section6.calc': 'Calculate',
  'dashboard.indicator.guide.section6.output': 'Output',
  'dashboard.indicator.guide.section6.generate': 'Generate signal data (initialize with None)',
  'dashboard.indicator.guide.section6.subchart': 'Display on sub-chart',
  'dashboard.indicator.guide.section8.title': '8. Frequently Asked Questions (FAQ)',
  'dashboard.indicator.guide.section8.q1': "Q: Why can't my indicator be backtested?",
  'dashboard.indicator.guide.section8.a1': "A: The backtest system requires NEW signal columns: <code>df['open_long']</code>, <code>df['close_long']</code>, <code>df['open_short']</code>, <code>df['close_short']</code> (boolean). Even if you set <code>output.signals</code> for chart display, you must set these columns to enable backtesting.",
  'dashboard.indicator.guide.section8.q2': 'Q: Data length mismatch?',
  'dashboard.indicator.guide.section8.a2': "A: The <code>data</code> list in <code>plots</code> and <code>signals</code> must have exactly the same length as the K-line data. If you use <code>df['xxx'].tolist()</code>, there is usually no problem.",
  'dashboard.indicator.guide.section8.q3': 'Q: How to handle NaN (empty values)?',
  'dashboard.indicator.guide.section8.a3': "A: Pandas calculations (such as rolling mean) will produce NaN at the beginning. The system will automatically convert NaN to null for chart rendering. You don't need to manually clean it, but if you need specific logic, you can use <code>df.fillna(0)</code> or other methods.",
  'dashboard.indicator.guide.section8.q4': 'Q: Index mismatch causing all signals to be NaN?',
  'dashboard.indicator.guide.section8.a4': "A: Please ensure you preserve the original df index (timestamp). Avoid using <code>.values</code> to create new Series. Use columns directly like <code>df['close']</code> for operations.",
  'dashboard.indicator.guide.section8.q5': 'Q: Can I use third-party network libraries?',
  'dashboard.indicator.guide.section8.a5': 'A: No. The runtime environment is a browser sandbox and cannot use libraries like requests to request external APIs, nor can it install additional pip packages. Limited to built-in libraries such as pandas, numpy, math, json.',
  'dashboard.indicator.guide.section8.q6': 'Q: How to debug code?',
  'dashboard.indicator.guide.section8.a6': 'A: If the chart does not display indicators, it is usually because the Python code has an error. Please check for syntax errors or array index out of bounds. It is recommended to debug the algorithm logic in a local Python environment first, then copy it in.',
  'dashboard.indicator.guide.section8.q7': 'Q: Backtest shows 0 signals?',
  'dashboard.indicator.guide.section8.a7': "A: Please check the data type of <code>df['open_long']</code>/<code>df['close_long']</code>/<code>df['open_short']</code>/<code>df['close_short']</code>. They should be boolean (True/False), not numeric. Use <code>condition.fillna(False).astype(bool)</code> to ensure correct type.",
  'dashboard.indicator.backtest.commissionHint': 'Charged on notional value (incl. leverage) per trade; both entry & exit are deducted from balance.',
  'dashboard.indicator.backtest.historyTitle': 'Backtest History',
  'dashboard.indicator.backtest.historyRefresh': 'Refresh',
  'dashboard.indicator.backtest.historyView': 'View',
  'dashboard.indicator.backtest.historyNoData': 'No backtest history',
  'dashboard.indicator.backtest.historyUseCurrent': 'Only current symbol/timeframe',
  'dashboard.indicator.backtest.historyFilterSymbol': 'Symbol',
  'dashboard.indicator.backtest.historyFilterTimeframe': 'Timeframe',
  'dashboard.indicator.backtest.historyApply': 'Apply filters',
  'dashboard.indicator.backtest.historyAIAnalyze': 'AI Analyze',
  'dashboard.indicator.backtest.historyAIAnalyzeTitle': 'AI Suggestions',
  'dashboard.indicator.backtest.historyNoAIResult': 'No AI analysis result',
  'dashboard.indicator.backtest.historyRunId': 'Run ID',
  'dashboard.indicator.backtest.historyCreatedAt': 'Time',
  'dashboard.indicator.backtest.historyRange': 'Range',
  'dashboard.indicator.backtest.historyStatus': 'Status',
  'dashboard.indicator.backtest.historyStatusSuccess': 'Success',
  'dashboard.indicator.backtest.historyStatusFailed': 'Failed',
  'dashboard.indicator.backtest.historyActions': 'Actions',
  'trading-assistant.exchange.ipWhitelistTip': 'Please add the following IPs to the whitelist in your exchange API settings:',
  'signal-robot.title': 'Signal Robot Console',
  'signal-robot.createBot': 'Create New Bot',
  'signal-robot.search.nameOrSymbol': 'Name/Symbol',
  'signal-robot.search.placeholder': 'Search bot name or symbol',
  'signal-robot.search.status': 'Status',
  'signal-robot.search.statusAll': 'All',
  'signal-robot.search.statusRunning': 'Running',
  'signal-robot.search.statusPaused': 'Paused',
  'signal-robot.search.query': 'Query',
  'signal-robot.search.reset': 'Reset',
  'signal-robot.table.botName': 'Bot Name',
  'signal-robot.table.symbolTimeframe': 'Symbol/Timeframe',
  'signal-robot.table.triggerStrategy': 'Trigger Strategy',
  'signal-robot.table.notificationChannels': 'Notification Channels',
  'signal-robot.table.status': 'Status',
  'signal-robot.table.action': 'Action',
  'signal-robot.table.triggerConditions': '{count} trigger conditions',
  'signal-robot.table.monitoring': 'Monitoring',
  'signal-robot.table.paused': 'Paused',
  'signal-robot.table.edit': 'Edit',
  'signal-robot.table.pause': 'Pause',
  'signal-robot.table.start': 'Start',
  'signal-robot.table.delete': 'Delete',
  'signal-robot.table.deleteConfirm': 'Are you sure you want to delete this bot?',
  'signal-robot.table.deleteSuccess': 'Deleted successfully',
  'signal-robot.table.startSuccess': 'Bot started',
  'signal-robot.table.pauseSuccess': 'Bot paused',
  'signal-robot.channel.telegram': 'Telegram',
  'signal-robot.channel.discord': 'Discord',
  'signal-robot.channel.email': 'Email',
  'signal-robot.channel.webhook': 'Webhook',
  'signal-robot.channel.browser': 'Browser Push',
  'signal-robot.modal.createTitle': 'Create New Signal Robot',
  'signal-robot.modal.editTitle': 'Edit Signal Robot',
  'signal-robot.modal.step.basic': 'Basic Settings',
  'signal-robot.modal.step.entry': 'Entry Strategy',
  'signal-robot.modal.step.position': 'Position Management',
  'signal-robot.modal.step.risk': 'Risk Control',
  'signal-robot.modal.step.notify': 'Notification Config',
  'signal-robot.modal.prev': 'Previous',
  'signal-robot.modal.next': 'Next',
  'signal-robot.modal.preview': 'Preview Backtest',
  'signal-robot.modal.complete': 'Complete & Run',
  'signal-robot.modal.saveSuccess': 'Saved successfully',
  'signal-robot.modal.previewDeveloping': 'Preview feature is under development...',
  'signal-robot.modal.basicInfoRequired': 'Please complete basic information',
  'signal-robot.basic.alert': 'Set basic information for the bot',
  'signal-robot.basic.title': 'Basic Information',
  'signal-robot.basic.botName': 'Bot Name',
  'signal-robot.basic.botNamePlaceholder': 'e.g.: BTC SuperTrend Strategy',
  'signal-robot.basic.symbol': 'Trading Pair',
  'signal-robot.basic.symbolPlaceholder': 'Select from watchlist',
  'signal-robot.basic.noWatchlist': 'No watchlist items, please add in market page first',
  'signal-robot.basic.timeframe': 'K-Line Period',
  'signal-robot.basic.timeframe15m': '15 Minutes',
  'signal-robot.basic.timeframe30m': '30 Minutes',
  'signal-robot.basic.timeframe1h': '1 Hour',
  'signal-robot.basic.timeframe4h': '4 Hours',
  'signal-robot.basic.timeframe1d': '1 Day',
  'signal-robot.basic.autoNameSuggestion': '{symbol} Signal Robot',
  'signal-robot.entry.alert': 'Trigger entry signal when all conditions below are met',
  'signal-robot.entry.condition': 'Condition {index}',
  'signal-robot.entry.indicator': 'Indicator',
  'signal-robot.entry.indicatorSupertrend': 'SuperTrend',
  'signal-robot.entry.indicatorEma': 'EMA (Exponential Moving Average)',
  'signal-robot.entry.indicatorRsi': 'RSI (Relative Strength Index)',
  'signal-robot.entry.indicatorMacd': 'MACD',
  'signal-robot.entry.indicatorBollinger': 'Bollinger Bands',
  'signal-robot.entry.atrPeriod': 'ATR Period',
  'signal-robot.entry.multiplier': 'Multiplier',
  'signal-robot.entry.triggerSignal': 'Trigger Signal',
  'signal-robot.entry.signalTrendBullish': 'Trend Bullish',
  'signal-robot.entry.signalTrendBearish': 'Trend Bearish',
  'signal-robot.entry.signalIsUptrend': 'Is Uptrend',
  'signal-robot.entry.signalIsDowntrend': 'Is Downtrend',
  'signal-robot.entry.period': 'Period',
  'signal-robot.entry.compareCondition': 'Compare Condition',
  'signal-robot.entry.priceAbove': 'Price > EMA (Price Above)',
  'signal-robot.entry.priceBelow': 'Price < EMA (Price Below)',
  'signal-robot.entry.crossUp': 'Price Crosses Above EMA (Golden Cross)',
  'signal-robot.entry.crossDown': 'Price Crosses Below EMA (Death Cross)',
  'signal-robot.entry.compare': 'Compare',
  'signal-robot.entry.greaterThan': 'Greater Than',
  'signal-robot.entry.lessThan': 'Less Than',
  'signal-robot.entry.crossUpShort': 'Cross Up',
  'signal-robot.entry.crossDownShort': 'Cross Down',
  'signal-robot.entry.threshold': 'Threshold',
  'signal-robot.entry.selectIndicator': 'Please select an indicator to configure parameters',
  'signal-robot.entry.addCondition': 'Add Condition',
  'signal-robot.position.alert': 'Configure initial position size, leverage and pyramiding rules',
  'signal-robot.position.basicTitle': 'Basic Position Management',
  'signal-robot.position.initialSize': 'Initial Size (Capital %)',
  'signal-robot.position.initialSizeHint': 'Recommended 5% - 20%',
  'signal-robot.position.leverage': 'Leverage',
  'signal-robot.position.leverageHint': 'Please ensure your exchange account supports this leverage',
  'signal-robot.position.maxPyramiding': 'Max Pyramiding Times',
  'signal-robot.position.maxPyramidingHint': '0 means no pyramiding',
  'signal-robot.position.pyramidingTitle': 'Pyramiding Rules',
  'signal-robot.position.pyramidingEnabled': 'Enabled',
  'signal-robot.position.pyramidingDisabled': 'Disabled',
  'signal-robot.position.pyramidingCondition': 'Pyramiding Trigger Condition',
  'signal-robot.position.priceRisePct': 'Price Rises (Long) / Falls (Short)',
  'signal-robot.position.profitPct': 'Profit Reaches',
  'signal-robot.position.triggerThreshold': 'Trigger Threshold (%)',
  'signal-robot.position.triggerThresholdHint': 'e.g. 3%: add position once every 3% rise',
  'signal-robot.position.addSize': 'Single Add Size (Capital %)',
  'signal-robot.position.pyramidingDisabledHint': 'Pyramiding disabled, only initial position will be executed',
  'signal-robot.risk.alert': 'Configure take profit, stop loss and exit rules',
  'signal-robot.risk.stopLossTitle': 'Stop Loss',
  'signal-robot.risk.stopLossEnabled': 'Enabled',
  'signal-robot.risk.stopLossDisabled': 'Disabled',
  'signal-robot.risk.stopLossType': 'Stop Loss Type',
  'signal-robot.risk.stopLossFixedPct': 'Fixed Percentage',
  'signal-robot.risk.stopLossAtrMultiplier': 'ATR Multiplier',
  'signal-robot.risk.stopLossValue': 'Value',
  'signal-robot.risk.stopLossFixedHint': 'e.g. 2%: stop loss when loss reaches 2%',
  'signal-robot.risk.stopLossAtrHint': 'e.g. 2.0: stop loss when price touches ATR*2.0',
  'signal-robot.risk.stopLossDisabledHint': 'Stop loss disabled (high risk)',
  'signal-robot.risk.trailingStopTitle': 'Trailing Stop',
  'signal-robot.risk.activationProfit': 'Activation Profit (%)',
  'signal-robot.risk.activationProfitHint': 'Start trailing when profit reaches this level',
  'signal-robot.risk.callbackPct': 'Callback (%)',
  'signal-robot.risk.callbackPctHint': 'Trigger take profit when price falls from peak by this percentage',
  'signal-robot.risk.trailingStopDisabledHint': 'Trailing stop disabled',
  'signal-robot.risk.otherExitTitle': 'Other Exit Rules',
  'signal-robot.risk.signalExit': 'Allow Signal Exit',
  'signal-robot.risk.signalExitHint': 'Close position immediately when reverse signal appears (e.g. close long when short signal appears)',
  'signal-robot.notify.alert': 'Configure notification methods when signal is triggered',
  'signal-robot.notify.channelTitle': 'Notification Channels',
  'signal-robot.notify.discordWebhook': 'Discord Webhook',
  'signal-robot.notify.genericWebhook': 'Generic Webhook',
  'signal-robot.notify.webhookUrl': 'Webhook URL',
  'signal-robot.notify.webhookUrlPlaceholder': 'https://example.com/webhook',
  'signal-robot.notify.discordUrl': 'Discord URL',
  'signal-robot.notify.discordUrlPlaceholder': 'https://discord.com/api/webhooks/...',
  'signal-robot.operator.greaterThan': 'Greater Than',
  'signal-robot.operator.lessThan': 'Less Than',
  'signal-robot.operator.equal': 'Equal',
  'signal-robot.operator.goldenCross': 'Golden Cross',
  'signal-robot.operator.deathCross': 'Death Cross',
  'signal-robot.operator.increaseBy': 'Increase By',
  'signal-robot.operator.decreaseBy': 'Decrease By',
  'signal-robot.indicator.price': 'Price',
  'signal-robot.indicator.rsi': 'RSI',
  'signal-robot.indicator.kdjK': 'KDJ(K)',
  'signal-robot.indicator.kdjJ': 'KDJ(J)',
  'signal-robot.indicator.macd': 'MACD',
  'signal-robot.indicator.macdHist': 'MACD Histogram',
  'signal-robot.indicator.bollingerUp': 'Bollinger Upper',
  'signal-robot.indicator.bollingerLow': 'Bollinger Lower',
  'signal-robot.indicator.volume': 'Volume',
  'signal-robot.indicator.changePct1h': '1H Change %',
  'signal-robot.indicator.changePct24h': '24H Change %',
  'signal-robot.indicator.signalLine': 'Signal Line',

  // Settings (Memory/Reflection)
  'settings.group.agent_memory': '메모리/리플렉션 설정',
  'settings.group.reflection_worker': '자동 리플렉션 검증 워커',
  'settings.field.ENABLE_AGENT_MEMORY': '에이전트 메모리 사용',
  'settings.field.AGENT_MEMORY_ENABLE_VECTOR': '벡터 검색 사용(로컬)',
  'settings.field.AGENT_MEMORY_EMBEDDING_DIM': '임베딩 차원',
  'settings.field.AGENT_MEMORY_TOP_K': 'Top-K 조회 개수',
  'settings.field.AGENT_MEMORY_CANDIDATE_LIMIT': '후보 윈도우 크기',
  'settings.field.AGENT_MEMORY_HALF_LIFE_DAYS': '시간 감쇠 반감기(일)',
  'settings.field.AGENT_MEMORY_W_SIM': '유사도 가중치',
  'settings.field.AGENT_MEMORY_W_RECENCY': '시간 가중치',
  'settings.field.AGENT_MEMORY_W_RETURNS': '수익 가중치',
  'settings.field.ENABLE_REFLECTION_WORKER': '자동 검증 사용',
  'settings.field.REFLECTION_WORKER_INTERVAL_SEC': '검증 주기(초)'
}

export default {
  ...components,
  ...locale
}
