refactor: remove Anki import/export and simplify card system
- Remove Anki apkg import/export functionality - Remove OCR feature module - Remove note and note-type modules - Simplify card/deck modules (remove spaced repetition complexity) - Update translator and dictionary features - Clean up unused translations and update i18n files - Simplify prisma schema
This commit is contained in:
@@ -53,7 +53,30 @@
|
||||
"totalCards": "총 카드",
|
||||
"createdAt": "생성일",
|
||||
"actions": "작업",
|
||||
"view": "보기"
|
||||
"view": "보기",
|
||||
"subtitle": "학습 덱 관리",
|
||||
"newDeck": "새 덱",
|
||||
"noDecksYet": "덱이 없습니다",
|
||||
"loading": "로딩 중...",
|
||||
"deckInfo": "ID: {id} · {totalCards}장",
|
||||
"enterDeckName": "덱 이름 입력:",
|
||||
"enterNewName": "새 이름 입력:",
|
||||
"confirmDelete": "삭제하려면 \"{name}\" 입력:",
|
||||
"public": "공개",
|
||||
"private": "비공개",
|
||||
"setPublic": "공개로 설정",
|
||||
"setPrivate": "비공개로 설정",
|
||||
"importApkg": "APKG 가져오기",
|
||||
"exportApkg": "APKG 내보내기",
|
||||
"clickToUpload": "클릭하여 업로드",
|
||||
"apkgFilesOnly": ".apkg 파일만",
|
||||
"parsing": "파싱 중...",
|
||||
"foundDecks": "{count}개 덱 발견",
|
||||
"back": "뒤로",
|
||||
"import": "가져오기",
|
||||
"importing": "가져오는 중...",
|
||||
"exportSuccess": "내보내기 성공",
|
||||
"goToDecks": "덱으로"
|
||||
},
|
||||
"folder_id": {
|
||||
"unauthorized": "이 폴더의 소유자가 아닙니다",
|
||||
@@ -106,29 +129,48 @@
|
||||
"edit": "편집",
|
||||
"delete": "삭제",
|
||||
"permissionDenied": "이 작업을 수행할 권한이 없습니다",
|
||||
"resetProgress": "초기화",
|
||||
"resetProgressTitle": "덱 진행 초기화",
|
||||
"resetProgressConfirm": "이 덱의 모든 카드가 새 상태로 초기화됩니다. 학습 진행 상황이 손실됩니다. 계속하시겠습니까?",
|
||||
"resetSuccess": "{count}개 카드 초기화 완료",
|
||||
"resetProgress": "진행 초기화",
|
||||
"resetProgressTitle": "학습 진행 초기화",
|
||||
"resetProgressConfirm": "이 덱의 학습 진행을 초기화하시겠습니까?",
|
||||
"resetSuccess": "초기화됨",
|
||||
"resetting": "초기화 중...",
|
||||
"cancel": "취소",
|
||||
"settings": "설정",
|
||||
"settingsTitle": "덱 설정",
|
||||
"newPerDay": "하루 새 카드 수",
|
||||
"newPerDayHint": "하루에 학습할 최대 새 카드 수",
|
||||
"revPerDay": "하루 복습 카드 수",
|
||||
"revPerDayHint": "하루에 복습할 최대 카드 수",
|
||||
"newPerDay": "일일 새 카드",
|
||||
"newPerDayHint": "매일 학습할 새 카드 수",
|
||||
"revPerDay": "일일 복습",
|
||||
"revPerDayHint": "매일 복습할 카드 수",
|
||||
"save": "저장",
|
||||
"saving": "저장 중...",
|
||||
"settingsSaved": "설정 저장됨",
|
||||
"todayNew": "새 카드",
|
||||
"todayReview": "복습",
|
||||
"todayNew": "오늘 새 카드",
|
||||
"todayReview": "오늘 복습",
|
||||
"todayLearning": "학습 중",
|
||||
"error": {
|
||||
"update": "이 카드를 업데이트할 권한이 없습니다.",
|
||||
"delete": "이 카드를 삭제할 권한이 없습니다.",
|
||||
"add": "이 덱에 카드를 추가할 권한이 없습니다."
|
||||
}
|
||||
"update": "업데이트 권한이 없습니다",
|
||||
"delete": "삭제 권한이 없습니다",
|
||||
"add": "추가 권한이 없습니다"
|
||||
},
|
||||
"ipaPlaceholder": "IPA 입력",
|
||||
"examplePlaceholder": "예문 입력",
|
||||
"wordRequired": "단어를 입력하세요",
|
||||
"definitionRequired": "정의를 입력하세요",
|
||||
"cardAdded": "카드 추가됨",
|
||||
"cardType": "카드 유형",
|
||||
"wordCard": "단어 카드",
|
||||
"phraseCard": "구문 카드",
|
||||
"sentenceCard": "문장 카드",
|
||||
"sentence": "문장",
|
||||
"sentencePlaceholder": "문장 입력",
|
||||
"wordPlaceholder": "단어 입력",
|
||||
"queryLang": "검색 언어",
|
||||
"meanings": "의미",
|
||||
"addMeaning": "의미 추가",
|
||||
"partOfSpeech": "품사",
|
||||
"deleteConfirm": "이 카드를 삭제하시겠습니까?",
|
||||
"cardDeleted": "카드 삭제됨",
|
||||
"cardUpdated": "카드 업데이트됨"
|
||||
},
|
||||
"home": {
|
||||
"title": "언어 배우기",
|
||||
@@ -235,10 +277,10 @@
|
||||
"memorize": {
|
||||
"deck_selector": {
|
||||
"selectDeck": "덱 선택",
|
||||
"noDecks": "덱을 찾을 수 없습니다",
|
||||
"noDecks": "덱이 없습니다",
|
||||
"goToDecks": "덱으로 이동",
|
||||
"noCards": "카드 없음",
|
||||
"new": "새 카드",
|
||||
"noCards": "카드가 없습니다",
|
||||
"new": "새로",
|
||||
"learning": "학습 중",
|
||||
"review": "복습",
|
||||
"due": "예정"
|
||||
@@ -246,44 +288,45 @@
|
||||
"review": {
|
||||
"loading": "로딩 중...",
|
||||
"backToDecks": "덱으로 돌아가기",
|
||||
"allDone": "완료!",
|
||||
"allDoneDesc": "모든 복습 카드를 완료했습니다.",
|
||||
"reviewedCount": "{count}장의 카드 복습함",
|
||||
"allDone": "모두 완료!",
|
||||
"allDoneDesc": "오늘의 학습을 완료했습니다!",
|
||||
"reviewedCount": "{count}장 복습 완료",
|
||||
"progress": "{current} / {total}",
|
||||
"nextReview": "다음 복습",
|
||||
"interval": "간격",
|
||||
"ease": "난이도",
|
||||
"lapses": "망각 횟수",
|
||||
"lapses": "실패 횟수",
|
||||
"showAnswer": "정답 보기",
|
||||
"again": "다시",
|
||||
"hard": "어려움",
|
||||
"good": "보통",
|
||||
"good": "좋음",
|
||||
"easy": "쉬움",
|
||||
"now": "지금",
|
||||
"lessThanMinute": "<1분",
|
||||
"inMinutes": "{count}분",
|
||||
"inHours": "{count}시간",
|
||||
"inDays": "{count}일",
|
||||
"inMonths": "{count}개월",
|
||||
"minutes": "<1분",
|
||||
"days": "{count}일",
|
||||
"months": "{count}개월",
|
||||
"lessThanMinute": "1분 미만",
|
||||
"inMinutes": "{n}분 후",
|
||||
"inHours": "{n}시간 후",
|
||||
"inDays": "{n}일 후",
|
||||
"inMonths": "{n}개월 후",
|
||||
"minutes": "분",
|
||||
"days": "일",
|
||||
"months": "개월",
|
||||
"minAbbr": "분",
|
||||
"dayAbbr": "일",
|
||||
"cardTypeNew": "새 카드",
|
||||
"cardTypeLearning": "학습 중",
|
||||
"cardTypeReview": "복습 중",
|
||||
"cardTypeRelearning": "재학습 중",
|
||||
"reverse": "반전",
|
||||
"cardTypeReview": "복습",
|
||||
"cardTypeRelearning": "재학습",
|
||||
"reverse": "반대로",
|
||||
"dictation": "받아쓰기",
|
||||
"clickToPlay": "클릭하여 재생",
|
||||
"yourAnswer": "당신의 답변",
|
||||
"yourAnswer": "당신의 답",
|
||||
"typeWhatYouHear": "들은 내용을 입력하세요",
|
||||
"correct": "정답",
|
||||
"incorrect": "오답"
|
||||
"correct": "정답!",
|
||||
"incorrect": "오답",
|
||||
"nextCard": "다음"
|
||||
},
|
||||
"page": {
|
||||
"unauthorized": "이 덱에 접근할 권한이 없습니다"
|
||||
"unauthorized": "권한이 없습니다"
|
||||
}
|
||||
},
|
||||
"navbar": {
|
||||
@@ -297,33 +340,49 @@
|
||||
"settings": "설정"
|
||||
},
|
||||
"ocr": {
|
||||
"title": "OCR 어휘 추출",
|
||||
"description": "교과서 어휘표 스크린샷 only어업로드하여 단어-정의 쌍 추출",
|
||||
"title": "OCR 인식",
|
||||
"description": "이미지에서 텍스트 추출",
|
||||
"uploadImage": "이미지 업로드",
|
||||
"dragDropHint": "이미지를 여기에 끌어다 놓거나 클릭하여 선택",
|
||||
"supportedFormats": "지원 형식: JPG, PNG, WebP",
|
||||
"dragDropHint": "드래그 앤 드롭",
|
||||
"supportedFormats": "지원 형식: JPG, PNG, WEBP",
|
||||
"selectDeck": "덱 선택",
|
||||
"chooseDeck": "추출된 쌍을 저장할 덱 선택",
|
||||
"noDecks": "덱이 없습니다. 먼저 덱을 만드세요.",
|
||||
"languageHints": "언어 힌트 (선택사항)",
|
||||
"sourceLanguageHint": "소스 언어 (예: 영어)",
|
||||
"targetLanguageHint": "대상/번역 언어 (예: 중국어)",
|
||||
"process": "이미지 처리",
|
||||
"processing": "처리中...",
|
||||
"chooseDeck": "덱 선택",
|
||||
"noDecks": "덱이 없습니다",
|
||||
"languageHints": "언어 힌트",
|
||||
"sourceLanguageHint": "원본 언어 힌트",
|
||||
"targetLanguageHint": "대상 언어 힌트",
|
||||
"process": "처리",
|
||||
"processing": "처리 중...",
|
||||
"preview": "미리보기",
|
||||
"extractedPairs": "추출된 쌍",
|
||||
"word": "단어",
|
||||
"definition": "정의",
|
||||
"pairsCount": "{count} 쌍 추출됨",
|
||||
"savePairs": "덱에 저장",
|
||||
"saving": "저장中...",
|
||||
"saved": "{deck}에 {count} 쌍 저장 완료",
|
||||
"pairsCount": "{count}쌍",
|
||||
"savePairs": "저장",
|
||||
"saving": "저장 중...",
|
||||
"saved": "저장됨",
|
||||
"saveFailed": "저장 실패",
|
||||
"noImage": "먼저 이미지를 업로드하세요",
|
||||
"noImage": "이미지를 업로드하세요",
|
||||
"noDeck": "덱을 선택하세요",
|
||||
"processingFailed": "OCR 처리 실패",
|
||||
"tryAgain": "더 선晰的图像로 다시 시도하세요",
|
||||
"detectedLanguages": "감지됨: {source} → {target}"
|
||||
"processingFailed": "처리 실패",
|
||||
"tryAgain": "재시도",
|
||||
"detectedLanguages": "감지된 언어",
|
||||
"uploadSection": "이미지 업로드",
|
||||
"dropOrClick": "드롭 또는 클릭",
|
||||
"changeImage": "이미지 변경",
|
||||
"invalidFileType": "잘못된 파일 형식",
|
||||
"deckSelection": "덱 선택",
|
||||
"sourceLanguagePlaceholder": "예: 영어",
|
||||
"targetLanguagePlaceholder": "예: 한국어",
|
||||
"processButton": "인식 시작",
|
||||
"resultsPreview": "결과 미리보기",
|
||||
"saveButton": "덱에 저장",
|
||||
"ocrSuccess": "OCR 성공",
|
||||
"ocrFailed": "OCR 실패",
|
||||
"savedToDeck": "덱에 저장됨",
|
||||
"noResultsToSave": "저장할 결과 없음",
|
||||
"detectedSourceLanguage": "감지된 원본 언어",
|
||||
"detectedTargetLanguage": "감지된 대상 언어"
|
||||
},
|
||||
"profile": {
|
||||
"myProfile": "내 프로필",
|
||||
@@ -364,12 +423,43 @@
|
||||
"videoUploadFailed": "비디오 업로드 실패",
|
||||
"subtitleUploadFailed": "자막 업로드 실패",
|
||||
"subtitleLoadSuccess": "자막 로드 성공",
|
||||
"subtitleLoadFailed": "자막 로드 실패"
|
||||
"subtitleLoadFailed": "자막 로드 실패",
|
||||
"settings": "설정",
|
||||
"shortcuts": "단축키",
|
||||
"keyboardShortcuts": "키보드 단축키",
|
||||
"playPause": "재생/일시정지",
|
||||
"autoPauseToggle": "자동 일시정지",
|
||||
"subtitleSettings": "자막 설정",
|
||||
"fontSize": "글꼴 크기",
|
||||
"textColor": "글자 색",
|
||||
"backgroundColor": "배경색",
|
||||
"position": "위치",
|
||||
"opacity": "불투명도",
|
||||
"top": "위",
|
||||
"center": "중앙",
|
||||
"bottom": "아래"
|
||||
},
|
||||
"text_speaker": {
|
||||
"generateIPA": "IPA 생성",
|
||||
"viewSavedItems": "저장된 항목 보기",
|
||||
"confirmDeleteAll": "모든 것을 삭제하시겠습니까? (Y/N)"
|
||||
"confirmDeleteAll": "모든 것을 삭제하시겠습니까? (Y/N)",
|
||||
"saved": "저장됨",
|
||||
"clearAll": "모두 지우기",
|
||||
"language": "언어",
|
||||
"customLanguage": "또는 언어 입력...",
|
||||
"languages": {
|
||||
"auto": "자동",
|
||||
"chinese": "중국어",
|
||||
"english": "영어",
|
||||
"japanese": "일본어",
|
||||
"korean": "한국어",
|
||||
"french": "프랑스어",
|
||||
"german": "독일어",
|
||||
"italian": "이탈리아어",
|
||||
"spanish": "스페인어",
|
||||
"portuguese": "포르투갈어",
|
||||
"russian": "러시아어"
|
||||
}
|
||||
},
|
||||
"translator": {
|
||||
"detectLanguage": "언어 감지",
|
||||
@@ -403,7 +493,19 @@
|
||||
"error": "폴더에 텍스트 쌍 추가 실패"
|
||||
},
|
||||
"autoSave": "자동 저장",
|
||||
"customLanguage": "또는 언어 입력..."
|
||||
"customLanguage": "또는 언어 입력...",
|
||||
"pleaseLogin": "카드를 저장하려면 로그인하세요",
|
||||
"pleaseCreateDeck": "먼저 덱을 만드세요",
|
||||
"noTranslationToSave": "저장할 번역이 없습니다",
|
||||
"noDeckSelected": "덱이 선택되지 않았습니다",
|
||||
"saveAsCard": "카드로 저장",
|
||||
"selectDeck": "덱 선택",
|
||||
"front": "앞면",
|
||||
"back": "뒷면",
|
||||
"cancel": "취소",
|
||||
"save": "저장",
|
||||
"savedToDeck": "{deckName}에 카드 저장됨",
|
||||
"saveFailed": "카드 저장 실패"
|
||||
},
|
||||
"dictionary": {
|
||||
"title": "사전",
|
||||
@@ -448,7 +550,9 @@
|
||||
"unfavorite": "즐겨찾기 해제",
|
||||
"pleaseLogin": "먼저 로그인해주세요",
|
||||
"sortByFavorites": "즐겨찾기순 정렬",
|
||||
"sortByFavoritesActive": "즐겨찾기순 정렬 해제"
|
||||
"sortByFavoritesActive": "즐겨찾기순 정렬 해제",
|
||||
"noDecks": "공개 덱 없음",
|
||||
"deckInfo": "{userName} · {totalCards}장"
|
||||
},
|
||||
"exploreDetail": {
|
||||
"title": "폴더 상세",
|
||||
@@ -462,7 +566,8 @@
|
||||
"unfavorite": "즐겨찾기 해제",
|
||||
"favorited": "즐겨찾기됨",
|
||||
"unfavorited": "즐겨찾기 해제됨",
|
||||
"pleaseLogin": "먼저 로그인해주세요"
|
||||
"pleaseLogin": "먼저 로그인해주세요",
|
||||
"totalCards": "총 {count}장"
|
||||
},
|
||||
"favorites": {
|
||||
"title": "내 즐겨찾기",
|
||||
@@ -507,6 +612,16 @@
|
||||
"createdAt": "생성일",
|
||||
"actions": "작업",
|
||||
"view": "보기"
|
||||
},
|
||||
"joined": "가입일",
|
||||
"decks": {
|
||||
"title": "내 덱",
|
||||
"noDecks": "덱이 없습니다",
|
||||
"deckName": "덱 이름",
|
||||
"totalCards": "총 카드",
|
||||
"createdAt": "생성일",
|
||||
"actions": "작업",
|
||||
"view": "보기"
|
||||
}
|
||||
},
|
||||
"follow": {
|
||||
|
||||
Reference in New Issue
Block a user