diff --git a/src/assets/locale/ko/chrome.json b/src/assets/locale/ko/chrome.json new file mode 100644 index 0000000..8f89fc1 --- /dev/null +++ b/src/assets/locale/ko/chrome.json @@ -0,0 +1,13 @@ +{ + "heading": "Chrome AI 설정", + "status": { + "label": "Page Assist에서 Chrome AI 지원을 활성화하거나 비활성화하기" + }, + "error": { + "browser_not_supported": "이 Chrome 버전은 Gemini Nano 모델을 지원하지 않습니다. 버전을 127 이상으로 업데이트해 주세요.", + "ai_not_supported": "설정 `chrome://flags/#prompt-api-for-gemini-nano`가 활성화되지 않았습니다. 활성화해 주세요.", + "ai_not_ready": "Gemini Nano가 아직 준비되지 않았습니다. Chrome 설정을 다시 확인해 주세요.", + "internal_error": "내부 오류가 발생했습니다. 나중에 다시 시도해 주세요." + }, + "errorDescription": "Chrome AI를 사용하려면 현재 Dev 및 Canary 채널에 있는 127 이상의 브라우저 버전이 필요합니다. 지원되는 버전을 다운로드한 후, 다음 단계를 따르세요:\n\n1. `chrome://flags/#prompt-api-for-gemini-nano`에 접속하여 '활성화'를 선택합니다.\n2. `chrome://flags/#optimization-guide-on-device-model`에 접속하여 'EnabledBypassPrefRequirement'를 선택합니다.\n3. `chrome://components`에 접속하여 'Optimization Guide On Device Model'을 검색한 후 '업데이트 확인'을 클릭합니다. 이를 통해 모델이 다운로드됩니다. 설정이 표시되지 않는 경우, 단계 1과 2를 반복하고 브라우저를 재시작해 주세요." +} diff --git a/src/assets/locale/ko/common.json b/src/assets/locale/ko/common.json new file mode 100644 index 0000000..908bb0d --- /dev/null +++ b/src/assets/locale/ko/common.json @@ -0,0 +1,115 @@ +{ + "pageAssist": "페이지 어시스트", + "selectAModel": "모델 선택", + "save": "저장", + "saved": "저장됨", + "cancel": "취소", + "retry": "재시도", + "share": { + "tooltip": { + "share": "공유" + }, + "modal": { + "title": "채팅 링크 공유" + }, + "form": { + "defaultValue": { + "name": "익명", + "title": "제목 없는 채팅" + }, + "title": { + "label": "채팅 제목", + "placeholder": "채팅 제목을 입력하세요", + "required": "채팅 제목은 필수 항목입니다" + }, + "name": { + "label": "이름", + "placeholder": "이름을 입력하세요", + "required": "이름은 필수 항목입니다" + }, + "btn": { + "save": "링크 생성", + "saving": "링크 생성 중..." + } + }, + "notification": { + "successGenerate": "링크가 클립보드에 복사되었습니다", + "failGenerate": "링크 생성에 실패했습니다" + } + }, + "copyToClipboard": "클립보드에 복사", + "webSearch": "웹 검색 중", + "regenerate": "재생성", + "edit": "편집", + "delete": "삭제", + "saveAndSubmit": "저장하고 제출", + "editMessage": { + "placeholder": "메시지를 입력하세요..." + }, + "submit": "제출", + "noData": "데이터가 없습니다", + "noHistory": "채팅 기록이 없습니다", + "chatWithCurrentPage": "현재 페이지에서 채팅", + "beta": "베타", + "tts": "TTS", + "currentChatModelSettings": "현재 채팅 모델 설정", + "modelSettings": { + "label": "모델 설정", + "description": "모든 채팅에 대해 글로벌 모델 옵션을 설정합니다", + "form": { + "keepAlive": { + "label": "Keep Alive", + "help": "요청 후 모델이 메모리에 유지되는 시간을 설정합니다 (기본값: 5분)", + "placeholder": "Keep Alive 기간을 입력하세요 (예: 5분, 10분, 1시간)" + }, + "temperature": { + "label": "온도", + "placeholder": "온도 값을 입력하세요 (예: 0.7, 1.0)" + }, + "numCtx": { + "label": "컨텍스트 수", + "placeholder": "컨텍스트 수를 입력하세요 (기본값: 2048)" + }, + "seed": { + "label": "시드", + "placeholder": "시드 값을 입력하세요 (예: 1234)", + "help": "모델 출력의 재현성" + }, + "topK": { + "label": "Top K", + "placeholder": "Top K 값을 입력하세요 (예: 40, 100)" + }, + "topP": { + "label": "Top P", + "placeholder": "Top P 값을 입력하세요 (예: 0.9, 0.95)" + }, + "numGpu": { + "label": "GPU 수", + "placeholder": "GPU에 할당할 레이어 수를 입력하세요" + }, + "systemPrompt": { + "label": "임시 시스템 프롬프트", + "placeholder": "시스템 프롬프트를 입력하세요", + "help": "현재 채팅에서 시스템 프롬프트를 빠르게 설정하는 방법이며, 선택된 시스템 프롬프트가 있을 경우 이를 덮어씁니다." + } + }, + "advanced": "기타 모델 설정" + }, + "copilot": { + "summary": "요약", + "explain": "설명", + "rephrase": "다르게 표현", + "translate": "번역" + }, + "citations": "인용", + "downloadCode": "코드 다운로드", + "date": { + "pinned": "고정됨", + "today": "오늘", + "yesterday": "어제", + "last7Days": "지난 7일", + "older": "그 이전" + }, + "pin": "고정", + "unpin": "고정 해제" +} diff --git a/src/assets/locale/ko/knowledge.json b/src/assets/locale/ko/knowledge.json new file mode 100644 index 0000000..1bf8536 --- /dev/null +++ b/src/assets/locale/ko/knowledge.json @@ -0,0 +1,40 @@ +{ + "addBtn": "새 지식 추가", + "columns": { + "title": "제목", + "status": "상태", + "embeddings": "임베딩 모델", + "createdAt": "생성일", + "action": "작업" + }, + "expandedColumns": { + "name": "이름" + }, + "confirm": { + "delete": "이 지식을 삭제하시겠습니까?" + }, + "deleteSuccess": "지식이 정상적으로 삭제되었습니다", + "status": { + "pending": "대기 중", + "finished": "완료", + "processing": "처리 중", + "failed": "실패" + }, + "addKnowledge": "지식 추가", + "form": { + "title": { + "label": "지식 제목", + "placeholder": "지식 제목을 입력하세요", + "required": "지식 제목은 필수 항목입니다" + }, + "uploadFile": { + "label": "파일 업로드", + "uploadText": "파일을 여기에 드래그 앤 드롭하거나 클릭하여 업로드하세요", + "uploadHint": "지원되는 파일 형식: .pdf, .csv, .txt", + "required": "파일은 필수 항목입니다" + }, + "submit": "제출", + "success": "지식이 정상적으로 추가되었습니다" + }, + "noEmbeddingModel": "먼저 RAG 설정 페이지에서 임베딩 모델을 추가해 주세요" +} diff --git a/src/assets/locale/ko/openai.json b/src/assets/locale/ko/openai.json new file mode 100644 index 0000000..13bc431 --- /dev/null +++ b/src/assets/locale/ko/openai.json @@ -0,0 +1,90 @@ +{ + "settings": "OpenAI 호환 API", + "heading": "OpenAI 호환 API", + "subheading": "여기에서 OpenAI API 호환 공급자를 관리하고 설정할 수 있습니다.", + "addBtn": "공급자 추가", + "table": { + "name": "공급자 이름", + "baseUrl": "기본 URL", + "actions": "작업" + }, + "modal": { + "titleAdd": "새 공급자 추가", + "name": { + "label": "공급자 이름", + "required": "공급자 이름은 필수 항목입니다.", + "placeholder": "공급자 이름 입력" + }, + "baseUrl": { + "label": "기본 URL", + "help": "OpenAI API 공급자의 기본 URL 예시: (http://localhost:1234/v1)", + "required": "기본 URL은 필수 항목입니다.", + "placeholder": "기본 URL 입력" + }, + "apiKey": { + "label": "API 키", + "required": "API 키는 필수 항목입니다.", + "placeholder": "API 키 입력" + }, + "submit": "저장", + "update": "업데이트", + "deleteConfirm": "이 공급자를 삭제하시겠습니까?", + "model": { + "title": "모델 목록", + "subheading": "이 공급자에서 사용하고자 하는 챗 모델을 선택하세요.", + "success": "새로운 모델이 정상적으로 추가되었습니다." + }, + "tipLMStudio": "Page Assist는 LM Studio에 로드된 모델을 자동으로 가져옵니다. 수동 추가가 필요하지 않습니다." + }, + "addSuccess": "공급자가 정상적으로 추가되었습니다.", + "deleteSuccess": "공급자가 정상적으로 삭제되었습니다.", + "updateSuccess": "공급자가 정상적으로 업데이트되었습니다.", + "delete": "삭제", + "edit": "편집", + "newModel": "공급자에 모델 추가", + "noNewModel": "LMStudio의 경우 동적으로 가져옵니다. 수동 추가는 필요하지 않습니다.", + "searchModel": "모델 검색", + "selectAll": "모두 선택", + "save": "저장", + "saving": "저장 중...", + "manageModels": { + "columns": { + "name": "모델 이름", + "model_type": "모델 타입", + "model_id": "모델 ID", + "provider": "공급자 이름", + "actions": "작업" + }, + "tooltip": { + "delete": "삭제" + }, + "confirm": { + "delete": "이 모델을 삭제하시겠습니까?" + }, + "modal": { + "title": "사용자 정의 모델 추가", + "form": { + "name": { + "label": "모델 ID", + "placeholder": "llama3.2", + "required": "모델 ID는 필수 항목입니다." + }, + "provider": { + "label": "공급자", + "placeholder": "공급자 선택", + "required": "공급자는 필수 항목입니다." + }, + "type": { + "label": "모델 타입" + } + } + } + }, + "noModelFound": "모델을 찾을 수 없습니다. 올바른 기본 URL과 API 키를 가진 공급자가 추가되었는지 확인하세요.", + "radio": { + "chat": "챗 모델", + "embedding": "임베딩 모델", + "chatInfo": "는 챗 완료 및 대화 생성에 사용됩니다", + "embeddingInfo": "는 RAG 및 기타 의미 검색 관련 작업에 사용됩니다." + } +} diff --git a/src/assets/locale/ko/option.json b/src/assets/locale/ko/option.json new file mode 100644 index 0000000..21a5048 --- /dev/null +++ b/src/assets/locale/ko/option.json @@ -0,0 +1,12 @@ +{ + "newChat": "새 채팅", + "selectAPrompt": "프롬프트 선택", + "githubRepository": "GitHub 리포지토리", + "settings": "설정", + "sidebarTitle": "채팅 기록", + "error": "오류", + "somethingWentWrong": "문제가 발생했습니다", + "validationSelectModel": "계속하려면 모델을 선택하세요", + "deleteHistoryConfirmation": "이 기록을 삭제하시겠습니까?", + "editHistoryTitle": "새 제목 입력" +} diff --git a/src/assets/locale/ko/playground.json b/src/assets/locale/ko/playground.json new file mode 100644 index 0000000..082ad5d --- /dev/null +++ b/src/assets/locale/ko/playground.json @@ -0,0 +1,29 @@ +{ + "ollamaState": { + "searching": "Ollama 검색 중 🦙", + "running": "Ollama 실행 중 🦙", + "notRunning": "Ollama에 연결할 수 없습니다 🦙", + "connectionError": "연결 오류가 발생한 것 같습니다. 문제 해결에 대한 자세한 내용은 문서를 참조하세요." + }, + "formError": { + "noModel": "모델을 선택하세요", + "noEmbeddingModel": "설정 > RAG 페이지에서 임베딩 모델을 설정하세요" + }, + "form": { + "textarea": { + "placeholder": "메시지를 입력하세요..." + }, + "webSearch": { + "on": "켜짐", + "off": "꺼짐" + } + }, + "tooltip": { + "searchInternet": "인터넷 검색", + "speechToText": "음성 입력", + "uploadImage": "이미지 업로드", + "stopStreaming": "스트리밍 중지", + "knowledge": "지식" + }, + "sendWhenEnter": "Enter 키를 누르면 전송" +} diff --git a/src/assets/locale/ko/settings.json b/src/assets/locale/ko/settings.json new file mode 100644 index 0000000..072c7f6 --- /dev/null +++ b/src/assets/locale/ko/settings.json @@ -0,0 +1,345 @@ +{ + "generalSettings": { + "title": "일반 설정", + "settings": { + "heading": "웹 UI 설정", + "speechRecognitionLang": { + "label": "음성 인식 언어", + "placeholder": "언어 선택" + }, + "language": { + "label": "언어", + "placeholder": "언어 선택" + }, + "darkMode": { + "label": "테마 변경", + "options": { + "light": "라이트", + "dark": "다크" + } + }, + "searchMode": { + "label": "간편 인터넷 검색 실행" + }, + "copilotResumeLastChat": { + "label": "사이드 패널을 열 때 마지막 채팅 재개 (Copilot)" + }, + "hideCurrentChatModelSettings": { + "label": "현재 채팅 모델 설정 숨기기" + }, + "restoreLastChatModel": { + "label": "이전 채팅에서 마지막 사용한 모델 복원" + }, + "sendNotificationAfterIndexing": { + "label": "지식 베이스 처리 완료 후 알림 전송" + }, + "generateTitle": { + "label": "AI로 제목 생성" + } + }, + "sidepanelRag": { + "heading": "웹사이트와의 Copilot 채팅 설정", + "ragEnabled": { + "label": "벡터 임베딩을 사용하여 웹사이트와 채팅" + }, + "maxWebsiteContext": { + "label": "일반 모드 웹사이트 콘텐츠 크기", + "placeholder": "콘텐츠 크기 (기본값 4028)" + } + }, + "webSearch": { + "heading": "웹 검색 관리", + "searchMode": { + "label": "간편한 인터넷 검색 실행" + }, + "provider": { + "label": "검색 엔진", + "placeholder": "검색 엔진 선택" + }, + "totalSearchResults": { + "label": "총 검색 결과", + "placeholder": "총 검색 결과 입력" + }, + "visitSpecificWebsite": { + "label": "메시지에 언급된 웹사이트 방문" + } + }, + "system": { + "heading": "시스템 설정", + "deleteChatHistory": { + "label": "채팅 기록 삭제", + "button": "삭제", + "confirm": "채팅 기록을 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다." + }, + "export": { + "label": "채팅 기록, 지식 베이스, 프롬프트 내보내기", + "button": "데이터 내보내기", + "success": "내보내기 성공" + }, + "import": { + "label": "채팅 기록, 지식 베이스, 프롬프트 가져오기", + "button": "데이터 가져오기", + "success": "가져오기 성공", + "error": "가져오기 오류" + } + }, + "tts": { + "heading": "텍스트 음성 변환 설정", + "ttsEnabled": { + "label": "텍스트 음성 변환 활성화" + }, + "ttsProvider": { + "label": "텍스트 음성 변환 제공자", + "placeholder": "제공자 선택" + }, + "ttsVoice": { + "label": "텍스트 음성 변환 음성", + "placeholder": "음성 선택" + }, + "ssmlEnabled": { + "label": "SSML (Speech Synthesis Markup Language) 활성화" + } + } + }, + "manageModels": { + "title": "모델 관리", + "addBtn": "새 모델 추가", + "columns": { + "name": "이름", + "digest": "다이제스트", + "modifiedAt": "수정 일시", + "size": "크기", + "actions": "동작" + }, + "expandedColumns": { + "parentModel": "상위 모델", + "format": "형식", + "family": "패밀리", + "parameterSize": "파라미터 크기", + "quantizationLevel": "양자화 수준" + }, + "tooltip": { + "delete": "모델 삭제", + "repull": "모델 다시 가져오기" + }, + "confirm": { + "delete": "이 모델을 정말 삭제하시겠습니까?", + "repull": "이 모델을 정말 다시 가져오시겠습니까?" + }, + "modal": { + "title": "새 모델 추가", + "placeholder": "모델 이름 입력", + "pull": "모델 가져오기" + }, + "notification": { + "pullModel": "모델 가져오는 중", + "pullModelDescription": "{{modelName}} 모델을 가져오는 중입니다. 자세한 내용은 확장 기능 아이콘을 확인하세요.", + "success": "성공", + "error": "오류", + "successDescription": "모델 가져오기가 완료되었습니다", + "successDeleteDescription": "모델 삭제가 완료되었습니다", + "someError": "문제가 발생했습니다. 나중에 다시 시도해 주세요." + } + }, + "managePrompts": { + "title": "프롬프트 관리", + "addBtn": "새 프롬프트 추가", + "option1": "일반", + "option2": "RAG", + "questionPrompt": "질문 프롬프트", + "columns": { + "title": "제목", + "prompt": "프롬프트", + "type": "프롬프트 유형", + "actions": "동작" + }, + "systemPrompt": "시스템 프롬프트", + "quickPrompt": "퀵 프롬프트", + "tooltip": { + "delete": "프롬프트 삭제", + "edit": "프롬프트 수정" + }, + "confirm": { + "delete": "이 프롬프트를 정말 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다." + }, + "modal": { + "addTitle": "새 프롬프트 추가", + "editTitle": "프롬프트 수정" + }, + "segmented": { + "custom": "커스텀 프롬프트", + "copilot": "Copilot 프롬프트" + }, + "form": { + "title": { + "label": "제목", + "placeholder": "훌륭한 프롬프트", + "required": "제목을 입력하세요" + }, + "prompt": { + "label": "프롬프트", + "placeholder": "프롬프트 입력", + "required": "프롬프트를 입력하세요", + "help": "프롬프트 내에서 {key}를 변수로 사용할 수 있습니다.", + "missingTextPlaceholder": "프롬프트에 {text} 변수가 없습니다. 추가해 주세요." + }, + "isSystem": { + "label": "시스템 프롬프트" + }, + "btnSave": { + "saving": "프롬프트 추가 중...", + "save": "프롬프트 추가" + }, + "btnEdit": { + "saving": "프롬프트 업데이트 중...", + "save": "프롬프트 업데이트" + } + }, + "notification": { + "addSuccess": "프롬프트가 추가되었습니다", + "addSuccessDesc": "프롬프트가 정상적으로 추가되었습니다", + "error": "오류", + "someError": "문제가 발생했습니다. 나중에 다시 시도해 주세요.", + "updatedSuccess": "프롬프트가 업데이트되었습니다", + "updatedSuccessDesc": "프롬프트가 정상적으로 업데이트되었습니다", + "deletedSuccess": "프롬프트가 삭제되었습니다", + "deletedSuccessDesc": "프롬프트가 정상적으로 삭제되었습니다" + } + }, + "manageShare": { + "title": "공유 관리", + "heading": "페이지 공유 URL 설정", + "form": { + "url": { + "label": "페이지 공유 URL", + "placeholder": "페이지 공유 URL 입력", + "required": "페이지 공유 URL을 입력해 주세요!", + "help": "개인정보 보호를 위해 페이지 공유를 자체 호스팅하고, 해당 URL을 여기에 입력할 수 있습니다. 자세히 보기" + } + }, + "webshare": { + "heading": "웹 공유", + "columns": { + "title": "제목", + "url": "URL", + "actions": "동작" + }, + "tooltip": { + "delete": "공유 삭제" + }, + "confirm": { + "delete": "이 공유를 정말 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다." + }, + "label": "페이지 공유 관리", + "description": "페이지 공유 기능을 활성화 또는 비활성화" + }, + "notification": { + "pageShareSuccess": "페이지 공유 URL이 정상적으로 업데이트되었습니다", + "someError": "문제가 발생했습니다. 나중에 다시 시도해 주세요.", + "webShareDeleteSuccess": "웹 공유가 정상적으로 삭제되었습니다" + } + }, + "ollamaSettings": { + "title": "Ollama 설정", + "heading": "Ollama 설정하기", + "settings": { + "ollamaUrl": { + "label": "Ollama URL", + "placeholder": "Ollama URL 입력" + }, + "advanced": { + "label": "Ollama URL 고급 설정", + "urlRewriteEnabled": { + "label": "사용자 지정 Origin URL 활성화 또는 비활성화" + }, + "rewriteUrl": { + "label": "사용자 지정 Origin URL", + "placeholder": "사용자 지정 Origin URL 입력" + }, + "headers": { + "label": "사용자 지정 헤더", + "add": "헤더 추가", + "key": { + "label": "헤더 키", + "placeholder": "인증" + }, + "value": { + "label": "헤더 값", + "placeholder": "베어러 토큰" + } + }, + "help": "Page Assist에서 Ollama 연결에 문제가 있는 경우 사용자 지정 Origin URL을 설정할 수 있습니다. 설정에 대한 자세한 내용은 여기를 클릭하세요." + } + } + }, + "manageSearch": { + "title": "웹 검색 관리", + "heading": "웹 검색 설정하기" + }, + "about": { + "title": "소개", + "heading": "소개", + "chromeVersion": "Page Assist 버전", + "ollamaVersion": "Ollama 버전", + "support": "Page Assist 프로젝트는 다음 플랫폼에서 기부나 후원을 통해 지원할 수 있습니다:", + "koFi": "Ko-fi로 후원하기", + "githubSponsor": "GitHub에서 후원하기", + "githubRepo": "GitHub 저장소" + }, + "manageKnowledge": { + "title": "지식 관리", + "heading": "지식 베이스 구성하기" + }, + "rag": { + "title": "RAG 설정", + "ragSettings": { + "label": "RAG 설정", + "model": { + "label": "임베딩 모델", + "required": "모델을 선택해주세요", + "help": "`nomic-embed-text`와 같은 임베딩 모델 사용을 강력히 권장합니다.", + "placeholder": "모델 선택" + }, + "chunkSize": { + "label": "청크 크기", + "placeholder": "청크 크기 입력", + "required": "청크 크기를 입력해주세요" + }, + "chunkOverlap": { + "label": "청크 오버랩", + "placeholder": "청크 오버랩 입력", + "required": "청크 오버랩을 입력해주세요" + }, + "totalFilePerKB": { + "label": "지식 베이스 기본 파일 업로드 제한", + "placeholder": "기본 파일 업로드 제한 입력 (예: 10)", + "required": "기본 파일 업로드 제한을 입력해주세요" + }, + "noOfRetrievedDocs": { + "label": "검색 문서 수", + "placeholder": "검색 문서 수 입력", + "required": "검색 문서 수를 입력해주세요" + } + }, + "prompt": { + "label": "RAG 프롬프트 설정", + "option1": "일반", + "option2": "웹", + "alert": "여기서 시스템 프롬프트를 설정하는 것은 더 이상 권장되지 않습니다. 프롬프트 추가 및 편집은 '프롬프트 관리' 섹션을 이용해주세요. 이 섹션은 향후 릴리스에서 제거될 예정입니다.", + "systemPrompt": "시스템 프롬프트", + "systemPromptPlaceholder": "시스템 프롬프트 입력", + "webSearchPrompt": "웹 검색 프롬프트", + "webSearchPromptHelp": "프롬프트에서 `{search_results}`를 제거하지 마세요.", + "webSearchPromptError": "웹 검색 프롬프트를 입력해주세요", + "webSearchPromptPlaceholder": "웹 검색 프롬프트 입력", + "webSearchFollowUpPrompt": "웹 검색 후속 프롬프트", + "webSearchFollowUpPromptHelp": "프롬프트에서 `{chat_history}`와 `{question}`를 제거하지 마세요.", + "webSearchFollowUpPromptError": "웹 검색 후속 프롬프트를 입력해주세요!", + "webSearchFollowUpPromptPlaceholder": "웹 검색 후속 프롬프트" + } + }, + "chromeAiSettings": { + "title": "Chrome AI 설정" + } +} + diff --git a/src/assets/locale/ko/sidepanel.json b/src/assets/locale/ko/sidepanel.json new file mode 100644 index 0000000..b7a5eea --- /dev/null +++ b/src/assets/locale/ko/sidepanel.json @@ -0,0 +1,5 @@ +{ + "tooltip": { + "embed": "페이지를 임베드하는 데 몇 분이 걸릴 수 있습니다. 잠시만 기다려 주세요..." + } +}