refactor(i18n): date 중복 버그 수정 + 고아 키 967건 삭제 (WS4)
- date.today/yesterday 중복 정의(uppercase 잔해 "TODAY"/"YESTERDAY") 삭제 (ko/en) -> 한국어 사용자에게 잘못된 대문자 표시 버그 해소. - 고아 키 967건 삭제: ko/en 109건 + 타 10 locale 858건. - P1 재검증으로 20건 KEEP 전환 (camelCase license.feature 15 + nav 5) -- 동적 보간/프로퍼티 패스스루 참조로, typecheck가 잡지 못하는 런타임 버그 15건 예방. 정책: docs/REFACTOR_POLICY.md DP3, DP9, 이식 인사이트 P1
This commit is contained in:
parent
078304dda9
commit
87f2dac9e5
12 changed files with 0 additions and 864 deletions
|
|
@ -18,21 +18,16 @@
|
|||
"login.google": "Google로 계속하기",
|
||||
"login.github": "GitHub로 계속하기",
|
||||
"login.terms": "계속 진행하면 이용약관 및 개인정보 처리방침에 동의합니다.",
|
||||
"dashboard.sessionOverview": "세션 개요",
|
||||
"dashboard.systemStatus": "시스템 상태",
|
||||
"dashboard.sessionsToday": "오늘 세션",
|
||||
"dashboard.pressToRecord": "{{key}}를 눌러 녹음 시작",
|
||||
"dashboard.hotkeyNotSet": "핫키 미설정",
|
||||
"dashboard.words": "단어",
|
||||
"dashboard.total": "전체",
|
||||
"dashboard.streak": "연속",
|
||||
"dashboard.days": "일",
|
||||
"dashboard.recording": "녹음",
|
||||
"dashboard.sessions": "세션",
|
||||
"dashboard.today": "오늘",
|
||||
"dashboard.recentTranscriptions": "최근 전사",
|
||||
"dashboard.noHistory": "히스토리 없음 — 핫키를 눌러 녹음을 시작하세요",
|
||||
"dashboard.copy": "복사",
|
||||
"dashboard.entries": "{{count}}건",
|
||||
"dashboard.heroIdle": "실시간 음성 인식 대기 중",
|
||||
"dashboard.viewStats": "통계 보기",
|
||||
|
|
@ -52,16 +47,12 @@
|
|||
"dashboard.planFree": "무료 플랜",
|
||||
"dashboard.planFeatureLocal": "로컬 백엔드 무제한",
|
||||
"dashboard.planFeatureDaily": "일일 전사 무제한",
|
||||
"dashboard.stat": "통계",
|
||||
"dashboard.sys": "시스템",
|
||||
"dashboard.currentBackend": "현재 백엔드",
|
||||
"dashboard.backendLocal": "로컬 (Ollama)",
|
||||
"dashboard.backendPremium": "프리미엄 (Claude)",
|
||||
"dashboard.loginRequired": "로그인 필요",
|
||||
"history.title": "전사 기록",
|
||||
"history.search": "검색...",
|
||||
"history.entries": "{{count}}건",
|
||||
"history.loading": "로딩...",
|
||||
"history.noResults": "검색 결과 없음",
|
||||
"history.noHistory": "히스토리 없음 — 녹음을 시작하세요",
|
||||
"history.count": "{{count}}건",
|
||||
|
|
@ -69,7 +60,6 @@
|
|||
"dictionary.words": "{{count}}개",
|
||||
"dictionary.add": "추가",
|
||||
"dictionary.search": "검색...",
|
||||
"dictionary.loading": "로딩...",
|
||||
"dictionary.noResults": "검색 결과 없음",
|
||||
"dictionary.noWords": "단어 없음 — STT 정확도 향상을 위해 커스텀 단어를 추가하세요",
|
||||
"dictionary.used": "{{count}}회 사용",
|
||||
|
|
@ -82,7 +72,6 @@
|
|||
"commands.add": "추가",
|
||||
"commands.activeCommand": "활성 명령어",
|
||||
"commands.none": "없음",
|
||||
"commands.loading": "로딩...",
|
||||
"commands.noCommands": "명령어 없음 — 추가를 클릭하여 생성",
|
||||
"commands.editTitle": "명령어 편집",
|
||||
"commands.addTitle": "명령어 추가",
|
||||
|
|
@ -178,37 +167,9 @@
|
|||
"voice.error.engine": "음성 인식 엔진을 시작하지 못했습니다. 잠시 후 다시 시도해 주세요.",
|
||||
"voice.warning.llmSkipped": "Ollama에 연결할 수 없어 원문 그대로 삽입했습니다.",
|
||||
"status.localTime": "로컬 시간",
|
||||
"status.ollama": "OLLAMA",
|
||||
"status.offline": "OFFLINE",
|
||||
"status.nudge.title": "Ollama가 실행되지 않고 있어요",
|
||||
"status.nudge.desc": "LLM 후처리(번역, 요약 등)를 사용하려면 Ollama가 필요합니다.",
|
||||
"status.nudge.guide": "설치 안내 보기 →",
|
||||
"onboarding.welcome.title": "D3RO-VOICE",
|
||||
"onboarding.welcome.desc": "타이핑 없이, 음성으로. 로컬 AI 음성 어시스턴트입니다.",
|
||||
"onboarding.welcome.start": "시작하기",
|
||||
"onboarding.mic.title": "마이크 설정",
|
||||
"onboarding.mic.desc": "사용할 마이크를 선택하세요. 나중에 설정에서 변경할 수 있습니다.",
|
||||
"onboarding.hotkey.title": "단축키 설정",
|
||||
"onboarding.hotkey.desc": "받아쓰기 단축키를 설정하세요. 키를 누르고 있는 동안 녹음됩니다.",
|
||||
"onboarding.hotkey.notSet": "단축키가 설정되지 않았습니다",
|
||||
"onboarding.hotkey.change": "단축키 변경",
|
||||
"onboarding.hotkey.set": "단축키 설정",
|
||||
"onboarding.ollama.title": "Ollama 설치 (선택)",
|
||||
"onboarding.ollama.desc": "번역, 요약 등 LLM 후처리를 사용하려면 Ollama가 필요합니다. 음성 받아쓰기 자체는 Ollama 없이도 동작합니다.",
|
||||
"onboarding.ollama.download": "Ollama 다운로드",
|
||||
"onboarding.ollama.modelHint": "설치 후 터미널에서 모델을 다운로드하세요",
|
||||
"onboarding.cloud.title": "Cloud Sync (선택)",
|
||||
"onboarding.cloud.tagline": "로컬만으로도 충분히 작동합니다. 원할 때 로그인하면 더 많은 기능이 잠금 해제됩니다.",
|
||||
"onboarding.cloud.benefit1": "여러 기기에서 히스토리 · 회의록 자동 동기화",
|
||||
"onboarding.cloud.benefit2": "Premium LLM (Claude, GPT-4) 사용",
|
||||
"onboarding.cloud.benefit3": "팀 공유 · 백업 · 웹 앱 접속",
|
||||
"onboarding.cloud.signInLater": "설정에서 언제든지 로그인",
|
||||
"onboarding.done.title": "설정 완료!",
|
||||
"onboarding.done.descWithKey": "{{key}} 키를 누르고 말하면 음성이 텍스트로 변환됩니다.",
|
||||
"onboarding.done.descNoKey": "설정에서 단축키를 지정하면 음성 받아쓰기를 시작할 수 있습니다.",
|
||||
"onboarding.done.start": "시작하기",
|
||||
"onboarding.back": "뒤로",
|
||||
"onboarding.next": "다음",
|
||||
"hotkey.title": "단축키 설정",
|
||||
"hotkey.dictationTitle": "받아쓰기 단축키 설정",
|
||||
"hotkey.oneTouchTitle": "원터치 모드 단축키 설정",
|
||||
|
|
@ -242,55 +203,31 @@
|
|||
"common.cancel": "취소",
|
||||
"common.save": "저장",
|
||||
"common.delete": "삭제",
|
||||
"common.add": "추가",
|
||||
"common.edit": "편집",
|
||||
"common.close": "닫기",
|
||||
"common.confirm": "확인",
|
||||
"common.loading": "로딩...",
|
||||
"common.copy": "복사",
|
||||
"common.test": "테스트",
|
||||
"common.stop": "중지",
|
||||
"memo.tags": "태그",
|
||||
"memo.addTag": "태그 추가",
|
||||
"memo.removeTag": "태그 제거",
|
||||
"memo.tagPlaceholder": "태그 입력 후 Enter",
|
||||
"memo.noTags": "태그 없음",
|
||||
"memo.export": "마크다운 내보내기",
|
||||
"memo.exportSuccess": "내보내기 완료",
|
||||
"memo.filterByTag": "태그로 필터",
|
||||
"memo.allTags": "전체 태그",
|
||||
"memo.clearFilter": "필터 해제",
|
||||
"voiceCommand.title": "음성 명령어",
|
||||
"voiceCommand.enabled": "음성 키워드 인식",
|
||||
"voiceCommand.enabledDesc": "전사 시작 시 키워드를 감지하여 명령어를 자동 선택합니다.",
|
||||
"voiceCommand.keywords": "키워드",
|
||||
"voiceCommand.keywordPlaceholder": "키워드 입력 후 Enter",
|
||||
"voiceCommand.noKeywords": "키워드 없음",
|
||||
"voiceCommand.matchMode": "매칭 모드",
|
||||
"voiceCommand.matchMode.prefix": "앞부분 일치",
|
||||
"voiceCommand.matchMode.suffix": "뒷부분 일치",
|
||||
"voiceCommand.matchMode.contains": "포함",
|
||||
"chain.title": "LLM 체인",
|
||||
"chain.count": "{{count}}개",
|
||||
"chain.add": "체인 추가",
|
||||
"chain.editTitle": "체인 편집",
|
||||
"chain.addTitle": "체인 추가",
|
||||
"chain.name": "체인 이름",
|
||||
"chain.steps": "단계",
|
||||
"chain.addStep": "단계 추가",
|
||||
"chain.removeStep": "제거",
|
||||
"chain.inputSource": "입력 소스",
|
||||
"chain.inputSource.original": "원본 텍스트",
|
||||
"chain.inputSource.previous": "이전 단계 결과",
|
||||
"chain.selectInstruction": "명령어 선택",
|
||||
"chain.execute": "실행",
|
||||
"chain.executing": "실행 중...",
|
||||
"chain.noChains": "체인 없음 — 여러 명령어를 순차 실행하는 파이프라인을 만들어 보세요",
|
||||
"chain.step": "{{n}}단계",
|
||||
"chain.progress": "{{current}}/{{total}} 단계 처리 중",
|
||||
"context.title": "화면 컨텍스트",
|
||||
"context.enabled": "스크린 컨텍스트",
|
||||
"context.enabledDesc": "녹음 시작 시 활성 앱과 선택된 텍스트를 캡처하여 LLM에 전달합니다.",
|
||||
"dashboard.caption": "실시간 자막",
|
||||
"dashboard.captionStart": "자막 시작",
|
||||
"dashboard.captionStop": "자막 종료",
|
||||
|
|
@ -308,11 +245,9 @@
|
|||
"license.proPlus": "PRO+",
|
||||
"license.subscribe": "구독하기",
|
||||
"license.upgrade": "업그레이드",
|
||||
"license.currentPlan": "현재 구독 중",
|
||||
"license.proPlan": "Pro — ₩9,900/월",
|
||||
"license.proPlusPlan": "Pro+ — ₩29,900/월",
|
||||
"license.quotaUsed": "{{used}}/{{limit}} 사용",
|
||||
"license.quotaUnlimited": "무제한",
|
||||
"license.tierComparison": "등급 비교",
|
||||
"license.dailyUsage": "일일 사용량",
|
||||
"license.feature.dictation": "받아쓰기",
|
||||
|
|
@ -347,9 +282,6 @@
|
|||
"license.feature.localRag": "로컬 RAG",
|
||||
"license.feature.osAutomation": "OS 자동화",
|
||||
"license.pro.required": "PRO 필요",
|
||||
"license.proPlus.required": "PRO+ 필요",
|
||||
"license.included": "포함",
|
||||
"license.notIncluded": "미포함",
|
||||
"license.quotaExceeded.title": "오늘의 {{feature}}을(를) 모두 사용했습니다",
|
||||
"license.quotaExceeded.desc": "Pro로 업그레이드하면 무제한으로 사용할 수 있습니다",
|
||||
"license.tierRequired.title": "{{feature}}은(는) {{tier}} 기능입니다",
|
||||
|
|
@ -365,17 +297,13 @@
|
|||
"license.benefit.liveCaption": "실시간 자막",
|
||||
"license.benefit.unlimitedHistory": "히스토리 무제한 보존",
|
||||
"license.usageToday": "오늘 사용량",
|
||||
"license.perDay": "회/일",
|
||||
"license.unlimited": "무제한",
|
||||
"license.locked": "잠금",
|
||||
"license.nav": "라이선스",
|
||||
"license.signInRequired": "구독을 관리하려면 로그인하세요",
|
||||
"license.signInToUpgrade": "로그인 후 업그레이드",
|
||||
"license.subscriptionActive": "구독 활성",
|
||||
"license.subscriptionManage": "구독 관리",
|
||||
"license.upgradeToProDesc": "프리미엄 AI 모델, 클라우드 동기화 등 모든 기능을 사용하세요",
|
||||
"license.currentPlanActive": "현재 구독 중",
|
||||
"license.openBillingPage": "결제 페이지 열기",
|
||||
"license.premiumQuota": "프리미엄 쿼터",
|
||||
"license.modelHaiku": "Haiku",
|
||||
"license.modelSonnet": "Sonnet",
|
||||
|
|
@ -453,13 +381,6 @@
|
|||
"rag.sources": "참조 문서",
|
||||
"rag.adding": "추가 중...",
|
||||
"rag.parsing": "문서 분석 중...",
|
||||
"voiceAction.title": "음성 액션",
|
||||
"voiceAction.execute": "실행",
|
||||
"voiceAction.presets": "프리셋 명령",
|
||||
"voiceAction.history": "실행 이력",
|
||||
"voiceAction.noHistory": "실행 이력이 없습니다",
|
||||
"voiceAction.blocked": "차단됨 (위험 명령)",
|
||||
"voiceAction.executed": "실행됨",
|
||||
"settings.theme.nord": "Nord",
|
||||
"settings.theme.solarized": "Solarized",
|
||||
"settings.theme.catppuccin": "Catppuccin",
|
||||
|
|
@ -472,30 +393,16 @@
|
|||
"nav.meeting": "회의",
|
||||
"meeting.title": "회의 모드",
|
||||
"meeting.newMeeting": "새 회의",
|
||||
"meeting.startRecording": "녹음 시작",
|
||||
"meeting.stopRecording": "녹음 종료",
|
||||
"meeting.recording": "녹음 중",
|
||||
"meeting.processing": "회의록 생성 중...",
|
||||
"meeting.completed": "완료",
|
||||
"meeting.error": "오류",
|
||||
"meeting.elapsed": "경과 시간",
|
||||
"meeting.memoPlaceholder": "메모 입력 (Enter로 추가)",
|
||||
"meeting.memoAdded": "메모 추가됨",
|
||||
"meeting.noSessions": "회의 녹음이 없습니다",
|
||||
"meeting.noSessionsDesc": "새 회의 버튼을 눌러 녹음을 시작하세요",
|
||||
"meeting.summary": "요약",
|
||||
"meeting.decisions": "결정사항",
|
||||
"meeting.actionItems": "할 일",
|
||||
"meeting.timeline": "타임라인",
|
||||
"meeting.transcript": "원문 전사",
|
||||
"meeting.memos": "메모",
|
||||
"meeting.exportPdf": "PDF 내보내기",
|
||||
"meeting.exportMarkdown": "마크다운 내보내기",
|
||||
"meeting.delete": "삭제",
|
||||
"meeting.deleteConfirm": "이 회의록을 삭제하시겠습니까?",
|
||||
"meeting.backToList": "목록으로",
|
||||
"meeting.notificationTitle": "회의록 준비 완료",
|
||||
"meeting.notificationBody": "회의록이 생성되었습니다. 클릭하여 확인하세요.",
|
||||
"meeting.sessions": "{{count}}건",
|
||||
"meeting.duration": "{{minutes}}분",
|
||||
"meeting.editTitle": "제목 편집",
|
||||
|
|
@ -521,24 +428,13 @@
|
|||
"meeting.customPrompt": "커스텀 프롬프트",
|
||||
"meeting.templateName": "템플릿 이름",
|
||||
"meeting.templatePrompt": "AI 프롬프트",
|
||||
"meeting.templateSave": "템플릿 저장",
|
||||
"meeting.documentDeleted": "문서가 삭제되었습니다",
|
||||
"meeting.autoSaved": "자동 저장됨",
|
||||
"meeting.minutesTemplate": "회의록",
|
||||
"meeting.reportTemplate": "보고서",
|
||||
"meeting.ideaNoteTemplate": "아이디어 노트",
|
||||
"meeting.customTemplate": "커스텀",
|
||||
"meeting.downloadTranscript": "전사 다운로드",
|
||||
"meeting.polish": "AI 다듬기",
|
||||
"meeting.polishing": "AI가 전사를 다듬는 중...",
|
||||
"meeting.polished": "AI 다듬기 완료",
|
||||
"meeting.mindmapTemplate": "마인드맵",
|
||||
"meeting.chat": "AI 채팅",
|
||||
"meeting.chatPlaceholder": "회의 내용에 대해 질문하세요...",
|
||||
"meeting.chatSend": "전송",
|
||||
"meeting.chatClear": "대화 초기화",
|
||||
"meeting.copyToClipboard": "클립보드 복사",
|
||||
"meeting.copied": "복사됨",
|
||||
"meeting.chatCollapse": "채팅 접기",
|
||||
"meeting.chatExpand": "채팅 펼치기",
|
||||
"meeting.chatReasoning": "추론 중…",
|
||||
|
|
@ -549,8 +445,6 @@
|
|||
"meeting.startRecordingError": "녹음을 시작하지 못했습니다",
|
||||
"meeting.diarize": "화자 구분",
|
||||
"meeting.diarizing": "화자를 구분하는 중...",
|
||||
"meeting.diarizeComplete": "화자 구분 완료",
|
||||
"meeting.speaker": "화자",
|
||||
"settings.hfToken": "HuggingFace 토큰",
|
||||
"settings.hfTokenHint": "화자 구분을 위해 HuggingFace 토큰이 필요합니다",
|
||||
"settings.diarization": "화자 구분",
|
||||
|
|
@ -625,7 +519,6 @@
|
|||
"mobile.set.haptic": "Haptic Feedback",
|
||||
"mobile.set.logout": "LOGOUT",
|
||||
"mobile.set.logoutConfirm": "정말 로그아웃 하시겠습니까?",
|
||||
"mobile.set.connected": "CLOUD CONNECTED",
|
||||
|
||||
"mobile.login.title": "D3RO-VOICE",
|
||||
"mobile.login.subtitle": "PRECISION VOICE INTELLIGENCE",
|
||||
|
|
@ -640,11 +533,6 @@
|
|||
"mobile.login.signUp": "회원가입",
|
||||
"mobile.login.notConfigured": "Supabase가 설정되지 않았습니다. EXPO_PUBLIC_SUPABASE_URL을 .env에 설정하세요.",
|
||||
|
||||
"mobile.status.model": "CLOUD CLAUDE",
|
||||
"mobile.status.link": "PRECISION DATA LINK",
|
||||
|
||||
"date.today": "TODAY",
|
||||
"date.yesterday": "YESTERDAY",
|
||||
|
||||
"onboarding.title": "D3RO Voice 초기 설정",
|
||||
"onboarding.subtitle": "음성 어시스턴트 사용에 필요한 모델을 다운로드합니다.",
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue