| @@ -123,7 +123,7 @@ export const languages = [ | |||
| value: 'ko-KR', | |||
| name: '한국어(대한민국)', | |||
| example: '안녕, Dify!', | |||
| supported: false, | |||
| supported: true, | |||
| }, | |||
| { | |||
| value: 'ru-RU', | |||
| @@ -0,0 +1,87 @@ | |||
| const translation = { | |||
| title: '어노테이션', | |||
| name: '어노테이션 답변', | |||
| editBy: '{{author}} 님이 편집한 답변', | |||
| noData: { | |||
| title: '어노테이션이 없습니다', | |||
| description: '여기에서는 앱 디버깅 중에 어노테이션을 편집하거나 일괄적으로 어노테이션을 가져와 고품질의 응답을 생성할 수 있습니다.', | |||
| }, | |||
| table: { | |||
| header: { | |||
| question: '질문', | |||
| answer: '답변', | |||
| createdAt: '생성 날짜', | |||
| hits: '조회수', | |||
| actions: '액션', | |||
| addAnnotation: '어노테이션 추가', | |||
| bulkImport: '일괄 가져오기', | |||
| bulkExport: '일괄 내보내기', | |||
| clearAll: '모든 어노테이션 지우기', | |||
| }, | |||
| }, | |||
| editModal: { | |||
| title: '어노테이션 답변 편집', | |||
| queryName: '사용자 쿼리', | |||
| answerName: '스토리텔러 봇', | |||
| yourAnswer: '당신의 답변', | |||
| answerPlaceholder: '여기에 답변을 입력하세요', | |||
| yourQuery: '당신의 쿼리', | |||
| queryPlaceholder: '여기에 쿼리를 입력하세요', | |||
| removeThisCache: '이 어노테이션 삭제', | |||
| createdAt: '생성 날짜', | |||
| }, | |||
| addModal: { | |||
| title: '어노테이션 답변 추가', | |||
| queryName: '질문', | |||
| answerName: '답변', | |||
| answerPlaceholder: '여기에 답변을 입력하세요', | |||
| queryPlaceholder: '여기에 질문을 입력하세요', | |||
| createNext: '다른 어노테이션이 달린 응답 추가', | |||
| }, | |||
| batchModal: { | |||
| title: '일괄 가져오기', | |||
| csvUploadTitle: 'CSV 파일을 여기에 드래그 앤 드롭하거나,', | |||
| browse: '찾아보기', | |||
| tip: 'CSV 파일은 다음 구조를 따라야 합니다:', | |||
| question: '질문', | |||
| answer: '답변', | |||
| contentTitle: '덩어리 내용', | |||
| content: '내용', | |||
| template: '여기서 템플릿 다운로드', | |||
| cancel: '취소', | |||
| run: '일괄 실행', | |||
| runError: '일괄 실행 실패', | |||
| processing: '일괄 처리 중', | |||
| completed: '가져오기 완료', | |||
| error: '가져오기 오류', | |||
| ok: '확인', | |||
| }, | |||
| errorMessage: { | |||
| answerRequired: '답변은 필수입니다', | |||
| queryRequired: '질문은 필수입니다', | |||
| }, | |||
| viewModal: { | |||
| annotatedResponse: '어노테이션 답변', | |||
| hitHistory: '조회 기록', | |||
| hit: '조회', | |||
| hits: '조회수', | |||
| noHitHistory: '조회 기록이 없습니다', | |||
| }, | |||
| hitHistoryTable: { | |||
| query: '쿼리', | |||
| match: '일치', | |||
| response: '응답', | |||
| source: '소스', | |||
| score: '점수', | |||
| time: '시간', | |||
| }, | |||
| initSetup: { | |||
| title: '어노테이션 답변 초기 설정', | |||
| configTitle: '어노테이션 답변 설정', | |||
| confirmBtn: '저장하고 활성화하기', | |||
| configConfirmBtn: '저장', | |||
| }, | |||
| embeddingModelSwitchTip: '어노테이션 텍스트의 임베딩 모델입니다. 모델을 변경하면 다시 임베딩되며 추가 비용이 발생합니다.', | |||
| } | |||
| export default translation | |||
| @@ -0,0 +1,85 @@ | |||
| const translation = { | |||
| apiServer: 'API 서버', | |||
| apiKey: 'API 키', | |||
| status: '상태', | |||
| disabled: '비활성화됨', | |||
| ok: '서비스 중', | |||
| copy: '복사', | |||
| copied: '복사 완료', | |||
| play: '실행', | |||
| pause: '일시 정지', | |||
| playing: '실행 중', | |||
| loading: '로드 중', | |||
| merMaind: { | |||
| rerender: '다시 렌더링', | |||
| }, | |||
| never: '없음', | |||
| apiKeyModal: { | |||
| apiSecretKey: 'API 비밀 키', | |||
| apiSecretKeyTips: 'API 키를 보호하여 API의 남용을 방지하십시오. 프런트엔드 코드에서 평문으로 사용하지 마세요. :)', | |||
| createNewSecretKey: '새로운 비밀 키 생성', | |||
| secretKey: '비밀 키', | |||
| created: '생성 날짜', | |||
| lastUsed: '최종 사용 날짜', | |||
| generateTips: '이 키를 안전하고 접근 가능한 위치에 보관하십시오.', | |||
| }, | |||
| actionMsg: { | |||
| deleteConfirmTitle: '이 비밀 키를 삭제하시겠습니까?', | |||
| deleteConfirmTips: '이 작업은 취소할 수 없습니다.', | |||
| ok: '확인', | |||
| }, | |||
| completionMode: { | |||
| title: '완성 모드 API', | |||
| info: '문서, 요약, 번역 등 고품질 텍스트 생성을 위해 사용자 입력을 사용하는 완성 메시지 API를 사용합니다. 텍스트 생성은 Dify Prompt Engineering에서 설정한 모델 매개변수와 프롬프트 템플릿에 의존합니다.', | |||
| createCompletionApi: '완성 메시지 생성', | |||
| createCompletionApiTip: '질의 응답 모드를 지원하기 위해 완성 메시지를 생성합니다.', | |||
| inputsTips: | |||
| '(선택 사항) Prompt Eng의 변수에 해당하는 키-값 쌍으로 사용자 입력 필드를 제공합니다. 키는 변수 이름이고 값은 매개변수 값입니다. 필드 유형이 Select인 경우 전송되는 값은 미리 설정된 선택 사항 중 하나여야 합니다.', | |||
| queryTips: '사용자 입력 텍스트 내용.', | |||
| blocking: '블로킹 유형으로 실행이 완료되고 결과가 반환될 때까지 대기합니다. (처리가 오래 걸리면 요청이 중단될 수 있습니다)', | |||
| streaming: '스트리밍 반환. SSE(Server-Sent Events)를 기반으로 하는 스트리밍 반환 구현.', | |||
| messageFeedbackApi: '메시지 피드백(좋아요)', | |||
| messageFeedbackApiTip: '엔드 사용자 대신 수신된 메시지를 "좋아요" 또는 "좋아요"로 평가합니다. 이 데이터는 로그 및 주석 페이지에 표시되며 향후 모델 세부 조정에 사용됩니다.', | |||
| messageIDTip: '메시지 ID', | |||
| ratingTip: '좋아요 또는 좋아요, null은 취소', | |||
| parametersApi: '애플리케이션 매개변수 정보 가져오기', | |||
| parametersApiTip: '변수 이름, 필드 이름, 유형, 기본값을 포함한 설정된 입력 매개변수를 가져옵니다. 일반적으로 이러한 필드는 양식에 표시하거나 클라이언트 로드 후에 기본값을 입력하는 데 사용됩니다.', | |||
| }, | |||
| chatMode: { | |||
| title: '채팅 모드 API', | |||
| info: '질의 응답 형식을 사용하는 다목적 대화형 응용 프로그램에는 채팅 메시지 API를 호출하여 대화를 시작합니다. 반환된 conversation_id를 전달하여 계속된 대화를 유지합니다. 응답 매개변수 및 템플릿은 Dify Prompt Eng의 설정에 의존합니다.', | |||
| createChatApi: '채팅 메시지 생성', | |||
| createChatApiTip: '새로운 대화 메시지를 생성하거나 기존 대화를 계속합니다.', | |||
| inputsTips: | |||
| '(선택 사항) Prompt Eng의 변수에 해당하는 키-값 쌍으로 사용자 입력 필드를 제공합니다. 키는 변수 이름이고 값은 매개변수 값입니다. 필드 유형이 Select인 경우 전송되는 값은 미리 설정된 선택 사항 중 하나여야 합니다.', | |||
| queryTips: '사용자 입력/질문 내용', | |||
| blocking: '블로킹 유형으로 실행이 완료되고 결과가 반환될 때까지 대기합니다. (처리가 오래 걸리면 요청이 중단될 수 있습니다)', | |||
| streaming: '스트리밍 반환. SSE(Server-Sent Events)를 기반으로 하는 스트리밍 반환 구현.', | |||
| conversationIdTip: '(선택 사항) 대화 ID: 처음 대화의 경우 비워두고, 계속된 경우 컨텍스트에서 conversation_id를 전달합니다.', | |||
| messageFeedbackApi: '메시지 피드백(좋아요)', | |||
| messageFeedbackApiTip: '엔드 사용자 대신 수신된 메시지를 "좋아요" 또는 "좋아요"로 평가합니다. 이 데이터는 로그 및 주석 페이지에 표시되며 향후 모델 세부 조정에 사용됩니다.', | |||
| messageIDTip: '메시지 ID', | |||
| ratingTip: '좋아요 또는 좋아요, null은 취소', | |||
| chatMsgHistoryApi: '채팅 메시지 기록 가져오기', | |||
| chatMsgHistoryApiTip: '첫 번째 페이지는 최신의 "limit" 바를 반환합니다. 역순입니다.', | |||
| chatMsgHistoryConversationIdTip: '대화 ID', | |||
| chatMsgHistoryFirstId: '현재 페이지의 첫 번째 채팅 레코드의 ID. 기본값은 없음입니다.', | |||
| chatMsgHistoryLimit: '한 번에 반환되는 채팅 수', | |||
| conversationsListApi: '대화 목록 가져오기', | |||
| conversationsListApiTip: '현재 사용자의 세션 목록을 가져옵니다. 기본적으로 최근 20개의 세션이 반환됩니다.', | |||
| conversationsListFirstIdTip: '현재 페이지의 마지막 레코드의 ID, 기본값은 없음입니다.', | |||
| conversationsListLimitTip: '한 번에 반환되는 채팅 수', | |||
| conversationRenamingApi: '대화 이름 변경', | |||
| conversationRenamingApiTip: '대화 이름을 변경합니다. 이름은 멀티 세션 클라이언트 인터페이스에 표시됩니다.', | |||
| conversationRenamingNameTip: '새 이름', | |||
| parametersApi: '애플리케이션 매개변수 정보 가져오기', | |||
| parametersApiTip: '변수 이름, 필드 이름, 유형, 기본값을 포함한 설정된 입력 매개변수를 가져옵니다. 일반적으로 이러한 필드는 양식에 표시하거나 클라이언트 로드 후에 기본값을 입력하는 데 사용됩니다.', | |||
| }, | |||
| develop: { | |||
| requestBody: '요청 본문', | |||
| pathParams: '경로 매개변수', | |||
| query: '쿼리', | |||
| }, | |||
| } | |||
| export default translation | |||
| @@ -0,0 +1,415 @@ | |||
| const translation = { | |||
| pageTitle: { | |||
| line1: '프롬프트', | |||
| line2: '엔지니어링', | |||
| }, | |||
| orchestrate: '오케스트레이션', | |||
| promptMode: { | |||
| simple: '전문가 모드로 전환하여 전체 프롬프트를 편집합니다', | |||
| advanced: '전문가 모드', | |||
| switchBack: '기본 모드로 전환', | |||
| advancedWarning: { | |||
| title: '전문가 모드로 전환되었습니다. 프롬프트를 변경하면 기본 모드로 돌아갈 수 없습니다.', | |||
| description: '전문가 모드에서는 전체 프롬프트를 편집할 수 있습니다.', | |||
| learnMore: '자세히 알아보기', | |||
| ok: '확인', | |||
| }, | |||
| operation: { | |||
| addMessage: '메시지 추가', | |||
| }, | |||
| contextMissing: '컨텍스트 컴포넌트를 찾을 수 없습니다. 프롬프트의 효과가 충분하지 않을 수 있습니다.', | |||
| }, | |||
| operation: { | |||
| applyConfig: '배포', | |||
| resetConfig: '재설정', | |||
| debugConfig: '디버그', | |||
| addFeature: '기능 추가', | |||
| automatic: '자동', | |||
| stopResponding: '응답 중지', | |||
| agree: '좋아요', | |||
| disagree: '싫어요', | |||
| cancelAgree: '좋아요 취소', | |||
| cancelDisagree: '싫어요 취소', | |||
| userAction: '사용자', | |||
| }, | |||
| notSetAPIKey: { | |||
| title: 'LLM 제공자 키가 설정되지 않았습니다', | |||
| trailFinished: '트라이얼 종료', | |||
| description: 'LLM 제공자 키가 설정되지 않았습니다. 디버깅하기 전에 설정해야 합니다.', | |||
| settingBtn: '설정으로 이동', | |||
| }, | |||
| trailUseGPT4Info: { | |||
| title: '현재 gpt-4는 지원되지 않습니다', | |||
| description: 'gpt-4를 사용하려면 API 키를 설정해야 합니다.', | |||
| }, | |||
| feature: { | |||
| groupChat: { | |||
| title: '채팅 기능 강화', | |||
| description: '사전 대화 설정을 추가하면 사용자 경험이 향상됩니다.', | |||
| }, | |||
| groupExperience: { | |||
| title: '경험 강화', | |||
| }, | |||
| conversationOpener: { | |||
| title: '대화 시작', | |||
| description: '채팅 앱에서 AI가 사용자에게 처음으로 적극적으로 말을 건다면 일반적으로 환영 메시지로 사용됩니다.', | |||
| }, | |||
| suggestedQuestionsAfterAnswer: { | |||
| title: '팔로우업', | |||
| description: '다음 질문 제안을 설정하면 사용자에게 더 나은 채팅이 제공됩니다.', | |||
| resDes: '사용자의 다음 질문에 대한 3가지 제안.', | |||
| tryToAsk: '질문해보세요', | |||
| }, | |||
| moreLikeThis: { | |||
| title: '유사한 항목', | |||
| description: '여러 텍스트를 한 번에 생성하고 편집하여 계속해서 생성합니다.', | |||
| generateNumTip: '생성 횟수', | |||
| tip: '이 기능을 사용하면 추가적인 토큰 오버헤드가 발생합니다', | |||
| }, | |||
| speechToText: { | |||
| title: '음성에서 텍스트로', | |||
| description: '활성화하면 음성 입력을 사용할 수 있습니다.', | |||
| resDes: '음성 입력이 활성화되어 있습니다', | |||
| }, | |||
| textToSpeech: { | |||
| title: '텍스트에서 음성으로', | |||
| description: '활성화하면 텍스트를 음성으로 변환할 수 있습니다.', | |||
| resDes: '텍스트에서 오디오로의 변환이 활성화되어 있습니다', | |||
| }, | |||
| citation: { | |||
| title: '인용 및 소유권', | |||
| description: '활성화하면 생성된 콘텐츠의 소스 문서 및 소유권 섹션이 표시됩니다.', | |||
| resDes: '인용 및 소유권이 활성화되어 있습니다', | |||
| }, | |||
| annotation: { | |||
| title: '주석 응답', | |||
| description: '유사한 사용자 질문과 우선 일치를 위해 캐시에 고품질 응답을 수동으로 추가할 수 있습니다.', | |||
| resDes: '주석 응답이 활성화되어 있습니다', | |||
| scoreThreshold: { | |||
| title: '점수 임계값', | |||
| description: '주석 응답의 유사성 임계값을 설정하는 데 사용됩니다.', | |||
| easyMatch: '간단한 일치', | |||
| accurateMatch: '정확한 일치', | |||
| }, | |||
| matchVariable: { | |||
| title: '매치 변수', | |||
| choosePlaceholder: '매치 변수 선택', | |||
| }, | |||
| cacheManagement: '주석', | |||
| cached: '주석이 있는', | |||
| remove: '삭제', | |||
| removeConfirm: '이 주석을 삭제하시겠습니까?', | |||
| add: '주석 추가', | |||
| edit: '주석 편집', | |||
| }, | |||
| dataSet: { | |||
| title: '컨텍스트', | |||
| noData: '지식을 컨텍스트로 가져올 수 있습니다', | |||
| words: '단어', | |||
| textBlocks: '텍스트 블록', | |||
| selectTitle: '참조할 지식 선택', | |||
| selected: '선택한 지식', | |||
| noDataSet: '지식이 없습니다', | |||
| toCreate: '생성하기', | |||
| notSupportSelectMulti: '현재 다중 선택은 지원되지 않습니다', | |||
| queryVariable: { | |||
| title: '쿼리 변수', | |||
| tip: '이 변수는 컨텍스트 조회에 사용되는 쿼리 입력으로 사용되며, 이 변수 입력에 관련된 컨텍스트 정보를 가져옵니다.', | |||
| choosePlaceholder: '쿼리 변수 선택', | |||
| noVar: '변수 없음', | |||
| noVarTip: '변수 섹션 하단에서 변수를 생성하십시오', | |||
| unableToQueryDataSet: '지식을 쿼리할 수 없음', | |||
| unableToQueryDataSetTip: '지식 쿼리에 실패했습니다. 정상적으로 쿼리할 수 없는 경우, 컨텍스트 섹션에서 컨텍스트 쿼리 변수를 다시 선택하십시오.', | |||
| ok: '확인', | |||
| contextVarNotEmpty: '컨텍스트 쿼리 변수를 비울 수 없습니다', | |||
| deleteContextVarTitle: '변수 "{{varName}}"를 삭제하시겠습니까?', | |||
| deleteContextVarTip: '이 변수는 컨텍스트 쿼리 변수로 설정되어 있어 삭제하면 지식의 정상적인 사용에 영향을 미칩니다. 삭제하려면 컨텍스트 섹션에서 다시 선택하십시오.', | |||
| }, | |||
| }, | |||
| tools: { | |||
| title: '도구', | |||
| tips: '도구는 사용자 입력이나 변수를 요청 매개변수로 사용하여 외부 데이터를 컨텍스트로 쿼리하는 표준적인 API 호출 방법을 제공합니다.', | |||
| toolsInUse: '{{count}}개의 도구가 사용 중', | |||
| modal: { | |||
| title: '도구', | |||
| toolType: { | |||
| title: '도구 유형', | |||
| placeholder: '도구 유형 선택', | |||
| }, | |||
| name: { | |||
| title: '이름', | |||
| placeholder: '이름 입력', | |||
| }, | |||
| variableName: { | |||
| title: '변수 이름', | |||
| placeholder: '변수 이름 입력', | |||
| }, | |||
| }, | |||
| }, | |||
| conversationHistory: { | |||
| title: '대화 기록', | |||
| description: '대화 역할에 접두사 이름을 설정합니다', | |||
| tip: '대화 기록이 활성화되어 있지 않습니다. 위의 프롬프트에 <histories>를 추가하십시오.', | |||
| learnMore: '자세히 알아보기', | |||
| editModal: { | |||
| title: '대화 역할 이름 편집', | |||
| userPrefix: '사용자 접두사', | |||
| assistantPrefix: '어시스턴트 접두사', | |||
| }, | |||
| }, | |||
| toolbox: { | |||
| title: '도구 상자', | |||
| }, | |||
| moderation: { | |||
| title: '콘텐츠 모더레이션', | |||
| description: '모더레이션 API를 사용하거나 기밀 단어 목록을 유지함으로써 모델 출력을 안전하게 합니다.', | |||
| allEnabled: '입력/출력 콘텐츠가 모두 활성화되어 있습니다', | |||
| inputEnabled: '입력 콘텐츠가 활성화되어 있습니다', | |||
| outputEnabled: '출력 콘텐츠가 활성화되어 있습니다', | |||
| modal: { | |||
| title: '콘텐츠 모더레이션 설정', | |||
| provider: { | |||
| title: '제공자', | |||
| openai: 'OpenAI 모더레이션', | |||
| openaiTip: { | |||
| prefix: 'OpenAI 모더레이션에는', | |||
| suffix: '에 OpenAI API 키가 설정되어 있어야 합니다.', | |||
| }, | |||
| keywords: '키워드', | |||
| }, | |||
| keywords: { | |||
| tip: '한 줄에 하나씩, 줄 바꿈으로 입력하세요. 한 줄 당 최대 100자.', | |||
| placeholder: '한 줄씩 입력하세요', | |||
| line: '줄', | |||
| }, | |||
| content: { | |||
| input: '입력 콘텐츠 모더레이션', | |||
| output: '출력 콘텐츠 모더레이션', | |||
| preset: '프리셋 응답', | |||
| placeholder: '프리셋 응답 내용을 입력하세요', | |||
| condition: '최소한 하나의 입력 및 출력 콘텐츠를 모더레이션합니다', | |||
| fromApi: '프리셋 응답은 API에서 반환됩니다', | |||
| errorMessage: '프리셋 응답은 비워둘 수 없습니다', | |||
| supportMarkdown: '마크다운이 지원됩니다', | |||
| }, | |||
| openaiNotConfig: { | |||
| before: 'OpenAI 모더레이션에는', | |||
| after: '에 OpenAI API 키가 설정되어 있어야 합니다.', | |||
| }, | |||
| }, | |||
| }, | |||
| }, | |||
| automatic: { | |||
| title: '자동 어플리케이션 오케스트레이션', | |||
| description: '시나리오를 설명하세요. Dify가 어플리케이션을 자동으로 오케스트레이션 합니다.', | |||
| intendedAudience: '누가 대상이 되는지 설명하세요.', | |||
| intendedAudiencePlaceHolder: '예: 학생', | |||
| solveProblem: '어떤 문제를 AI가 해결할 것으로 예상하나요?', | |||
| solveProblemPlaceHolder: '예: 학업 성적 평가', | |||
| generate: '생성', | |||
| audiencesRequired: '대상이 필요합니다', | |||
| problemRequired: '문제가 필요합니다', | |||
| resTitle: '다음 어플리케이션을 자동으로 오케스트레이션 했습니다.', | |||
| apply: '이 오케스트레이션을 적용하기', | |||
| noData: '왼쪽에 사용 예시를 기술하고, 오케스트레이션 미리보기가 여기에 나타납니다.', | |||
| loading: '어플리케이션 오케스트레이션을 실행 중입니다...', | |||
| overwriteTitle: '기존 구성을 덮어쓰시겠습니까?', | |||
| overwriteMessage: '이 오케스트레이션을 적용하면 기존 구성이 덮어쓰여집니다.', | |||
| }, | |||
| resetConfig: { | |||
| title: '리셋을 확인하시겠습니까?', | |||
| message: '변경 사항이 취소되고, 마지막으로 공개된 구성이 복원됩니다.', | |||
| }, | |||
| errorMessage: { | |||
| nameOfKeyRequired: '키 이름: {{key}} 이 필요합니다', | |||
| valueOfVarRequired: '{{key}}의 값은 비워둘 수 없습니다', | |||
| queryRequired: '요청 텍스트가 필요합니다.', | |||
| waitForResponse: '이전 메시지에 대한 응답이 완료될 때까지 기다려 주세요.', | |||
| waitForBatchResponse: '배치 작업에 대한 응답이 완료될 때까지 기다려 주세요.', | |||
| notSelectModel: '모델을 선택해 주세요', | |||
| waitForImgUpload: '이미지 업로드가 완료될 때까지 기다려 주세요', | |||
| }, | |||
| chatSubTitle: '단계', | |||
| completionSubTitle: '접두사 프롬프트', | |||
| promptTip: '프롬프트는 AI의 응답을 지시하고 제한하여 유도합니다. {{input}}과 같은 변수를 삽입하세요. 이 프롬프트는 사용자에게 표시되지 않습니다.', | |||
| formattingChangedTitle: '포맷이 변경되었습니다', | |||
| formattingChangedText: '포맷을 변경하면 디버그 영역이 재설정됩니다. 계속하시겠습니까?', | |||
| variableTitle: '변수', | |||
| variableTip: '사용자는 양식에 변수를 입력하고, 프롬프트 내의 변수가 자동으로 대체됩니다.', | |||
| notSetVar: '변수를 사용하면 사용자는 양식에 입력할 때 프롬프트의 단어나 시작 단어를 소개할 수 있습니다. "{{input}}"을 프롬프트 단어에 입력해 보세요.', | |||
| autoAddVar: '프리프롬프트에서 참조되는 미정의 변수가 있습니다. 사용자 입력 양식에 추가하시겠습니까?', | |||
| variableTable: { | |||
| key: '변수 키', | |||
| name: '사용자 입력 필드명', | |||
| optional: '옵션', | |||
| type: '입력 타입', | |||
| action: '액션', | |||
| typeString: '문자열', | |||
| typeSelect: '선택', | |||
| }, | |||
| varKeyError: { | |||
| canNoBeEmpty: '변수 키를 비울 수 없습니다', | |||
| tooLong: '변수 키: {{key}}가 너무 깁니다. 30자를 넘을 수 없습니다', | |||
| notValid: '변수 키: {{key}}가 유효하지 않습니다. 문자, 숫자, 밑줄만 포함할 수 있습니다', | |||
| notStartWithNumber: '변수 키: {{key}}는 숫자로 시작할 수 없습니다', | |||
| keyAlreadyExists: '변수 키: {{key}}는 이미 존재합니다', | |||
| }, | |||
| otherError: { | |||
| promptNoBeEmpty: '프롬프트를 비울 수 없습니다', | |||
| historyNoBeEmpty: '프롬프트에 대화 기록을 설정해야 합니다', | |||
| queryNoBeEmpty: '프롬프트에 쿼리를 설정해야 합니다', | |||
| }, | |||
| variableConig: { | |||
| 'addModalTitle': '입력 필드 추가', | |||
| 'editModalTitle': '입력 필드 편집', | |||
| 'description': '{{varName}} 변수 설정', | |||
| 'fieldType': '필드 타입', | |||
| 'string': '짧은 텍스트', | |||
| 'text-input': '짧은 텍스트', | |||
| 'paragraph': '문단', | |||
| 'select': '선택', | |||
| 'number': '숫자', | |||
| 'notSet': '설정되지 않음. 프롬프트의 프리픽스에 {{input}}을 입력해 보세요.', | |||
| 'stringTitle': '폼 텍스트 상자 옵션', | |||
| 'maxLength': '최대 길이', | |||
| 'options': '옵션', | |||
| 'addOption': '옵션 추가', | |||
| 'apiBasedVar': 'API 기반 변수', | |||
| 'varName': '변수명', | |||
| 'labelName': '레이블명', | |||
| 'inputPlaceholder': '입력하세요', | |||
| 'required': '필수', | |||
| 'errorMsg': { | |||
| varNameRequired: '변수명은 필수입니다', | |||
| labelNameRequired: '레이블명은 필수입니다', | |||
| varNameCanBeRepeat: '변수명은 중복될 수 없습니다', | |||
| atLeastOneOption: '적어도 하나의 옵션이 필요합니다', | |||
| optionRepeat: '옵션이 중복되어 있습니다', | |||
| }, | |||
| }, | |||
| vision: { | |||
| name: '비전', | |||
| description: '비전을 활성화하면 모델이 이미지를 받아와 관련 질문에 답변할 수 있습니다.', | |||
| settings: '설정', | |||
| visionSettings: { | |||
| title: '비전 설정', | |||
| resolution: '해상도', | |||
| resolutionTooltip: `저해상도는 모델에게 512 x 512 해상도의 저해상도 이미지를 제공하여 65 토큰의 예산으로 이미지를 표현합니다. 이로 인해 API는 더 빠른 응답을 제공하며 높은 세부 정보가 필요한 경우 토큰 소모를 늘립니다. | |||
| \n | |||
| 고해상도는 먼저 모델에게 저해상도 이미지를 보여주고, 그 후 입력 이미지 크기에 따라 512px의 정사각형 세부 사진을 만듭니다. 각 세부 사진에 대해 129 토큰의 예산을 사용합니다.`, | |||
| high: '고', | |||
| low: '저', | |||
| uploadMethod: '업로드 방식', | |||
| both: '모두', | |||
| localUpload: '로컬 업로드', | |||
| url: 'URL', | |||
| uploadLimit: '업로드 제한', | |||
| }, | |||
| }, | |||
| voice: { | |||
| name: '음성', | |||
| defaultDisplay: '기본 음성', | |||
| description: '텍스트 읽기 음성 설정', | |||
| settings: '설정', | |||
| voiceSettings: { | |||
| title: '음성 설정', | |||
| language: '언어', | |||
| resolutionTooltip: '텍스트 읽기 음성 언어를 지원합니다.', | |||
| voice: '음성', | |||
| }, | |||
| }, | |||
| openingStatement: { | |||
| title: '대화 시작', | |||
| add: '추가', | |||
| writeOpener: '오프너 작성', | |||
| placeholder: '여기에 오프너 메시지를 작성하세요. 변수를 사용할 수 있습니다. {{variable}}를 입력해보세요.', | |||
| openingQuestion: '시작 질문', | |||
| noDataPlaceHolder: '사용자와의 대화를 시작하면 대화 애플리케이션에서 그들과 더 밀접한 관계를 구축하는 데 도움이 됩니다.', | |||
| varTip: '변수를 사용할 수 있습니다. {{variable}}를 입력해보세요.', | |||
| tooShort: '대화 시작에는 최소 20 단어의 초기 프롬프트가 필요합니다.', | |||
| notIncludeKey: '초기 프롬프트에 변수 {{key}}가 포함되어 있지 않습니다. 초기 프롬프트에 추가하세요.', | |||
| }, | |||
| modelConfig: { | |||
| model: '모델', | |||
| setTone: '응답 톤 설정', | |||
| title: '모델 및 매개변수', | |||
| modeType: { | |||
| chat: '채팅', | |||
| completion: '완성', | |||
| }, | |||
| }, | |||
| inputs: { | |||
| title: '디버그 및 미리보기', | |||
| noPrompt: '프리프롬프트 입력란에 몇 가지 프롬프트를 작성해보세요.', | |||
| userInputField: '사용자 입력 필드', | |||
| noVar: '변수 값을 입력하세요. 새로운 세션이 시작될 때마다 프롬프트 단어가 자동으로 대체됩니다.', | |||
| chatVarTip: '변수 값을 입력하세요. 새로운 세션이 시작될 때마다 프롬프트 단어가 자동으로 대체됩니다.', | |||
| completionVarTip: '변수 값을 입력하세요. 질문이 전송될 때마다 프롬프트 단어가 자동으로 대체됩니다.', | |||
| previewTitle: '프롬프트 미리보기', | |||
| queryTitle: '쿼리 내용', | |||
| queryPlaceholder: '요청 텍스트를 입력하세요.', | |||
| run: '실행', | |||
| }, | |||
| result: '출력 텍스트', | |||
| datasetConfig: { | |||
| settingTitle: '리트리벌 설정', | |||
| knowledgeTip: '지식을 추가하려면 "+" 버튼을 클릭하세요.', | |||
| retrieveOneWay: { | |||
| title: 'N-to-1 리트리벌', | |||
| description: '사용자 의도와 지식 설명을 기반으로, 에이전트가 자율적으로 최적의 지식을 선택합니다. 개별적이고 제한된 지식을 가진 애플리케이션에 적합합니다.', | |||
| }, | |||
| retrieveMultiWay: { | |||
| title: '멀티패스 리트리벌', | |||
| description: '사용자 의도에 따라 모든 지식을 쿼리하고, 관련 텍스트를 여러 소스에서 가져와 다시 순위를 매긴 후 사용자 쿼리에 가장 적합한 결과를 선택합니다. 재순위 모델 API의 구성이 필요합니다.', | |||
| }, | |||
| rerankModelRequired: '재순위 모델이 필요합니다', | |||
| params: '매개변수', | |||
| top_k: '상위 K', | |||
| top_kTip: '사용자 질문에 가장 유사한 청크를 필터링하는 데 사용됩니다. 시스템은 선택한 모델의 max_tokens에 따라 동적으로 상위 K 값을 조정합니다.', | |||
| score_threshold: '점수 임계값', | |||
| score_thresholdTip: '청크 필터링의 유사성 임계값을 설정하는 데 사용됩니다.', | |||
| retrieveChangeTip: '인덱스 모드 및 리트리벌 모드를 변경하면 이 지식과 관련된 애플리케이션에 영향을 줄 수 있습니다.', | |||
| }, | |||
| debugAsSingleModel: '단일 모델로 디버그', | |||
| debugAsMultipleModel: '다중 모델로 디버그', | |||
| duplicateModel: '복제', | |||
| publishAs: '로 게시', | |||
| assistantType: { | |||
| name: '어시스턴트 유형', | |||
| chatAssistant: { | |||
| name: '기본 어시스턴트', | |||
| description: '대규모 언어 모델을 사용하여 채팅 기반의 어시스턴트를 구축합니다', | |||
| }, | |||
| agentAssistant: { | |||
| name: '에이전트 어시스턴트', | |||
| description: '작업을 자율적으로 완료하기 위한 도구를 선택할 수 있는 인텔리전트 에이전트를 구축합니다', | |||
| }, | |||
| }, | |||
| agent: { | |||
| agentMode: '에이전트 모드', | |||
| agentModeDes: '에이전트의 추론 모드 유형을 설정합니다', | |||
| agentModeType: { | |||
| ReACT: 'ReAct', | |||
| functionCall: '함수 호출', | |||
| }, | |||
| setting: { | |||
| name: '에이전트 설정', | |||
| description: '에이전트 어시스턴트 설정에서는 에이전트 모드나 빌트인 프롬프트 등 고급 기능을 설정할 수 있습니다. 에이전트 유형에서만 사용할 수 있습니다.', | |||
| maximumIterations: { | |||
| name: '최대 반복 횟수', | |||
| description: '에이전트 어시스턴트가 실행할 수 있는 반복 횟수를 제한합니다', | |||
| }, | |||
| }, | |||
| buildInPrompt: '빌트인 프롬프트', | |||
| firstPrompt: '첫 번째 프롬프트', | |||
| nextIteration: '다음 반복', | |||
| promptPlaceholder: '여기에 프롬프트를 입력하세요', | |||
| tools: { | |||
| name: '도구', | |||
| description: '도구를 사용하여 인터넷 검색이나 과학적 계산 등 LLM의 기능을 확장할 수 있습니다', | |||
| enabled: '활성화됨', | |||
| }, | |||
| }, | |||
| } | |||
| export default translation | |||
| @@ -0,0 +1,92 @@ | |||
| const translation = { | |||
| title: '로그', | |||
| description: '로그는 애플리케이션 실행 상태를 기록합니다. 사용자 입력 및 AI 응답이 포함됩니다.', | |||
| dateTimeFormat: 'YYYY/MM/DD HH:mm', | |||
| table: { | |||
| header: { | |||
| time: '시간', | |||
| endUser: '엔드 유저', | |||
| input: '입력', | |||
| output: '출력', | |||
| summary: '요약', | |||
| messageCount: '메시지 수', | |||
| userRate: '사용자 비율', | |||
| adminRate: '관리자 비율', | |||
| startTime: '시작 시간', | |||
| status: '상태', | |||
| runtime: '실행 시간', | |||
| tokens: '토큰', | |||
| user: '엔드 유저', | |||
| version: '버전', | |||
| }, | |||
| pagination: { | |||
| previous: '이전', | |||
| next: '다음', | |||
| }, | |||
| empty: { | |||
| noChat: '아직 대화가 없습니다', | |||
| noOutput: '출력이 없습니다', | |||
| element: { | |||
| title: '여기 누구 있어요?', | |||
| content: | |||
| '여기에서 엔드 유저와 AI 애플리케이션 간 상호 작용을 관찰하고 주석을 달아 AI 정확도를 계속 향상시킵니다. 웹 앱을 <shareLink>공유</shareLink>하거나 <testLink>테스트</testLink>하고 다시 이 페이지로 돌아오세요.', | |||
| }, | |||
| }, | |||
| }, | |||
| detail: { | |||
| time: '시간', | |||
| conversationId: '대화 ID', | |||
| promptTemplate: '프롬프트 템플릿', | |||
| promptTemplateBeforeChat: '채팅 전 프롬프트 템플릿 - 시스템 메시지로', | |||
| annotationTip: '{{user}}에 의해 향상됨', | |||
| timeConsuming: '시간 소요', | |||
| second: '초', | |||
| tokenCost: '토큰 비용', | |||
| loading: '로드 중', | |||
| operation: { | |||
| like: '좋아요', | |||
| dislike: '좋아요 취소', | |||
| addAnnotation: '향상 추가', | |||
| editAnnotation: '향상 편집', | |||
| annotationPlaceholder: 'AI가 응답할 것으로 예상하는 답변을 입력하여 향후 모델 세부 조정 및 텍스트 생성 품질 지속적 향상을 위해 개선할 수 있습니다.', | |||
| }, | |||
| variables: '변수', | |||
| uploadImages: '업로드된 이미지', | |||
| }, | |||
| filter: { | |||
| period: { | |||
| today: '오늘', | |||
| last7days: '지난 7일', | |||
| last4weeks: '지난 4주', | |||
| last3months: '지난 3개월', | |||
| last12months: '지난 12개월', | |||
| monthToDate: '월 초부터 오늘까지', | |||
| quarterToDate: '분기 초부터 오늘까지', | |||
| yearToDate: '연 초부터 오늘까지', | |||
| allTime: '모든 기간', | |||
| }, | |||
| annotation: { | |||
| all: '모두', | |||
| annotated: '향상 주석 ({{count}} 개 항목)', | |||
| not_annotated: '주석 없음', | |||
| }, | |||
| }, | |||
| workflowTitle: '워크플로우 로그', | |||
| workflowSubtitle: '이 로그는 Automate의 작업을 기록했습니다.', | |||
| runDetail: { | |||
| title: '대화 로그', | |||
| workflowTitle: '로그 세부 정보', | |||
| }, | |||
| promptLog: '프롬프트 로그', | |||
| agentLog: '에이전트 로그', | |||
| viewLog: '로그 보기', | |||
| agentLogDetail: { | |||
| agentMode: '에이전트 모드', | |||
| toolUsed: '사용된 도구', | |||
| iterations: '반복', | |||
| iteration: '반복', | |||
| finalProcessing: '최종 처리', | |||
| }, | |||
| } | |||
| export default translation | |||
| @@ -0,0 +1,143 @@ | |||
| const translation = { | |||
| welcome: { | |||
| firstStepTip: '시작하려면,', | |||
| enterKeyTip: '아래에 OpenAI API 키를 입력하세요', | |||
| getKeyTip: 'OpenAI 대시보드에서 API 키를 가져오세요', | |||
| placeholder: '나의 OpenAI API 키 (예: sk-xxxx)', | |||
| }, | |||
| apiKeyInfo: { | |||
| cloud: { | |||
| trial: { | |||
| title: '{{providerName}} 트라이얼 쿼터를 사용 중입니다.', | |||
| description: '트라이얼 쿼터는 테스트용으로 제공됩니다. 트라이얼 쿼터 소진 전에 고유한 모델 제공자를 설정하거나 추가 쿼터를 구매하세요.', | |||
| }, | |||
| exhausted: { | |||
| title: '트라이얼 쿼터가 소진되었습니다. API 키를 설정하세요.', | |||
| description: '트라이얼 쿼터가 소진되었습니다. 고유한 모델 제공자를 설정하거나 추가 쿼터를 구매하세요.', | |||
| }, | |||
| }, | |||
| selfHost: { | |||
| title: { | |||
| row1: '시작하려면,', | |||
| row2: '먼저 모델 제공자를 설정하세요.', | |||
| }, | |||
| }, | |||
| callTimes: '요청 횟수', | |||
| usedToken: '사용된 토큰', | |||
| setAPIBtn: '모델 제공자 설정으로 이동', | |||
| tryCloud: '또는 Dify의 클라우드 버전을 무료로 체험해보세요', | |||
| }, | |||
| overview: { | |||
| title: '개요', | |||
| appInfo: { | |||
| explanation: '사용하기 쉬운 AI 웹앱', | |||
| accessibleAddress: '공개 URL', | |||
| preview: '미리보기', | |||
| regenerate: '재생성', | |||
| preUseReminder: '계속하기 전에 웹앱을 활성화하세요.', | |||
| settings: { | |||
| entry: '설정', | |||
| title: '웹앱 설정', | |||
| webName: '웹앱 이름', | |||
| webDesc: '웹앱 설명', | |||
| webDescTip: '이 텍스트는 클라이언트 측에서 표시되며, 애플리케이션의 사용 방법에 대한 기본적인 안내를 제공합니다.', | |||
| webDescPlaceholder: '웹앱 설명을 입력하세요', | |||
| language: '언어', | |||
| more: { | |||
| entry: '추가 설정 보기', | |||
| copyright: '저작권', | |||
| copyRightPlaceholder: '저작권자 또는 조직 이름을 입력하세요', | |||
| privacyPolicy: '개인정보 처리방침', | |||
| privacyPolicyPlaceholder: '개인정보 처리방침 링크를 입력하세요', | |||
| privacyPolicyTip: '방문자가 애플리케이션이 수집하는 데이터를 이해하고, Dify의 <privacyPolicyLink>개인정보 처리방침</privacyPolicyLink>을 참조할 수 있도록 합니다.', | |||
| }, | |||
| }, | |||
| embedded: { | |||
| entry: '임베드', | |||
| title: '웹사이트에 임베드하기', | |||
| explanation: '챗봇 앱을 웹사이트에 임베드하는 방법을 선택하세요.', | |||
| iframe: '웹사이트의 원하는 위치에 챗봇 앱을 추가하려면 이 iframe을 HTML 코드에 추가하세요.', | |||
| scripts: '웹사이트의 우측 하단에 챗봇 앱을 추가하려면 이 코드를 HTML에 추가하세요.', | |||
| chromePlugin: 'Dify Chatbot Chrome 확장 프로그램 설치', | |||
| copied: '복사되었습니다', | |||
| copy: '복사', | |||
| }, | |||
| qrcode: { | |||
| title: '공유용 QR 코드', | |||
| scan: '앱 공유를 스캔하세요', | |||
| download: 'QR 코드 다운로드', | |||
| }, | |||
| customize: { | |||
| way: '방법', | |||
| entry: '사용자화', | |||
| title: 'AI 웹앱 사용자화', | |||
| explanation: '시나리오와 스타일 요구에 따라 웹앱의 프론트엔드를 사용자화할 수 있습니다.', | |||
| way1: { | |||
| name: '클라이언트 코드를 포크하여 수정하고 Vercel에 배포하기 (권장)', | |||
| step1: '클라이언트 코드를 포크하여 수정합니다', | |||
| step1Tip: '여기를 클릭하여 소스 코드를 GitHub 계정에 포크하고 코드를 수정하세요', | |||
| step1Operation: 'Dify-WebClient', | |||
| step2: 'Vercel에 배포합니다', | |||
| step2Tip: '여기를 클릭하여 리포지토리를 Vercel에 임포트하고 배포하세요', | |||
| step2Operation: '리포지토리 임포트', | |||
| step3: '환경 변수를 설정합니다', | |||
| step3Tip: 'Vercel에 다음 환경 변수를 추가하세요', | |||
| }, | |||
| way2: { | |||
| name: '클라이언트 측 코드를 작성하여 API를 호출하고 서버에 배포합니다', | |||
| operation: '문서', | |||
| }, | |||
| }, | |||
| }, | |||
| apiInfo: { | |||
| title: '백엔드 서비스 API', | |||
| explanation: '개발자의 애플리케이션에 쉽게 통합할 수 있습니다', | |||
| accessibleAddress: '서비스 API 엔드포인트', | |||
| doc: 'API 레퍼런스', | |||
| }, | |||
| status: { | |||
| running: '서비스 중', | |||
| disable: '비활성', | |||
| }, | |||
| }, | |||
| analysis: { | |||
| title: '분석', | |||
| ms: 'ms', | |||
| tokenPS: '토큰/초', | |||
| totalMessages: { | |||
| title: '총 메시지 수', | |||
| explanation: '일일 AI 상호작용 수; 엔지니어링/디버깅 목적의 프롬프트는 제외됩니다.', | |||
| }, | |||
| activeUsers: { | |||
| title: '활성 사용자 수', | |||
| explanation: 'AI와의 Q&A에 참여하는 고유 사용자 수; 엔지니어링/디버깅 목적의 프롬프트는 제외됩니다.', | |||
| }, | |||
| tokenUsage: { | |||
| title: '토큰 사용량', | |||
| explanation: '애플리케이션의 언어 모델의 일일 토큰 사용량을 반영하여 비용 관리에 도움이 됩니다.', | |||
| consumed: '소비된 토큰', | |||
| }, | |||
| avgSessionInteractions: { | |||
| title: '평균 세션 상호작용 수', | |||
| explanation: '사용자와 AI의 연속적인 커뮤니케이션 수; 대화형 애플리케이션을 위한 것입니다.', | |||
| }, | |||
| avgUserInteractions: { | |||
| title: '평균 사용자 상호작용 수', | |||
| explanation: '사용자의 일일 사용 빈도를 반영합니다. 이 지표는 사용자의 임계를 반영합니다.', | |||
| }, | |||
| userSatisfactionRate: { | |||
| title: '사용자 만족도율', | |||
| explanation: '1,000개의 메시지 당 "좋아요" 수입니다. 이는 사용자가 매우 만족한 응답의 비율을 나타냅니다.', | |||
| }, | |||
| avgResponseTime: { | |||
| title: '평균 응답 시간', | |||
| explanation: 'AI가 처리/응답하는 시간(밀리초); 텍스트 기반 애플리케이션을 위한 것입니다.', | |||
| }, | |||
| tps: { | |||
| title: '토큰 출력 속도', | |||
| explanation: 'LLM의 성능을 측정합니다. 요청 시작부터 출력 완료까지의 LLM의 토큰 출력 속도를 계산합니다.', | |||
| }, | |||
| }, | |||
| } | |||
| export default translation | |||
| @@ -0,0 +1,86 @@ | |||
| const translation = { | |||
| createApp: '앱 만들기', | |||
| types: { | |||
| all: '모두', | |||
| chatbot: '챗봇', | |||
| agent: '에이전트', | |||
| workflow: '워크플로우', | |||
| completion: '완성', | |||
| }, | |||
| duplicate: '복제', | |||
| duplicateTitle: '앱 복제하기', | |||
| export: 'DSL 내보내기', | |||
| exportFailed: 'DSL 내보내기 실패', | |||
| importDSL: 'DSL 파일 가져오기', | |||
| createFromConfigFile: 'DSL 파일에서 생성하기', | |||
| deleteAppConfirmTitle: '이 앱을 삭제하시겠습니까?', | |||
| deleteAppConfirmContent: '앱을 삭제하면 복구할 수 없습니다. 사용자는 더 이상 앱에 액세스할 수 없으며 모든 프롬프트 설정 및 로그가 영구적으로 삭제됩니다.', | |||
| appDeleted: '앱이 삭제되었습니다', | |||
| appDeleteFailed: '앱 삭제 실패', | |||
| join: '커뮤니티에 참여하기', | |||
| communityIntro: '여러 채널에서 팀원, 기여자, 개발자들과 토론하세요.', | |||
| roadmap: '로드맵 보기', | |||
| newApp: { | |||
| startFromBlank: '빈 상태로 시작', | |||
| startFromTemplate: '템플릿에서 시작', | |||
| captionAppType: '어떤 종류의 앱을 만들어 보시겠어요?', | |||
| chatbotDescription: '대화형 어플리케이션을 만듭니다. 질문과 답변 형식을 사용하여 다단계 대화를 지원합니다.', | |||
| completionDescription: '프롬프트를 기반으로 품질 높은 텍스트를 생성하는 어플리케이션을 만듭니다. 기사, 요약, 번역 등을 생성할 수 있습니다.', | |||
| completionWarning: '이 종류의 앱은 더 이상 지원되지 않습니다.', | |||
| agentDescription: '작업을 자동으로 완료하는 지능형 에이전트를 만듭니다.', | |||
| workflowDescription: '고도로 사용자 지정 가능한 워크플로우에 기반한 고품질 텍스트 생성 어플리케이션을 만듭니다. 경험 있는 사용자를 위한 것입니다.', | |||
| workflowWarning: '현재 베타 버전입니다.', | |||
| chatbotType: '챗봇 오케스트레이션 방식', | |||
| basic: '기본', | |||
| basicTip: '초보자용. 나중에 Chatflow로 전환할 수 있습니다.', | |||
| basicFor: '초보자용', | |||
| basicDescription: '기본 오케스트레이션은 내장된 프롬프트를 수정할 수 없고 간단한 설정을 사용하여 챗봇 앱을 오케스트레이션합니다. 초보자용입니다.', | |||
| advanced: 'Chatflow', | |||
| advancedFor: '고급 사용자용', | |||
| advancedDescription: '워크플로우 오케스트레이션은 워크플로우 형식으로 챗봇을 오케스트레이션하며 내장된 프롬프트를 편집할 수 있는 고급 사용자 정의 기능을 제공합니다. 경험이 많은 사용자용입니다.', | |||
| captionName: '앱 아이콘과 이름', | |||
| appNamePlaceholder: '앱 이름을 입력하세요', | |||
| captionDescription: '설명', | |||
| appDescriptionPlaceholder: '앱 설명을 입력하세요', | |||
| useTemplate: '이 템플릿 사용', | |||
| previewDemo: '데모 미리보기', | |||
| chatApp: '어시스턴트', | |||
| chatAppIntro: '대화형 어플리케이션을 만들고 싶어요. 이 어플리케이션은 질문과 답변 형식을 사용하여 다단계 대화를 지원합니다.', | |||
| agentAssistant: '새로운 에이전트 어시스턴트', | |||
| completeApp: '텍스트 생성기', | |||
| completeAppIntro: '프롬프트를 기반으로 품질 높은 텍스트를 생성하는 어플리케이션을 만들고 싶어요. 기사, 요약, 번역 등을 생성합니다.', | |||
| showTemplates: '템플릿 선택', | |||
| hideTemplates: '모드 선택으로 돌아가기', | |||
| Create: '만들기', | |||
| Cancel: '취소', | |||
| nameNotEmpty: '이름을 입력하세요', | |||
| appTemplateNotSelected: '템플릿을 선택하세요', | |||
| appTypeRequired: '앱 종류를 선택하세요', | |||
| appCreated: '앱이 생성되었습니다', | |||
| appCreateFailed: '앱 생성 실패', | |||
| }, | |||
| editApp: '정보 편집하기', | |||
| editAppTitle: '앱 정보 편집하기', | |||
| editDone: '앱 정보가 업데이트되었습니다', | |||
| editFailed: '앱 정보 업데이트 실패', | |||
| emoji: { | |||
| ok: '확인', | |||
| cancel: '취소', | |||
| }, | |||
| switch: '워크플로우 오케스트레이션으로 전환하기', | |||
| switchTipStart: '새로운 앱의 복사본이 생성되어 새로운 복사본이 워크플로우 오케스트레이션으로 전환됩니다. 새로운 복사본은 ', | |||
| switchTip: '전환을 허용하지 않습니다', | |||
| switchTipEnd: ' 기본적인 오케스트레이션으로 되돌릴 수 없습니다.', | |||
| switchLabel: '생성될 앱의 복사본', | |||
| removeOriginal: '원본 앱 제거하기', | |||
| switchStart: '전환 시작하기', | |||
| typeSelector: { | |||
| all: '모든 종류', | |||
| chatbot: '챗봇', | |||
| agent: '에이전트', | |||
| workflow: '워크플로우', | |||
| completion: '완성', | |||
| }, | |||
| } | |||
| export default translation | |||
| @@ -0,0 +1,113 @@ | |||
| const translation = { | |||
| currentPlan: '현재 요금제', | |||
| upgradeBtn: { | |||
| plain: '요금제 업그레이드', | |||
| encourage: '지금 업그레이드', | |||
| encourageShort: '업그레이드', | |||
| }, | |||
| viewBilling: '청구 및 구독 관리', | |||
| buyPermissionDeniedTip: '구독하려면 엔터프라이즈 관리자에게 문의하세요', | |||
| plansCommon: { | |||
| title: '당신에게 맞는 요금제를 선택하세요', | |||
| yearlyTip: '연간 구독 시 2개월 무료!', | |||
| mostPopular: '가장 인기 있는', | |||
| planRange: { | |||
| monthly: '월간', | |||
| yearly: '연간', | |||
| }, | |||
| month: '월', | |||
| year: '년', | |||
| save: '절약 ', | |||
| free: '무료', | |||
| currentPlan: '현재 요금제', | |||
| contractSales: '영업에 문의하기', | |||
| contractOwner: '팀 관리자에게 문의하기', | |||
| startForFree: '무료로 시작하기', | |||
| getStartedWith: '시작하기 ', | |||
| contactSales: '영업에 문의하기', | |||
| talkToSales: '영업과 상담하기', | |||
| modelProviders: '모델 제공자', | |||
| teamMembers: '팀 멤버', | |||
| buildApps: '앱 만들기', | |||
| vectorSpace: '벡터 공간', | |||
| vectorSpaceBillingTooltip: '1MB당 약 120만 글자의 벡터화된 데이터를 저장할 수 있습니다 (OpenAI Embeddings을 기반으로 추정되며 모델에 따라 다릅니다).', | |||
| vectorSpaceTooltip: '벡터 공간은 LLM이 데이터를 이해하는 데 필요한 장기 기억 시스템입니다.', | |||
| documentProcessingPriority: '문서 처리 우선순위', | |||
| documentProcessingPriorityTip: '더 높은 문서 처리 우선순위를 원하시면 요금제를 업그레이드하세요.', | |||
| documentProcessingPriorityUpgrade: '더 높은 정확성과 빠른 속도로 데이터를 처리합니다.', | |||
| priority: { | |||
| 'standard': '표준', | |||
| 'priority': '우선', | |||
| 'top-priority': '최우선', | |||
| }, | |||
| logsHistory: '로그 기록', | |||
| customTools: '사용자 정의 도구', | |||
| unavailable: '사용 불가', | |||
| days: '일', | |||
| unlimited: '무제한', | |||
| support: '지원', | |||
| supportItems: { | |||
| communityForums: '커뮤니티 포럼', | |||
| emailSupport: '이메일 지원', | |||
| priorityEmail: '우선 이메일 및 채팅 지원', | |||
| logoChange: '로고 변경', | |||
| SSOAuthentication: 'SSO 인증', | |||
| personalizedSupport: '개별 지원', | |||
| dedicatedAPISupport: '전용 API 지원', | |||
| customIntegration: '사용자 정의 통합 및 지원', | |||
| ragAPIRequest: 'RAG API 요청', | |||
| agentMode: '에이전트 모드', | |||
| workflow: '워크플로우', | |||
| }, | |||
| comingSoon: '곧 출시 예정', | |||
| member: '멤버', | |||
| memberAfter: '멤버', | |||
| messageRequest: { | |||
| title: '메시지 크레딧', | |||
| tooltip: 'GPT 제외 다양한 요금제에서의 메시지 호출 쿼터 (gpt4 제외). 제한을 초과하는 메시지는 OpenAI API 키를 사용합니다.', | |||
| }, | |||
| annotatedResponse: { | |||
| title: '주석 응답 쿼터', | |||
| tooltip: '수동으로 편집 및 응답 주석 달기로 앱의 사용자 정의 가능한 고품질 질의응답 기능을 제공합니다 (채팅 앱에만 해당).', | |||
| }, | |||
| ragAPIRequestTooltip: 'Dify의 지식베이스 처리 기능을 호출하는 API 호출 수를 나타냅니다.', | |||
| receiptInfo: '팀 소유자 및 팀 관리자만 구독 및 청구 정보를 볼 수 있습니다', | |||
| }, | |||
| plans: { | |||
| sandbox: { | |||
| name: '샌드박스', | |||
| description: 'GPT 무료 체험 200회', | |||
| includesTitle: '포함된 항목:', | |||
| }, | |||
| professional: { | |||
| name: '프로페셔널', | |||
| description: '개인 및 소규모 팀을 위해 더 많은 파워를 저렴한 가격에 제공합니다.', | |||
| includesTitle: '무료 플랜에 추가로 포함된 항목:', | |||
| }, | |||
| team: { | |||
| name: '팀', | |||
| description: '제한 없이 협업하고 최고의 성능을 누리세요.', | |||
| includesTitle: '프로페셔널 플랜에 추가로 포함된 항목:', | |||
| }, | |||
| enterprise: { | |||
| name: '엔터프라이즈', | |||
| description: '대규모 미션 크리티컬 시스템을 위한 완전한 기능과 지원을 제공합니다.', | |||
| includesTitle: '팀 플랜에 추가로 포함된 항목:', | |||
| }, | |||
| }, | |||
| vectorSpace: { | |||
| fullTip: '벡터 공간이 가득 찼습니다.', | |||
| fullSolution: '더 많은 공간을 얻으려면 요금제를 업그레이드하세요.', | |||
| }, | |||
| apps: { | |||
| fullTipLine1: '더 많은 앱을 생성하려면,', | |||
| fullTipLine2: '요금제를 업그레이드하세요.', | |||
| }, | |||
| annotatedResponse: { | |||
| fullTipLine1: '더 많은 대화를 주석 처리하려면,', | |||
| fullTipLine2: '요금제를 업그레이드하세요.', | |||
| quotaTitle: '주석 응답 쿼터', | |||
| }, | |||
| } | |||
| export default translation | |||
| @@ -0,0 +1,526 @@ | |||
| const translation = { | |||
| api: { | |||
| success: '성공', | |||
| actionSuccess: '동작이 성공적으로 수행되었습니다', | |||
| saved: '저장됨', | |||
| create: '생성됨', | |||
| remove: '삭제됨', | |||
| }, | |||
| operation: { | |||
| create: '생성', | |||
| confirm: '확인', | |||
| cancel: '취소', | |||
| clear: '지우기', | |||
| save: '저장', | |||
| edit: '편집', | |||
| add: '추가', | |||
| added: '추가됨', | |||
| refresh: '새로 고침', | |||
| reset: '초기화', | |||
| search: '검색', | |||
| change: '변경', | |||
| remove: '삭제', | |||
| send: '전송', | |||
| copy: '복사', | |||
| lineBreak: '줄 바꿈', | |||
| sure: '확실히', | |||
| download: '다운로드', | |||
| delete: '삭제', | |||
| settings: '설정', | |||
| setup: '설정', | |||
| getForFree: '무료로 받기', | |||
| reload: '다시 불러오기', | |||
| ok: '확인', | |||
| log: '로그', | |||
| learnMore: '자세히 알아보기', | |||
| params: '매개변수', | |||
| duplicate: '중복', | |||
| rename: '이름 바꾸기', | |||
| }, | |||
| placeholder: { | |||
| input: '입력해주세요', | |||
| select: '선택해주세요', | |||
| }, | |||
| voice: { | |||
| language: { | |||
| zhHans: '중국어', | |||
| zhHant: '번체 중국어', | |||
| enUS: '영어', | |||
| deDE: '독일어', | |||
| frFR: '프랑스어', | |||
| esES: '스페인어', | |||
| itIT: '이탈리아어', | |||
| thTH: '태국어', | |||
| idID: '인도네시아어', | |||
| jaJP: '일본어', | |||
| koKR: '한국어', | |||
| ptBR: '포르투갈어', | |||
| ruRU: '러시아어', | |||
| ukUA: '우크라이나어', | |||
| viVN: '베트남어', | |||
| plPL: '폴란드어', | |||
| }, | |||
| }, | |||
| unit: { | |||
| char: '문자', | |||
| }, | |||
| actionMsg: { | |||
| noModification: '현재 변경사항이 없습니다.', | |||
| modifiedSuccessfully: '변경이 성공적으로 이루어졌습니다', | |||
| modifiedUnsuccessfully: '변경에 실패했습니다', | |||
| copySuccessfully: '복사가 성공적으로 이루어졌습니다', | |||
| paySucceeded: '결제가 성공했습니다', | |||
| payCancelled: '결제가 취소되었습니다', | |||
| generatedSuccessfully: '생성이 성공적으로 이루어졌습니다', | |||
| generatedUnsuccessfully: '생성에 실패했습니다', | |||
| }, | |||
| model: { | |||
| params: { | |||
| temperature: '온도', | |||
| temperatureTip: '랜덤성을 제어합니다. 온도를 낮추면 더 랜덤한 결과물을 얻을 수 있습니다. 온도가 0에 가까워질수록 모델은 결정적이고 반복적으로 작동합니다.', | |||
| top_p: '상위P', | |||
| top_pTip: '뉴클리어스 샘플링에 의한 다양성 제어: 0.5는 모든 확률 가중 옵션의 절반을 고려함을 의미합니다.', | |||
| presence_penalty: '존재 페널티', | |||
| presence_penaltyTip: '이전 텍스트에서 토큰이 나타나는지 여부에 따라 새로운 토큰에 얼마나 많은 페널티를 부여할지 제어합니다. 모델이 새로운 주제에 대해 말할 가능성이 높아집니다.', | |||
| frequency_penalty: '빈도 페널티', | |||
| frequency_penaltyTip: '이전 텍스트 내 토큰의 기존 빈도에 따라 새로운 토큰에 얼마나 많은 페널티를 부여할지 제어합니다. 모델이 같은 문구를 글자 그대로 반복할 가능성이 줄어듭니다.', | |||
| max_tokens: '최대 토큰', | |||
| max_tokensTip: | |||
| '응답의 최대 길이를 토큰 단위로 제한하는 데 사용됩니다. 큰 값은 프롬프트, 채팅 로그 및 남은 공간에 대한 제한을 가질 수 있습니다. 2/3 이하로 설정하는 것이 좋습니다. gpt-4-1106-preview, gpt-4-vision-preview의 최대 토큰 (입력 128k 출력 4k)보다 작게 설정하는 것이 좋습니다.', | |||
| maxTokenSettingTip: '최대 토큰 설정이 높아서 프롬프트, 쿼리 및 데이터 공간에 제한이 생길 수 있습니다. 현재 모델의 최대 토큰의 80% 이하로 설정해주세요.', | |||
| setToCurrentModelMaxTokenTip: '최대 토큰이 현재 모델의 최대 토큰의 80%로 업데이트되었습니다 {{maxToken}}.', | |||
| stop_sequences: '중단 시퀀스', | |||
| stop_sequencesTip: 'API가 진행 중인 토큰 생성을 중단하는 최대 4개의 시퀀스입니다. 반환된 텍스트에는 중단 시퀀스가 포함되지 않습니다.', | |||
| stop_sequencesPlaceholder: '시퀀스를 입력하고 탭 키를 누르세요', | |||
| }, | |||
| tone: { | |||
| Creative: '창의적인', | |||
| Balanced: '균형잡힌', | |||
| Precise: '정확한', | |||
| Custom: '사용자 정의', | |||
| }, | |||
| addMoreModel: '설정에서 다른 모델을 추가하세요', | |||
| }, | |||
| menus: { | |||
| status: '베타 버전', | |||
| explore: '탐색', | |||
| apps: '스튜디오', | |||
| plugins: '플러그인', | |||
| pluginsTips: '타사 플러그인을 통합하거나 ChatGPT 호환 AI 플러그인을 작성합니다.', | |||
| datasets: '지식', | |||
| datasetsTips: '곧 출시될 예정: 고유한 텍스트 데이터를 가져오거나 웹훅을 통해 실시간으로 데이터를 기록하여 LLM 컨텍스트를 강화합니다.', | |||
| newApp: '새로운 앱', | |||
| newDataset: '지식 만들기', | |||
| tools: '도구', | |||
| }, | |||
| userProfile: { | |||
| settings: '설정', | |||
| workspace: '작업 공간', | |||
| createWorkspace: '작업 공간 만들기', | |||
| helpCenter: '도움말 센터', | |||
| roadmapAndFeedback: '로드맵 및 피드백', | |||
| community: '커뮤니티', | |||
| about: 'Dify 소개', | |||
| logout: '로그아웃', | |||
| }, | |||
| settings: { | |||
| accountGroup: '계정', | |||
| workplaceGroup: '작업 공간', | |||
| account: '내 계정', | |||
| members: '멤버', | |||
| billing: '청구', | |||
| integrations: '통합', | |||
| language: '언어', | |||
| provider: '모델 제공자', | |||
| dataSource: '데이터 소스', | |||
| plugin: '플러그인', | |||
| apiBasedExtension: 'API 확장', | |||
| }, | |||
| account: { | |||
| avatar: '아바타', | |||
| name: '이름', | |||
| email: '이메일', | |||
| password: '비밀번호', | |||
| passwordTip: '일시적인 로그인 코드를 사용하지 않으려면 영구적인 비밀번호를 설정할 수 있습니다.', | |||
| setPassword: '비밀번호 설정', | |||
| resetPassword: '비밀번호 재설정', | |||
| currentPassword: '현재 비밀번호', | |||
| newPassword: '새 비밀번호', | |||
| confirmPassword: '비밀번호 확인', | |||
| notEqual: '비밀번호가 일치하지 않습니다.', | |||
| langGeniusAccount: 'Dify 계정', | |||
| langGeniusAccountTip: 'Dify 계정과 관련된 사용자 데이터.', | |||
| editName: '이름 편집', | |||
| showAppLength: '{{length}}개의 앱 표시', | |||
| }, | |||
| members: { | |||
| team: '팀', | |||
| invite: '초대', | |||
| name: '이름', | |||
| lastActive: '최근 활동', | |||
| role: '역할', | |||
| pending: '대기 중...', | |||
| owner: '소유자', | |||
| admin: '관리자', | |||
| adminTip: '앱 빌드 및 팀 설정 관리 가능', | |||
| normal: '일반', | |||
| normalTip: '앱 사용만 가능하고 앱 빌드는 불가능', | |||
| inviteTeamMember: '팀 멤버 초대', | |||
| inviteTeamMemberTip: '로그인 후에 바로 팀 데이터에 액세스할 수 있습니다.', | |||
| email: '이메일', | |||
| emailInvalid: '유효하지 않은 이메일 형식', | |||
| emailPlaceholder: '이메일 입력', | |||
| sendInvite: '초대 보내기', | |||
| invitedAsRole: '{{role}} 사용자로 초대되었습니다', | |||
| invitationSent: '초대가 전송되었습니다', | |||
| invitationSentTip: '초대가 전송되었으며, 그들은 Dify에 로그인하여 당신의 팀 데이터에 액세스할 수 있습니다.', | |||
| invitationLink: '초대 링크', | |||
| failedinvitationEmails: '다음 사용자들은 성공적으로 초대되지 않았습니다', | |||
| ok: '확인', | |||
| removeFromTeam: '팀에서 제거', | |||
| removeFromTeamTip: '팀 액세스가 제거됩니다', | |||
| setAdmin: '관리자 설정', | |||
| setMember: '일반 멤버 설정', | |||
| disinvite: '초대 취소', | |||
| deleteMember: '멤버 삭제', | |||
| you: '(나)', | |||
| }, | |||
| integrations: { | |||
| connected: '연결됨', | |||
| google: 'Google', | |||
| googleAccount: 'Google 계정으로 로그인', | |||
| github: 'GitHub', | |||
| githubAccount: 'GitHub 계정으로 로그인', | |||
| connect: '연결', | |||
| }, | |||
| language: { | |||
| displayLanguage: '표시 언어', | |||
| timezone: '시간대', | |||
| }, | |||
| provider: { | |||
| apiKey: 'API 키', | |||
| enterYourKey: '여기에 API 키를 입력하세요', | |||
| invalidKey: '유효하지 않은 OpenAI API 키', | |||
| validatedError: '검증 실패:', | |||
| validating: '키를 확인하는 중...', | |||
| saveFailed: 'API 키 저장 실패', | |||
| apiKeyExceedBill: '이 API KEY에는 사용 가능한 할당량이 없습니다. 자세한 내용은', | |||
| addKey: '키 추가', | |||
| comingSoon: '곧 출시됨', | |||
| editKey: '편집', | |||
| invalidApiKey: '유효하지 않은 API 키', | |||
| azure: { | |||
| apiBase: 'API 베이스', | |||
| apiBasePlaceholder: 'Azure OpenAI 엔드포인트의 API 베이스 URL.', | |||
| apiKey: 'API 키', | |||
| apiKeyPlaceholder: '여기에 API 키를 입력하세요', | |||
| helpTip: 'Azure OpenAI 서비스 배우기', | |||
| }, | |||
| openaiHosted: { | |||
| openaiHosted: '호스팅된 OpenAI', | |||
| onTrial: '트라이얼 중', | |||
| exhausted: '할당량이 다 사용되었습니다', | |||
| desc: 'Dify가 제공하는 OpenAI 호스팅 서비스를 사용하면 GPT-3.5와 같은 모델을 사용할 수 있습니다. 트라이얼 할당량이 다 사용되기 전에 다른 모델 제공자를 설정해야 합니다.', | |||
| callTimes: '호출 횟수', | |||
| usedUp: '트라이얼 할당량이 다 사용되었습니다. 다른 모델 제공자를 추가하세요.', | |||
| useYourModel: '현재 사용자 정의 모델 제공자를 사용 중입니다.', | |||
| close: '닫기', | |||
| }, | |||
| anthropicHosted: { | |||
| anthropicHosted: 'Anthropic Claude 호스팅', | |||
| onTrial: '트라이얼 중', | |||
| exhausted: '할당량이 다 사용되었습니다', | |||
| desc: '고급 대화 및 창의적인 콘텐츠 생성부터 상세한 지시까지 다양한 작업에 강력한 모델입니다.', | |||
| callTimes: '호출 횟수', | |||
| usedUp: '트라이얼 할당량이 다 사용되었습니다. 다른 모델 제공자를 추가하세요.', | |||
| useYourModel: '현재 사용자 정의 모델 제공자를 사용 중입니다.', | |||
| close: '닫기', | |||
| }, | |||
| anthropic: { | |||
| using: '임베드 기능을 사용 중입니다', | |||
| enableTip: 'Anthropic 모델을 활성화하려면 먼저 OpenAI 또는 Azure OpenAI 서비스에 바인딩해야 합니다.', | |||
| notEnabled: '비활성화됨', | |||
| keyFrom: 'Anthropic에서 API 키를 받으세요', | |||
| }, | |||
| encrypted: { | |||
| front: 'API KEY는', | |||
| back: '기술을 사용하여 암호화 및 저장됩니다.', | |||
| }, | |||
| }, | |||
| modelProvider: { | |||
| notConfigured: '시스템 모델이 아직 완전히 설정되지 않아 일부 기능을 사용할 수 없습니다.', | |||
| systemModelSettings: '시스템 모델 설정', | |||
| systemModelSettingsLink: '시스템 모델 설정이 필요한 이유는 무엇입니까?', | |||
| selectModel: '모델 선택', | |||
| setupModelFirst: '먼저 모델을 설정하세요', | |||
| systemReasoningModel: { | |||
| key: '시스템 추론 모델', | |||
| tip: '앱 구축에 사용되는 기본 추론 모델을 설정합니다. 또한 대화 이름 생성 및 다음 질문 제안과 같은 기능도 기본 추론 모델을 사용합니다.', | |||
| }, | |||
| embeddingModel: { | |||
| key: '임베딩 모델', | |||
| tip: '지식 문서 임베딩 처리의 기본 모델을 설정합니다. 지식 가져오기 및 임포트에 모두 이 임베딩 모델을 벡터화 처리에 사용합니다. 변경하면 가져온 지식과 질문 간의 벡터 차원이 일치하지 않아 가져오기에 실패합니다. 실패를 피하려면 이 모델을 변경하지 마세요.', | |||
| required: '임베딩 모델이 필요합니다', | |||
| }, | |||
| speechToTextModel: { | |||
| key: '음성-to-텍스트 모델', | |||
| tip: '대화에서의 음성-to-텍스트 입력에 사용되는 기본 모델을 설정합니다.', | |||
| }, | |||
| ttsModel: { | |||
| key: '텍스트-to-음성 모델', | |||
| tip: '대화에서의 텍스트-to-음성 입력에 사용되는 기본 모델을 설정합니다.', | |||
| }, | |||
| rerankModel: { | |||
| key: '재랭크 모델', | |||
| tip: '재랭크 모델은 사용자 쿼리와의 의미적 일치를 기반으로 후보 문서 목록을 재배열하여 의미적 순위를 향상시킵니다.', | |||
| }, | |||
| quota: '할당량', | |||
| searchModel: '검색 모델', | |||
| noModelFound: '{{model}}에 대한 모델을 찾을 수 없습니다', | |||
| models: '모델', | |||
| showMoreModelProvider: '더 많은 모델 제공자 표시', | |||
| selector: { | |||
| tip: '이 모델은 삭제되었습니다. 다른 모델을 추가하거나 다른 모델을 선택하세요.', | |||
| emptyTip: '사용 가능한 모델이 없습니다', | |||
| emptySetting: '설정으로 이동하여 구성하세요', | |||
| rerankTip: '재랭크 모델을 설정하세요', | |||
| }, | |||
| card: { | |||
| quota: '할당량', | |||
| onTrial: '트라이얼 중', | |||
| paid: '유료', | |||
| quotaExhausted: '할당량이 다 사용되었습니다', | |||
| callTimes: '호출 횟수', | |||
| tokens: '토큰', | |||
| buyQuota: 'Buy Quota', | |||
| priorityUse: '우선 사용', | |||
| removeKey: 'API 키 제거', | |||
| tip: '지불된 할당량에 우선순위가 부여됩니다. 평가판 할당량은 유료 할당량이 소진된 후 사용됩니다.', | |||
| }, | |||
| item: { | |||
| deleteDesc: '{{modelName}}은(는) 시스템 추론 모델로 사용 중입니다. 제거 후 일부 기능을 사용할 수 없습니다. 확인하시겠습니까?', | |||
| freeQuota: '무료 할당량', | |||
| }, | |||
| addApiKey: 'API 키 추가', | |||
| invalidApiKey: '잘못된 API 키', | |||
| encrypted: { | |||
| front: 'API 키는 다음 기술을 사용하여 암호화되어 저장됩니다', | |||
| back: ' 기술.', | |||
| }, | |||
| freeQuota: { | |||
| howToEarn: '얻는 방법', | |||
| }, | |||
| addMoreModelProvider: '모델 제공자 추가', | |||
| addModel: '모델 추가', | |||
| modelsNum: '{{num}}개의 모델', | |||
| showModels: '모델 표시', | |||
| showModelsNum: '{{num}}개의 모델 표시', | |||
| collapse: '축소', | |||
| config: '설정', | |||
| modelAndParameters: '모델 및 매개변수', | |||
| model: '모델', | |||
| featureSupported: '{{feature}} 지원됨', | |||
| callTimes: '호출 횟수', | |||
| credits: '메시지 크레딧', | |||
| buyQuota: '할당량 구매', | |||
| getFreeTokens: '무료 토큰 받기', | |||
| priorityUsing: '우선 사용', | |||
| deprecated: '사용 중단됨', | |||
| confirmDelete: '삭제를 확인하시겠습니까?', | |||
| quotaTip: '남은 무료 토큰 사용 가능', | |||
| loadPresets: '프리셋 로드', | |||
| parameters: '매개변수', | |||
| }, | |||
| dataSource: { | |||
| add: '데이터 소스 추가하기', | |||
| connect: '연결하기', | |||
| notion: { | |||
| title: 'Notion', | |||
| description: '노션을 지식 데이터 소스로 사용하기.', | |||
| connectedWorkspace: '작업 공간에 연결됨', | |||
| addWorkspace: '작업 공간에 추가하기', | |||
| connected: '연결됨', | |||
| disconnected: '연결 안됨', | |||
| changeAuthorizedPages: '허가된 페이지 변경하기', | |||
| pagesAuthorized: '페이지가 허가됨', | |||
| sync: '동기화', | |||
| remove: '제거하기', | |||
| selector: { | |||
| pageSelected: '페이지 선택됨', | |||
| searchPages: '페이지 검색...', | |||
| noSearchResult: '검색 결과 없음', | |||
| addPages: '페이지 추가하기', | |||
| preview: '미리보기', | |||
| }, | |||
| }, | |||
| }, | |||
| plugin: { | |||
| serpapi: { | |||
| apiKey: 'API 키', | |||
| apiKeyPlaceholder: 'API 키를 입력하세요', | |||
| keyFrom: 'SerpAPI 계정 페이지에서 SerpAPI 키를 가져오세요', | |||
| }, | |||
| }, | |||
| apiBasedExtension: { | |||
| title: 'API 기반 확장은 Dify 애플리케이션 전체에서 간편한 사용을 위한 설정을 단순화하고 집중적인 API 관리를 제공합니다.', | |||
| link: '사용자 정의 API 기반 확장을 개발하는 방법 배우기', | |||
| linkUrl: 'https://docs.dify.ai/features/extension/api_based_extension', | |||
| add: 'API 기반 확장 추가', | |||
| selector: { | |||
| title: 'API 기반 확장', | |||
| placeholder: 'API 기반 확장을 선택하세요', | |||
| manage: 'API 기반 확장 관리', | |||
| }, | |||
| modal: { | |||
| title: 'API 기반 확장 추가', | |||
| editTitle: 'API 기반 확장 편집', | |||
| name: { | |||
| title: '이름', | |||
| placeholder: '이름을 입력하세요', | |||
| }, | |||
| apiEndpoint: { | |||
| title: 'API 엔드포인트', | |||
| placeholder: 'API 엔드포인트를 입력하세요', | |||
| }, | |||
| apiKey: { | |||
| title: 'API 키', | |||
| placeholder: 'API 키를 입력하세요', | |||
| lengthError: 'API 키는 5자 미만이어야 합니다', | |||
| }, | |||
| }, | |||
| type: '유형', | |||
| }, | |||
| about: { | |||
| changeLog: '변경 로그', | |||
| updateNow: '지금 업데이트', | |||
| nowAvailable: 'Dify {{version}} 사용 가능합니다.', | |||
| latestAvailable: 'Dify {{version}} 최신 버전입니다.', | |||
| }, | |||
| appMenus: { | |||
| overview: '개요', | |||
| promptEng: '오케스트레이트', | |||
| apiAccess: 'API 액세스', | |||
| logAndAnn: '로그 및 어노테이션', | |||
| logs: '로그', | |||
| }, | |||
| environment: { | |||
| testing: '테스트', | |||
| development: '개발', | |||
| }, | |||
| appModes: { | |||
| completionApp: '텍스트 생성', | |||
| chatApp: '채팅 앱', | |||
| }, | |||
| datasetMenus: { | |||
| documents: '문서', | |||
| hitTesting: '검색 테스트', | |||
| settings: '설정', | |||
| emptyTip: '연결된 지식이 없습니다. 애플리케이션 또는 플러그인으로 이동하여 연결을 완료하세요.', | |||
| viewDoc: '문서 보기', | |||
| relatedApp: '관련 앱', | |||
| }, | |||
| voiceInput: { | |||
| speaking: '지금 말하고 있습니다...', | |||
| converting: '텍스트로 변환 중...', | |||
| notAllow: '마이크가 허용되지 않았습니다', | |||
| }, | |||
| modelName: { | |||
| 'gpt-3.5-turbo': 'GPT-3.5-Turbo', | |||
| 'gpt-3.5-turbo-16k': 'GPT-3.5-Turbo-16K', | |||
| 'gpt-4': 'GPT-4', | |||
| 'gpt-4-32k': 'GPT-4-32K', | |||
| 'text-davinci-003': 'Text-Davinci-003', | |||
| 'text-embedding-ada-002': 'Text-Embedding-Ada-002', | |||
| 'whisper-1': 'Whisper-1', | |||
| 'claude-instant-1': 'Claude-Instant', | |||
| 'claude-2': 'Claude-2', | |||
| }, | |||
| chat: { | |||
| renameConversation: '대화 이름 바꾸기', | |||
| conversationName: '대화 이름', | |||
| conversationNamePlaceholder: '대화 이름을 입력하세요', | |||
| conversationNameCanNotEmpty: '대화 이름은 필수입니다', | |||
| citation: { | |||
| title: '인용', | |||
| linkToDataset: '지식 링크', | |||
| characters: '문자수:', | |||
| hitCount: '검색 횟수:', | |||
| vectorHash: '벡터 해시:', | |||
| hitScore: '검색 점수:', | |||
| }, | |||
| }, | |||
| promptEditor: { | |||
| placeholder: '여기에 프롬프트 단어를 입력하세요. 변수를 삽입하려면 "{{"를 입력하고, 프롬프트 컨텐츠 블록을 삽입하려면 "/"를 입력하세요.', | |||
| context: { | |||
| item: { | |||
| title: '컨텍스트', | |||
| desc: '컨텍스트 템플릿을 삽입합니다.', | |||
| }, | |||
| modal: { | |||
| title: '{{num}} 번째 컨텍스트', | |||
| add: '컨텍스트 추가', | |||
| footer: '아래의 컨텍스트 섹션에서 컨텍스트를 관리할 수 있습니다.', | |||
| }, | |||
| }, | |||
| history: { | |||
| item: { | |||
| title: '대화 기록', | |||
| desc: '과거 메시지 템플릿을 삽입합니다.', | |||
| }, | |||
| modal: { | |||
| title: '예시', | |||
| user: '안녕하세요', | |||
| assistant: '안녕하세요! 오늘은 어떻게 도와드릴까요?', | |||
| edit: '대화 역할 이름 편집', | |||
| }, | |||
| }, | |||
| variable: { | |||
| item: { | |||
| title: '변수 및 외부 도구', | |||
| desc: '변수 및 외부 도구를 삽입합니다.', | |||
| }, | |||
| outputToolDisabledItem: { | |||
| title: '변수', | |||
| desc: '변수를 삽입합니다.', | |||
| }, | |||
| modal: { | |||
| add: '새로운 변수', | |||
| addTool: '새로운 도구', | |||
| }, | |||
| }, | |||
| query: { | |||
| item: { | |||
| title: '쿼리', | |||
| desc: '사용자 쿼리 템플릿을 삽입합니다.', | |||
| }, | |||
| }, | |||
| existed: '프롬프트에 이미 존재합니다', | |||
| }, | |||
| imageUploader: { | |||
| uploadFromComputer: '컴퓨터에서 업로드', | |||
| uploadFromComputerReadError: '이미지 읽기 실패. 다시 시도하세요.', | |||
| uploadFromComputerUploadError: '이미지 업로드 실패. 다시 업로드하세요.', | |||
| uploadFromComputerLimit: '업로드 이미지 크기는 {{size}} MB를 초과할 수 없습니다', | |||
| pasteImageLink: '이미지 링크 붙여넣기', | |||
| pasteImageLinkInputPlaceholder: '여기에 이미지 링크를 붙여넣으세요', | |||
| pasteImageLinkInvalid: '유효하지 않은 이미지 링크', | |||
| imageUpload: '이미지 업로드', | |||
| }, | |||
| tag: { | |||
| placeholder: '모든 태그', | |||
| addNew: '새 태그 추가', | |||
| noTag: '태그 없음', | |||
| noTagYet: '아직 태그가 없습니다', | |||
| addTag: '태그 추가', | |||
| editTag: '태그 편집', | |||
| manageTags: '태그 관리', | |||
| selectorPlaceholder: '검색 또는 생성할 문자를 입력하세요', | |||
| create: '생성', | |||
| delete: '태그 삭제', | |||
| deleteTip: '태그가 사용 중입니다. 삭제하시겠습니까?', | |||
| created: '태그가 성공적으로 생성되었습니다', | |||
| failed: '태그 생성에 실패했습니다', | |||
| }, | |||
| } | |||
| export default translation | |||
| @@ -0,0 +1,30 @@ | |||
| const translation = { | |||
| custom: '사용자 정의', | |||
| upgradeTip: { | |||
| prefix: '플랜을 업그레이드하여', | |||
| suffix: '브랜드를 사용자 정의하세요.', | |||
| }, | |||
| webapp: { | |||
| title: 'WebApp 브랜드 사용자 정의', | |||
| removeBrand: 'Powered by Dify 삭제', | |||
| changeLogo: 'Powered by 브랜드 이미지 변경', | |||
| changeLogoTip: '최소 크기 40x40px의 SVG 또는 PNG 형식', | |||
| }, | |||
| app: { | |||
| title: '앱 헤더 브랜드 사용자 정의', | |||
| changeLogoTip: '최소 크기 80x80px의 SVG 또는 PNG 형식', | |||
| }, | |||
| upload: '업로드', | |||
| uploading: '업로드 중', | |||
| uploadedFail: '이미지 업로드 실패. 다시 업로드해 주세요.', | |||
| change: '변경', | |||
| apply: '적용', | |||
| restore: '기본값으로 복원', | |||
| customize: { | |||
| contactUs: '문의하기', | |||
| prefix: '앱 내 브랜드 로고를 사용자 정의하려면,', | |||
| suffix: '엔터프라이즈 버전으로 업그레이드하세요.', | |||
| }, | |||
| } | |||
| export default translation | |||
| @@ -0,0 +1,131 @@ | |||
| const translation = { | |||
| steps: { | |||
| header: { | |||
| creation: '지식 생성', | |||
| update: '데이터 추가', | |||
| }, | |||
| one: '데이터 소스 선택', | |||
| two: '텍스트 전처리 및 클리닝', | |||
| three: '실행 및 완료', | |||
| }, | |||
| error: { | |||
| unavailable: '이 지식은 사용할 수 없습니다', | |||
| }, | |||
| stepOne: { | |||
| filePreview: '파일 미리보기', | |||
| pagePreview: '페이지 미리보기', | |||
| dataSourceType: { | |||
| file: '텍스트 파일에서 가져오기', | |||
| notion: 'Notion 동기화', | |||
| web: '웹 사이트 동기화', | |||
| }, | |||
| uploader: { | |||
| title: '텍스트 파일 업로드', | |||
| button: '파일을 끌어다 놓거나', | |||
| browse: '찾아보기', | |||
| tip: '{{supportTypes}}을(를) 지원합니다. 파일당 최대 크기는 {{size}}MB입니다.', | |||
| validation: { | |||
| typeError: '지원되지 않는 파일 유형입니다', | |||
| size: '파일 크기가 너무 큽니다. 최대 크기는 {{size}}MB입니다', | |||
| count: '여러 파일은 지원되지 않습니다', | |||
| filesNumber: '일괄 업로드 제한({{filesNumber}}개)에 도달했습니다.', | |||
| }, | |||
| cancel: '취소', | |||
| change: '변경', | |||
| failed: '업로드에 실패했습니다', | |||
| }, | |||
| notionSyncTitle: 'Notion에 연결되지 않았습니다', | |||
| notionSyncTip: 'Notion과 동기화하려면 먼저 Notion에 연결해야 합니다.', | |||
| connect: '연결하기', | |||
| button: '다음', | |||
| emptyDatasetCreation: '비어있는 지식 생성', | |||
| modal: { | |||
| title: '비어있는 지식 생성', | |||
| tip: '비어있는 지식에는 문서가 포함되지 않으며 언제든지 문서를 업로드할 수 있습니다.', | |||
| input: '지식 이름', | |||
| placeholder: '입력하세요', | |||
| nameNotEmpty: '이름은 비워둘 수 없습니다', | |||
| nameLengthInvaild: '이름은 1~40자여야 합니다', | |||
| cancelButton: '취소', | |||
| confirmButton: '생성', | |||
| failed: '생성에 실패했습니다', | |||
| }, | |||
| }, | |||
| stepTwo: { | |||
| segmentation: '청크 설정', | |||
| auto: '자동', | |||
| autoDescription: '청크 및 전처리 규칙을 자동으로 설정합니다. 처음 사용자는 이 옵션을 선택하는 것을 권장합니다.', | |||
| custom: '사용자 설정', | |||
| customDescription: '청크 규칙, 청크 길이, 전처리 규칙 등을 사용자 정의합니다.', | |||
| separator: '세그먼트 식별자', | |||
| separatorPlaceholder: '예: 줄바꿈(\\\\n) 또는 특수 구분자(예: "***")', | |||
| maxLength: '최대 청크 길이', | |||
| overlap: '청크 중첩', | |||
| overlapTip: '청크 중첩을 설정하여 그 사이의 의미적 연관성을 유지하고 검색 효과를 향상시킬 수 있습니다. 최대 청크 크기의 10%~25%로 설정하는 것이 좋습니다.', | |||
| overlapCheck: '청크 중첩은 최대 청크 길이를 초과할 수 없습니다', | |||
| rules: '텍스트 전처리 규칙', | |||
| removeExtraSpaces: '연속된 공백, 줄바꿈, 탭을 대체합니다', | |||
| removeUrlEmails: '모든 URL과 이메일 주소를 제거합니다', | |||
| removeStopwords: '일반적인 불용어(예: "a", "an", "the" 등)를 제거합니다', | |||
| preview: '미리보기', | |||
| reset: '초기화', | |||
| indexMode: '인덱스 모드', | |||
| qualified: '고품질', | |||
| recommend: '추천', | |||
| qualifiedTip: '사용자 쿼리에 대해 더 높은 정확성을 제공하기 위해 기본 시스템 임베딩 인터페이스를 호출하여 처리합니다.', | |||
| warning: '모델 제공자의 API 키를 설정하세요.', | |||
| click: '설정으로 이동', | |||
| economical: '경제적', | |||
| economicalTip: '오프라인 벡터 엔진, 키워드 인덱스 등을 사용하여 토큰 소비 없이 정확도를 낮춥니다.', | |||
| QATitle: '질문과 답변 형식으로 세그먼트화', | |||
| QATip: '이 옵션을 활성화하면 추가 토큰이 소비됩니다', | |||
| QALanguage: '사용 언어', | |||
| emstimateCost: '예상 비용', | |||
| emstimateSegment: '예상 청크 수', | |||
| segmentCount: '청크', | |||
| calculating: '계산 중...', | |||
| fileSource: '문서 전처리', | |||
| notionSource: '페이지 전처리', | |||
| other: '기타', | |||
| fileUnit: '파일', | |||
| notionUnit: '페이지', | |||
| previousStep: '이전 단계', | |||
| nextStep: '저장하고 처리', | |||
| save: '저장하고 처리', | |||
| cancel: '취소', | |||
| sideTipTitle: '청크와 전처리가 필요한 이유', | |||
| sideTipP1: '텍스트 데이터를 처리할 때 청크와 클리닝은 두 가지 중요한 전처리 단계입니다.', | |||
| sideTipP2: '세그멘테이션은 긴 텍스트를 단락으로 분할하여 모델이 이해하기 쉽게 합니다. 이로 인해 모델 결과의 품질과 관련성이 향상됩니다.', | |||
| sideTipP3: '클리닝은 불필요한 문자 및 형식을 제거하여 지식을 더 깔끔하고 분석 가능한 것으로 만듭니다.', | |||
| sideTipP4: '적절한 청크와 클리닝은 모델의 성능을 향상시키고 정확하고 가치 있는 결과를 제공합니다.', | |||
| previewTitle: '미리보기', | |||
| previewTitleButton: '미리보기', | |||
| previewButton: '질문-답변 형식으로 전환', | |||
| previewSwitchTipStart: '현재 청크 미리보기는 텍스트 형식입니다. 질문과 답변 형식 미리보기로 전환하면', | |||
| previewSwitchTipEnd: ' 추가 토큰이 소비됩니다', | |||
| characters: '문자', | |||
| indexSettedTip: '인덱스 방식을 변경하려면,', | |||
| retrivalSettedTip: '인덱스 방식을 변경하려면,', | |||
| datasetSettingLink: '지식 설정', | |||
| }, | |||
| stepThree: { | |||
| creationTitle: '🎉 지식이 생성되었습니다', | |||
| creationContent: '지식 이름이 자동으로 설정되었지만 언제든지 변경할 수 있습니다', | |||
| label: '지식 이름', | |||
| additionTitle: '🎉 문서가 업로드되었습니다', | |||
| additionP1: '문서가 지식에 업로드되었습니다', | |||
| additionP2: '지식의 문서 목록에서 찾을 수 있습니다.', | |||
| stop: '처리 중지', | |||
| resume: '처리 재개', | |||
| navTo: '문서로 이동', | |||
| sideTipTitle: '다음 단계는 무엇인가요', | |||
| sideTipContent: | |||
| '문서 인덱싱이 완료되면 지식을 응용 프로그램 컨텍스트로 통합할 수 있습니다. 프롬프트 오케스트레이션 페이지에서 컨텍스트 설정을 찾을 수 있습니다. 또한 독립된 ChatGPT 인덱스 플러그인으로 출시할 수도 있습니다.', | |||
| modelTitle: '임베딩을 중지해도 괜찮습니까?', | |||
| modelContent: '나중에 처리를 다시 시작해야 할 경우, 중단한 위치에서 계속합니다.', | |||
| modelButtonConfirm: '확인', | |||
| modelButtonCancel: '취소', | |||
| }, | |||
| } | |||
| export default translation | |||
| @@ -0,0 +1,348 @@ | |||
| const translation = { | |||
| list: { | |||
| title: '문서', | |||
| desc: '지식의 모든 파일이 여기에 표시되며, 전체 지식이 Dify의 인용문이나 챗 플러그인을 통해 링크되거나 색인화될 수 있습니다.', | |||
| addFile: '파일 추가', | |||
| addPages: '페이지 추가', | |||
| table: { | |||
| header: { | |||
| fileName: '파일명', | |||
| words: '단어 수', | |||
| hitCount: '검색 횟수', | |||
| uploadTime: '업로드 시간', | |||
| status: '상태', | |||
| action: '동작', | |||
| }, | |||
| }, | |||
| action: { | |||
| uploadFile: '새 파일 업로드', | |||
| settings: '세그먼트 설정', | |||
| addButton: '청크 추가', | |||
| add: '청크 추가', | |||
| batchAdd: '일괄 추가', | |||
| archive: '아카이브', | |||
| unarchive: '아카이브 해제', | |||
| delete: '삭제', | |||
| enableWarning: '아카이브된 파일은 활성화할 수 없습니다.', | |||
| sync: '동기화', | |||
| }, | |||
| index: { | |||
| enable: '활성화', | |||
| disable: '비활성화', | |||
| all: '모두', | |||
| enableTip: '파일을 색인화할 수 있습니다.', | |||
| disableTip: '파일을 색인화할 수 없습니다.', | |||
| }, | |||
| status: { | |||
| queuing: '대기 중', | |||
| indexing: '색인화 중', | |||
| paused: '일시 중지됨', | |||
| error: '오류', | |||
| available: '사용 가능', | |||
| enabled: '활성화됨', | |||
| disabled: '비활성화됨', | |||
| archived: '아카이브됨', | |||
| }, | |||
| empty: { | |||
| title: '아직 문서가 없습니다', | |||
| upload: { | |||
| tip: '파일을 업로드하거나 웹 사이트에서 동기화하거나 Notion이나 GitHub 같은 웹 앱에서 동기화할 수 있습니다.', | |||
| }, | |||
| sync: { | |||
| tip: 'Dify는 정기적으로 Notion에서 파일을 다운로드하고 처리합니다.', | |||
| }, | |||
| }, | |||
| delete: { | |||
| title: '정말 삭제하시겠습니까?', | |||
| content: '나중에 처리를 계속해야 하는 경우 중단한 곳에서 계속합니다.', | |||
| }, | |||
| batchModal: { | |||
| title: '일괄 추가', | |||
| csvUploadTitle: 'CSV 파일을 여기로 드래그 앤 드롭하거나', | |||
| browse: '찾아보기', | |||
| tip: 'CSV 파일은 다음 구조를 따라야 합니다:', | |||
| question: '질문', | |||
| answer: '답변', | |||
| contentTitle: '청크 내용', | |||
| content: '내용', | |||
| template: '여기서 템플릿 다운로드', | |||
| cancel: '취소', | |||
| run: '일괄 실행', | |||
| runError: '일괄 실행에 실패했습니다', | |||
| processing: '일괄 처리 중', | |||
| completed: '가져오기 완료', | |||
| error: '가져오기 오류', | |||
| ok: '확인', | |||
| }, | |||
| }, | |||
| metadata: { | |||
| title: '메타데이터', | |||
| desc: '문서 메타데이터에 레이블을 붙여 AI가 신속하게 접근할 수 있고 사용자에게 출처가 공개됩니다.', | |||
| dateTimeFormat: 'YYYY년 M월 D일 hh:mm A', | |||
| docTypeSelectTitle: '문서 유형을 선택하세요', | |||
| docTypeChangeTitle: '문서 유형 변경', | |||
| docTypeSelectWarning: '문서 유형을 변경하면 현재 입력된 메타데이터가 유지되지 않습니다.', | |||
| firstMetaAction: '시작하기', | |||
| placeholder: { | |||
| add: '추가', | |||
| select: '선택', | |||
| }, | |||
| source: { | |||
| upload_file: '파일 업로드', | |||
| notion: 'Notion에서 동기화', | |||
| github: 'GitHub에서 동기화', | |||
| }, | |||
| type: { | |||
| book: '도서', | |||
| webPage: '웹 페이지', | |||
| paper: '논문', | |||
| socialMediaPost: '소셜 미디어 게시물', | |||
| personalDocument: '개인 문서', | |||
| businessDocument: '비즈니스 문서', | |||
| IMChat: 'IM 채팅', | |||
| wikipediaEntry: '위키피디아 항목', | |||
| notion: 'Notion에서 동기화', | |||
| github: 'GitHub에서 동기화', | |||
| technicalParameters: '기술적 매개변수', | |||
| }, | |||
| field: { | |||
| processRule: { | |||
| processDoc: '문서 처리', | |||
| segmentRule: '청크 규칙', | |||
| segmentLength: '청크 길이', | |||
| processClean: '텍스트 전처리', | |||
| }, | |||
| book: { | |||
| title: '제목', | |||
| language: '언어', | |||
| author: '저자', | |||
| publisher: '출판사', | |||
| publicationDate: '출판일', | |||
| ISBN: 'ISBN', | |||
| category: '카테고리', | |||
| }, | |||
| webPage: { | |||
| title: '제목', | |||
| url: 'URL', | |||
| language: '언어', | |||
| authorPublisher: '저자/출판사', | |||
| publishDate: '공개일', | |||
| topicsKeywords: '주제/키워드', | |||
| description: '설명', | |||
| }, | |||
| paper: { | |||
| title: '제목', | |||
| language: '언어', | |||
| author: '저자', | |||
| publishDate: '공개일', | |||
| journalConferenceName: '저널/학회명', | |||
| volumeIssuePage: '권호페이지', | |||
| DOI: 'DOI', | |||
| topicsKeywords: '주제/키워드', | |||
| abstract: '요약', | |||
| }, | |||
| socialMediaPost: { | |||
| platform: '플랫폼', | |||
| authorUsername: '저자/사용자명', | |||
| publishDate: '공개일', | |||
| postURL: '게시물 URL', | |||
| topicsTags: '주제/태그', | |||
| }, | |||
| personalDocument: { | |||
| title: '제목', | |||
| author: '저자', | |||
| creationDate: '생성일', | |||
| lastModifiedDate: '최종 수정일', | |||
| documentType: '문서 유형', | |||
| tagsCategory: '태그/카테고리', | |||
| }, | |||
| businessDocument: { | |||
| title: '제목', | |||
| author: '저자', | |||
| creationDate: '생성일', | |||
| lastModifiedDate: '최종 수정일', | |||
| documentType: '문서 유형', | |||
| departmentTeam: '부서/팀', | |||
| }, | |||
| IMChat: { | |||
| chatPlatform: '채팅 플랫폼', | |||
| chatPartiesGroupName: '채팅 참여자/그룹명', | |||
| participants: '참여자', | |||
| startDate: '시작일', | |||
| endDate: '종료일', | |||
| topicsKeywords: '주제/키워드', | |||
| fileType: '파일 유형', | |||
| }, | |||
| wikipediaEntry: { | |||
| title: '제목', | |||
| language: '언어', | |||
| webpageURL: '웹 페이지 URL', | |||
| editorContributor: '편집자/기고자', | |||
| lastEditDate: '최종 편집일', | |||
| summaryIntroduction: '요약/소개', | |||
| }, | |||
| notion: { | |||
| title: '제목', | |||
| language: '언어', | |||
| author: '저자', | |||
| createdTime: '생성 일시', | |||
| lastModifiedTime: '최종 수정 일시', | |||
| url: 'URL', | |||
| tag: '태그', | |||
| description: '설명', | |||
| }, | |||
| github: { | |||
| repoName: '저장소 이름', | |||
| repoDesc: '저장소 설명', | |||
| repoOwner: '저장소 소유자', | |||
| fileName: '파일 이름', | |||
| filePath: '파일 경로', | |||
| programmingLang: '프로그래밍 언어', | |||
| url: 'URL', | |||
| license: '라이선스', | |||
| lastCommitTime: '최종 커밋 시간', | |||
| lastCommitAuthor: '최종 커밋 작성자', | |||
| }, | |||
| originInfo: { | |||
| originalFilename: '원본 파일 이름', | |||
| originalFileSize: '원본 파일 크기', | |||
| uploadDate: '업로드 일시', | |||
| lastUpdateDate: '최종 업데이트 일시', | |||
| source: '소스', | |||
| }, | |||
| technicalParameters: { | |||
| segmentSpecification: '청크 사양', | |||
| segmentLength: '청크 길이', | |||
| avgParagraphLength: '평균 문단 길이', | |||
| paragraphs: '문단', | |||
| hitCount: '검색 횟수', | |||
| embeddingTime: '임베딩 시간', | |||
| embeddedSpend: '임베딩 시간', | |||
| }, | |||
| }, | |||
| languageMap: { | |||
| zh: '중국어', | |||
| en: '영어', | |||
| es: '스페인어', | |||
| fr: '프랑스어', | |||
| de: '독일어', | |||
| ja: '일본어', | |||
| ko: '한국어', | |||
| ru: '러시아어', | |||
| ar: '아랍어', | |||
| pt: '포르투갈어', | |||
| it: '이탈리아어', | |||
| nl: '네덜란드어', | |||
| pl: '폴란드어', | |||
| sv: '스웨덴어', | |||
| tr: '터키어', | |||
| he: '히브리어', | |||
| hi: '힌디어', | |||
| da: '덴마크어', | |||
| fi: '핀란드어', | |||
| no: '노르웨이어', | |||
| hu: '헝가리어', | |||
| el: '그리스어', | |||
| cs: '체코어', | |||
| th: '태국어', | |||
| id: '인도네시아어', | |||
| }, | |||
| categoryMap: { | |||
| book: { | |||
| fiction: '소설', | |||
| biography: '전기', | |||
| history: '역사', | |||
| science: '과학', | |||
| technology: '기술', | |||
| education: '교육', | |||
| philosophy: '철학', | |||
| religion: '종교', | |||
| socialSciences: '사회과학', | |||
| art: '예술', | |||
| travel: '여행', | |||
| health: '건강', | |||
| selfHelp: '자기 도움', | |||
| businessEconomics: '비즈니스/경제', | |||
| cooking: '요리', | |||
| childrenYoungAdults: '어린이/청소년', | |||
| comicsGraphicNovels: '만화/그래픽 소설', | |||
| poetry: '시', | |||
| drama: '연극', | |||
| other: '기타', | |||
| }, | |||
| personalDoc: { | |||
| notes: '메모', | |||
| blogDraft: '블로그 초안', | |||
| diary: '다이어리', | |||
| researchReport: '연구 보고서', | |||
| bookExcerpt: '책 발췌', | |||
| schedule: '일정', | |||
| list: '목록', | |||
| projectOverview: '프로젝트 개요', | |||
| photoCollection: '사진 컬렉션', | |||
| creativeWriting: '창작 글', | |||
| codeSnippet: '코드 스니펫', | |||
| designDraft: '디자인 초안', | |||
| personalResume: '이력서', | |||
| other: '기타', | |||
| }, | |||
| businessDoc: { | |||
| meetingMinutes: '회의록', | |||
| researchReport: '연구 보고서', | |||
| proposal: '제안서', | |||
| employeeHandbook: '직원 안내서', | |||
| trainingMaterials: '교육 자료', | |||
| requirementsDocument: '요구 사항 문서', | |||
| designDocument: '디자인 문서', | |||
| productSpecification: '제품 사양서', | |||
| financialReport: '재무 보고서', | |||
| marketAnalysis: '시장 분석', | |||
| projectPlan: '프로젝트 계획서', | |||
| teamStructure: '팀 구조', | |||
| policiesProcedures: '정책 및 절차', | |||
| contractsAgreements: '계약 및 협약', | |||
| emailCorrespondence: '이메일 통신', | |||
| other: '기타', | |||
| }, | |||
| }, | |||
| }, | |||
| embedding: { | |||
| processing: '임베딩 처리 중...', | |||
| paused: '임베딩이 일시 중지되었습니다', | |||
| completed: '임베딩이 완료되었습니다', | |||
| error: '임베딩 오류', | |||
| docName: '문서 전처리', | |||
| mode: '세그먼트 규칙', | |||
| segmentLength: '청크의 길이', | |||
| textCleaning: '텍스트 전처리', | |||
| segments: '세그먼트', | |||
| highQuality: '고품질 모드', | |||
| economy: '경제 모드', | |||
| estimate: '소비량 예상', | |||
| stop: '처리 중지', | |||
| resume: '처리 재개', | |||
| automatic: '자동', | |||
| custom: '사용자 정의', | |||
| previewTip: '임베딩이 완료된 후에 세그먼트 미리보기를 사용할 수 있습니다', | |||
| }, | |||
| segment: { | |||
| paragraphs: '단락', | |||
| keywords: '키워드', | |||
| addKeyWord: '키워드 추가', | |||
| keywordError: '키워드 최대 길이는 20자입니다', | |||
| characters: '문자', | |||
| hitCount: '검색 횟수', | |||
| vectorHash: '벡터 해시: ', | |||
| questionPlaceholder: '질문을 입력하세요', | |||
| questionEmpty: '질문을 비워둘 수 없습니다', | |||
| answerPlaceholder: '답변을 입력하세요', | |||
| answerEmpty: '답변을 비워둘 수 없습니다', | |||
| contentPlaceholder: '내용을 입력하세요', | |||
| contentEmpty: '내용을 비워둘 수 없습니다', | |||
| newTextSegment: '새로운 텍스트 세그먼트', | |||
| newQaSegment: '새로운 Q&A 세그먼트', | |||
| delete: '이 청크를 삭제하시겠습니까?', | |||
| }, | |||
| } | |||
| export default translation | |||
| @@ -0,0 +1,28 @@ | |||
| const translation = { | |||
| title: '검색 테스트', | |||
| desc: '주어진 쿼리 텍스트에 기반하여 지식의 검색 효과를 테스트합니다.', | |||
| dateTimeFormat: 'YYYY/MM/DD HH:mm', | |||
| recents: '최근 결과', | |||
| table: { | |||
| header: { | |||
| source: '소스', | |||
| text: '텍스트', | |||
| time: '시간', | |||
| }, | |||
| }, | |||
| input: { | |||
| title: '소스 텍스트', | |||
| placeholder: '텍스트를 입력하세요. 간결한 설명문이 좋습니다.', | |||
| countWarning: '최대 200자까지 입력할 수 있습니다.', | |||
| indexWarning: '고품질 지식만.', | |||
| testing: '테스트 중', | |||
| }, | |||
| hit: { | |||
| title: '검색 결과 단락', | |||
| emptyTip: '검색 테스트 결과가 여기에 표시됩니다.', | |||
| }, | |||
| noRecentTip: '최근 쿼리 결과가 없습니다.', | |||
| viewChart: '벡터 차트 보기', | |||
| } | |||
| export default translation | |||
| @@ -0,0 +1,33 @@ | |||
| const translation = { | |||
| title: '지식 설정', | |||
| desc: '여기에서 지식의 속성과 작동 방법을 변경할 수 있습니다.', | |||
| form: { | |||
| name: '지식 이름', | |||
| namePlaceholder: '지식 이름을 입력하세요', | |||
| nameError: '이름은 비워둘 수 없습니다', | |||
| desc: '지식 설명', | |||
| descInfo: '지식 내용을 개괄하는 명확한 텍스트 설명을 작성하세요. 이 설명은 여러 지식 중에서 선택하는 기준으로 사용됩니다.', | |||
| descPlaceholder: '이 지식에 포함된 내용을 설명하세요. 자세한 설명은 AI가 지식 내용에 빠르게 접근할 수 있도록 합니다. 비어 있으면 Dify가 기본 검색 전략을 사용합니다.', | |||
| descWrite: '좋은 지식 설명 작성 방법 배우기', | |||
| permissions: '권한', | |||
| permissionsOnlyMe: '나만', | |||
| permissionsAllMember: '모든 팀 멤버', | |||
| indexMethod: '인덱스 방법', | |||
| indexMethodHighQuality: '고품질', | |||
| indexMethodHighQualityTip: '사용자 쿼리 시 더 높은 정확도를 제공하기 위해 OpenAI의 임베딩 인터페이스를 호출하여 처리합니다.', | |||
| indexMethodEconomy: '경제적', | |||
| indexMethodEconomyTip: '오프라인 벡터 엔진, 키워드 인덱스 등을 사용하여 토큰을 소비하지 않고도 정확도를 감소시킵니다.', | |||
| embeddingModel: '임베딩 모델', | |||
| embeddingModelTip: '임베딩 모델 변경은', | |||
| embeddingModelTipLink: '설정', | |||
| retrievalSetting: { | |||
| title: '검색 설정', | |||
| learnMore: '자세히 알아보기', | |||
| description: ' 검색 방법에 대한 자세한 정보', | |||
| longDescription: ' 검색 방법에 대한 자세한 내용은 언제든지 지식 설정에서 변경할 수 있습니다.', | |||
| }, | |||
| save: '저장', | |||
| }, | |||
| } | |||
| export default translation | |||
| @@ -0,0 +1,48 @@ | |||
| const translation = { | |||
| knowledge: '지식', | |||
| documentCount: ' 문서', | |||
| wordCount: ' k 단어', | |||
| appCount: ' 연결된 앱', | |||
| createDataset: '지식 생성', | |||
| createDatasetIntro: '자체 텍스트 데이터를 가져오거나 LLM 컨텍스트를 강화하기 위해 웹훅을 통해 실시간 데이터를 기록할 수 있습니다.', | |||
| deleteDatasetConfirmTitle: '이 지식을 삭제하시겠습니까?', | |||
| deleteDatasetConfirmContent: '지식을 삭제하면 다시 되돌릴 수 없습니다. 사용자는 더 이상 귀하의 지식에 액세스할 수 없으며 모든 프롬프트 설정과 로그가 영구적으로 삭제됩니다.', | |||
| datasetDeleted: '지식이 삭제되었습니다', | |||
| datasetDeleteFailed: '지식 삭제에 실패했습니다', | |||
| didYouKnow: '알고 계셨나요?', | |||
| intro1: '지식을 Dify 애플리케이션에 ', | |||
| intro2: '컨텍스트로', | |||
| intro3: ' 통합할 수 있습니다.', | |||
| intro4: '혹은, ', | |||
| intro5: '이처럼', | |||
| intro6: ' 독립적인 ChatGPT 인덱스 플러그인으로 공개할 수 있습니다', | |||
| unavailable: '사용 불가', | |||
| unavailableTip: '임베딩 모델을 사용할 수 없습니다. 기본 임베딩 모델을 설정해야 합니다.', | |||
| datasets: '지식', | |||
| datasetsApi: 'API', | |||
| retrieval: { | |||
| semantic_search: { | |||
| title: '벡터 검색', | |||
| description: '쿼리의 임베딩을 생성하고, 해당 벡터 표현에 가장 유사한 텍스트 청크를 검색합니다.', | |||
| }, | |||
| full_text_search: { | |||
| title: '전체 텍스트 검색', | |||
| description: '문서 내 모든 용어를 인덱싱하여 사용자가 원하는 용어를 검색하고 관련 텍스트 청크를 가져올 수 있게 합니다.', | |||
| }, | |||
| hybrid_search: { | |||
| title: '하이브리드 검색', | |||
| description: '전체 텍스트 검색과 벡터 검색을 동시에 실행하고 사용자 쿼리에 가장 적합한 매치를 선택하기 위해 다시 랭크를 매깁니다. 재랭크 모델 API 설정이 필요합니다.', | |||
| recommend: '추천', | |||
| }, | |||
| invertedIndex: { | |||
| title: '역 인덱스', | |||
| description: '효율적인 검색에 사용되는 구조입니다. 각 용어는 문서나 웹 페이지에 포함된 것을 가리키며, 용어마다 체계적으로 정리되어 있습니다.', | |||
| }, | |||
| change: '변경', | |||
| changeRetrievalMethod: '검색 방법 변경', | |||
| }, | |||
| docsFailedNotice: '문서 인덱스에 실패했습니다', | |||
| retry: '재시도', | |||
| } | |||
| export default translation | |||
| @@ -0,0 +1,43 @@ | |||
| const translation = { | |||
| title: '탐색', | |||
| sidebar: { | |||
| discovery: '탐색', | |||
| chat: '채팅', | |||
| workspace: '작업 공간', | |||
| action: { | |||
| pin: '고정', | |||
| unpin: '고정 해제', | |||
| rename: '이름 변경', | |||
| delete: '삭제', | |||
| }, | |||
| delete: { | |||
| title: '앱 삭제', | |||
| content: '이 앱을 삭제해도 괜찮습니까?', | |||
| }, | |||
| }, | |||
| apps: { | |||
| title: 'Dify로 앱 탐색', | |||
| description: '이 템플릿 앱을 즉시 사용하거나 템플릿을 기반으로 고유한 앱을 사용자 정의하세요.', | |||
| allCategories: '모든 카테고리', | |||
| }, | |||
| appCard: { | |||
| addToWorkspace: '작업 공간에 추가', | |||
| customize: '사용자 정의', | |||
| }, | |||
| appCustomize: { | |||
| title: '{{name}}으로 앱 만들기', | |||
| subTitle: '앱 아이콘 및 이름', | |||
| nameRequired: '앱 이름은 필수입니다', | |||
| }, | |||
| category: { | |||
| Assistant: '어시스턴트', | |||
| Writing: '작성', | |||
| Translate: '번역', | |||
| Programming: '프로그래밍', | |||
| Agent: '에이전트', | |||
| Workflow: '워크플로우', | |||
| HR: '인사', | |||
| }, | |||
| } | |||
| export default translation | |||
| @@ -0,0 +1,3 @@ | |||
| const translation = {} | |||
| export default translation | |||
| @@ -0,0 +1,60 @@ | |||
| const translation = { | |||
| pageTitle: '시작하기 🎉', | |||
| welcome: 'Dify에 오신 것을 환영합니다. 계속하려면 로그인하세요.', | |||
| email: '이메일 주소', | |||
| emailPlaceholder: '이메일 주소를 입력하세요', | |||
| password: '비밀번호', | |||
| passwordPlaceholder: '비밀번호를 입력하세요', | |||
| name: '사용자 이름', | |||
| namePlaceholder: '사용자 이름을 입력하세요', | |||
| forget: '비밀번호를 잊으셨나요?', | |||
| signBtn: '로그인', | |||
| installBtn: '설치', | |||
| setAdminAccount: '관리자 계정 설정', | |||
| setAdminAccountDesc: '앱 생성 및 LLM 제공자 관리 등 최고 권한을 가진 관리자 계정 설정', | |||
| createAndSignIn: '계정 생성 및 로그인', | |||
| oneMoreStep: '마지막 단계', | |||
| createSample: '이 정보를 기반으로 샘플 앱을 생성합니다.', | |||
| invitationCode: '초대 코드', | |||
| invitationCodePlaceholder: '초대 코드를 입력하세요', | |||
| interfaceLanguage: '인터페이스 언어', | |||
| timezone: '시간대', | |||
| go: 'Dify로 이동', | |||
| sendUsMail: '간단한 소개를 메일로 보내주시면 초대 요청을 처리해드립니다.', | |||
| acceptPP: '개인정보 처리 방침에 동의합니다.', | |||
| reset: '비밀번호를 재설정하려면 다음 명령을 실행하세요:', | |||
| withGitHub: 'GitHub로 계속', | |||
| withGoogle: 'Google로 계속', | |||
| rightTitle: 'LLM의 최대 잠재력을 발휘하세요', | |||
| rightDesc: '매력적이고 조작 가능하며 개선 가능한 AI 애플리케이션을 쉽게 구축하세요.', | |||
| tos: '이용약관', | |||
| pp: '개인정보 처리 방침', | |||
| tosDesc: '가입함으로써 다음 내용에 동의하게 됩니다.', | |||
| goToInit: '계정이 초기화되지 않았다면 초기화 페이지로 이동하세요.', | |||
| donthave: '계정이 없으신가요?', | |||
| invalidInvitationCode: '유효하지 않은 초대 코드입니다.', | |||
| accountAlreadyInited: '계정은 이미 초기화되었습니다.', | |||
| error: { | |||
| emailEmpty: '이메일 주소를 입력하세요.', | |||
| emailInValid: '유효한 이메일 주소를 입력하세요.', | |||
| nameEmpty: '사용자 이름을 입력하세요.', | |||
| passwordEmpty: '비밀번호를 입력하세요.', | |||
| passwordInvalid: '비밀번호는 문자와 숫자를 포함하고 8자 이상이어야 합니다.', | |||
| }, | |||
| license: { | |||
| tip: 'Dify Community Edition을 시작하기 전에 GitHub의', | |||
| link: '오픈 소스 라이선스', | |||
| }, | |||
| join: '가입하기', | |||
| joinTipStart: '당신을 초대합니다.', | |||
| joinTipEnd: '팀에 가입하세요.', | |||
| invalid: '링크의 유효 기간이 만료되었습니다.', | |||
| explore: 'Dify를 탐색하세요', | |||
| activatedTipStart: '이제', | |||
| activatedTipEnd: '팀에 가입되었습니다.', | |||
| activated: '지금 로그인하세요', | |||
| adminInitPassword: '관리자 초기화 비밀번호', | |||
| validate: '확인', | |||
| } | |||
| export default translation | |||
| @@ -0,0 +1,3 @@ | |||
| const translation = {} | |||
| export default translation | |||
| @@ -0,0 +1,29 @@ | |||
| const translation = { | |||
| input: '입력', | |||
| result: '결과', | |||
| detail: '상세정보', | |||
| tracing: '트레이싱', | |||
| resultPanel: { | |||
| status: '상태', | |||
| time: '소요 시간', | |||
| tokens: '토큰 총합', | |||
| }, | |||
| meta: { | |||
| title: '메타데이터', | |||
| status: '상태', | |||
| version: '버전', | |||
| executor: '실행자', | |||
| startTime: '시작 시간', | |||
| time: '소요 시간', | |||
| tokens: '토큰 총합', | |||
| steps: '실행 단계', | |||
| }, | |||
| resultEmpty: { | |||
| title: '이 실행에서는 JSON 형식만 출력됩니다', | |||
| tipLeft: '를 방문해주세요', | |||
| link: '상세 정보 패널', | |||
| tipRight: '를 확인하세요.', | |||
| }, | |||
| } | |||
| export default translation | |||
| @@ -0,0 +1,70 @@ | |||
| const translation = { | |||
| common: { | |||
| welcome: '이용해주셔서 감사합니다', | |||
| appUnavailable: '앱을 사용할 수 없습니다', | |||
| appUnkonwError: '앱을 사용할 수 없습니다', | |||
| }, | |||
| chat: { | |||
| newChat: '새 채팅', | |||
| pinnedTitle: '고정됨', | |||
| unpinnedTitle: '채팅', | |||
| newChatDefaultName: '새 대화', | |||
| resetChat: '대화 재설정', | |||
| powerBy: 'Powered by', | |||
| prompt: '프롬프트', | |||
| privatePromptConfigTitle: '채팅 설정', | |||
| publicPromptConfigTitle: '초기 프롬프트', | |||
| configStatusDes: '시작하기 전에 채팅 설정을 변경할 수 있습니다', | |||
| configDisabled: '이전 세션의 설정이 현재 세션에서 사용되었습니다.', | |||
| startChat: '채팅 시작', | |||
| privacyPolicyLeft: '앱 개발자가 제공하는', | |||
| privacyPolicyMiddle: '개인 정보 보호 정책', | |||
| privacyPolicyRight: '을 읽어보세요.', | |||
| deleteConversation: { | |||
| title: '대화 삭제', | |||
| content: '이 대화를 삭제하시겠습니까?', | |||
| }, | |||
| tryToSolve: '해결하려고 합니다', | |||
| temporarySystemIssue: '죄송합니다. 일시적인 시스템 문제가 발생했습니다.', | |||
| }, | |||
| generation: { | |||
| tabs: { | |||
| create: '일회용 실행', | |||
| batch: '일괄 실행', | |||
| saved: '저장된 결과', | |||
| }, | |||
| savedNoData: { | |||
| title: '아직 저장된 결과가 없습니다!', | |||
| description: '컨텐츠 생성을 시작하고 저장된 결과를 여기서 찾아보세요.', | |||
| startCreateContent: '컨텐츠 생성 시작', | |||
| }, | |||
| title: 'AI 완성', | |||
| queryTitle: '컨텐츠 쿼리', | |||
| completionResult: '완성 결과', | |||
| queryPlaceholder: '쿼리 컨텐츠를 작성해주세요...', | |||
| run: '실행', | |||
| copy: '복사', | |||
| resultTitle: 'AI 완성', | |||
| noData: 'AI가 필요한 내용을 제공할 것입니다.', | |||
| csvUploadTitle: 'CSV 파일을 여기로 끌어다 놓거나', | |||
| browse: '찾아보기', | |||
| csvStructureTitle: 'CSV 파일은 다음 구조를 따라야 합니다:', | |||
| downloadTemplate: '여기에서 템플릿 다운로드', | |||
| field: '필드', | |||
| batchFailed: { | |||
| info: '{{num}} 회의 실행이 실패했습니다', | |||
| retry: '재시도', | |||
| outputPlaceholder: '출력 컨텐츠 없음', | |||
| }, | |||
| errorMsg: { | |||
| empty: '업로드된 파일에 컨텐츠를 입력해주세요.', | |||
| fileStructNotMatch: '업로드된 CSV 파일이 구조와 일치하지 않습니다.', | |||
| emptyLine: '줄 {{rowIndex}}이(가) 비어 있습니다.', | |||
| invalidLine: '줄 {{rowIndex}}: {{varName}}의 값은 비워둘 수 없습니다.', | |||
| moreThanMaxLengthLine: '줄 {{rowIndex}}: {{varName}}의 값은 {{maxLength}}자를 초과할 수 없습니다.', | |||
| atLeastOne: '업로드된 파일에는 적어도 한 줄의 입력이 필요합니다.', | |||
| }, | |||
| }, | |||
| } | |||
| export default translation | |||
| @@ -0,0 +1,115 @@ | |||
| const translation = { | |||
| title: '도구', | |||
| createCustomTool: '커스텀 도구 만들기', | |||
| type: { | |||
| all: '모두', | |||
| builtIn: '내장', | |||
| custom: '커스텀', | |||
| }, | |||
| contribute: { | |||
| line1: '저는 Dify에', | |||
| line2: '도구를 기여하는데 관심이 있습니다.', | |||
| viewGuide: '가이드 보기', | |||
| }, | |||
| author: '저자', | |||
| auth: { | |||
| unauthorized: '인증되지 않음', | |||
| authorized: '인증됨', | |||
| setup: '사용을 위한 인증 설정', | |||
| setupModalTitle: '인증 설정', | |||
| setupModalTitleDescription: '자격 증명을 구성한 후에 워크스페이스의 모든 멤버가 이 도구를 사용하여 애플리케이션을 조작할 수 있습니다.', | |||
| }, | |||
| includeToolNum: '{{num}}개의 도구가 포함되어 있습니다', | |||
| addTool: '도구 추가', | |||
| createTool: { | |||
| title: '커스텀 도구 만들기', | |||
| editAction: '설정', | |||
| editTitle: '커스텀 도구 편집', | |||
| name: '이름', | |||
| toolNamePlaceHolder: '도구 이름을 입력하세요', | |||
| schema: '스키마', | |||
| schemaPlaceHolder: '여기에 OpenAPI 스키마를 입력하세요', | |||
| viewSchemaSpec: 'OpenAPI-Swagger 명세 보기', | |||
| importFromUrl: 'URL에서 가져오기', | |||
| importFromUrlPlaceHolder: 'https://...', | |||
| urlError: '유효한 URL을 입력하세요', | |||
| examples: '예시', | |||
| exampleOptions: { | |||
| json: '날씨 (JSON)', | |||
| yaml: '펫 스토어 (YAML)', | |||
| blankTemplate: '빈 템플릿', | |||
| }, | |||
| availableTools: { | |||
| title: '사용 가능한 도구', | |||
| name: '이름', | |||
| description: '설명', | |||
| method: '메소드', | |||
| path: '경로', | |||
| action: '동작', | |||
| test: '테스트', | |||
| }, | |||
| authMethod: { | |||
| title: '인증 방법', | |||
| type: '인증 유형', | |||
| keyTooltip: 'HTTP 헤더 키입니다. 생각이 없으면 "Authorization"으로 남겨둘 수 있습니다. 또는 사용자 정의 값을 설정할 수 있습니다.', | |||
| types: { | |||
| none: '없음', | |||
| api_key: 'API 키', | |||
| apiKeyPlaceholder: 'API 키의 HTTP 헤더 이름', | |||
| apiValuePlaceholder: 'API 키를 입력하세요', | |||
| }, | |||
| key: '키', | |||
| value: '값', | |||
| }, | |||
| authHeaderPrefix: { | |||
| title: '인증 유형', | |||
| types: { | |||
| basic: '베이직', | |||
| bearer: '베어러', | |||
| custom: '사용자 정의', | |||
| }, | |||
| }, | |||
| privacyPolicy: '개인정보 처리방침', | |||
| privacyPolicyPlaceholder: '개인정보 처리방침을 입력하세요', | |||
| }, | |||
| test: { | |||
| title: '테스트', | |||
| parametersValue: '파라미터 및 값', | |||
| parameters: '파라미터', | |||
| value: '값', | |||
| testResult: '테스트 결과', | |||
| testResultPlaceholder: '테스트 결과가 여기에 표시됩니다', | |||
| }, | |||
| thought: { | |||
| using: '사용 중', | |||
| used: '사용됨', | |||
| requestTitle: '요청', | |||
| responseTitle: '응답', | |||
| }, | |||
| setBuiltInTools: { | |||
| info: '정보', | |||
| setting: '설정', | |||
| toolDescription: '도구 설명', | |||
| parameters: '파라미터', | |||
| string: '문자열', | |||
| number: '숫자', | |||
| required: '필수', | |||
| infoAndSetting: '정보 및 설정', | |||
| }, | |||
| noCustomTool: { | |||
| title: '커스텀 도구가 없습니다!', | |||
| content: 'AI 앱을 구축하기 위한 커스텀 도구를 여기서 추가 및 관리합니다.', | |||
| createTool: '도구 만들기', | |||
| }, | |||
| noSearchRes: { | |||
| title: '죄송합니다. 결과가 없습니다!', | |||
| content: '검색 결과가 없습니다.', | |||
| reset: '검색 초기화', | |||
| }, | |||
| builtInPromptTitle: '프롬프트', | |||
| toolRemoved: '도구가 제거되었습니다', | |||
| notAuthorized: '권한이 없습니다', | |||
| howToGet: '획득 방법', | |||
| } | |||
| export default translation | |||
| @@ -0,0 +1,358 @@ | |||
| const translation = { | |||
| common: { | |||
| editing: '편집 중', | |||
| autoSaved: '자동 저장됨', | |||
| unpublished: '미게시', | |||
| published: '게시됨', | |||
| publish: '게시', | |||
| update: '업데이트', | |||
| run: '실행', | |||
| running: '실행 중', | |||
| inRunMode: '실행 모드', | |||
| inPreview: '미리보기 중', | |||
| inPreviewMode: '미리보기 모드', | |||
| preview: '미리보기', | |||
| viewRunHistory: '실행 기록 보기', | |||
| runHistory: '실행 기록', | |||
| goBackToEdit: '편집으로 돌아가기', | |||
| conversationLog: '대화 로그', | |||
| features: '기능', | |||
| debugAndPreview: '디버그 및 미리보기', | |||
| restart: '재시작', | |||
| currentDraft: '현재 초안', | |||
| currentDraftUnpublished: '현재 초안 (게시되지 않음)', | |||
| latestPublished: '최신 게시됨', | |||
| publishedAt: '게시 시간', | |||
| restore: '복원', | |||
| runApp: '앱 실행', | |||
| batchRunApp: '일괄 실행 앱', | |||
| accessAPIReference: 'API 참조에 액세스', | |||
| embedIntoSite: '사이트에 포함', | |||
| addTitle: '제목 추가...', | |||
| addDescription: '설명 추가...', | |||
| noVar: '변수 없음', | |||
| searchVar: '변수 검색', | |||
| variableNamePlaceholder: '변수명', | |||
| setVarValuePlaceholder: '변수 값 설정', | |||
| needConnecttip: '이 단계에는 연결된 항목이 없습니다', | |||
| maxTreeDepth: '각 브랜치 당 최대 {{depth}} 노드 제한', | |||
| needEndNode: '종료 블록을 추가해야 합니다', | |||
| needAnswerNode: '응답 블록을 추가해야 합니다', | |||
| workflowProcess: '워크플로우 처리', | |||
| notRunning: '아직 실행되지 않음', | |||
| previewPlaceholder: '챗봇 디버깅을 시작하려면 아래 상자에 내용을 입력하세요', | |||
| effectVarConfirm: { | |||
| title: '변수 삭제', | |||
| content: '다른 노드에서 변수를 사용하고 있습니다. 그래도 삭제하시겠습니까?', | |||
| }, | |||
| insertVarTip: '빠른 삽입을 위해 \'/\' 키를 누르세요', | |||
| processData: '데이터 처리', | |||
| input: '입력', | |||
| output: '출력', | |||
| jinjaEditorPlaceholder: '\'/\' 또는 \'{\'를 입력하여 변수를 삽입하세요.', | |||
| viewOnly: '보기 모드', | |||
| showRunHistory: '실행 기록 보기', | |||
| copy: '복사', | |||
| duplicate: '복제', | |||
| addBlock: '블록 추가', | |||
| pasteHere: '여기에 붙여넣기', | |||
| pointerMode: '선택 모드', | |||
| handMode: '시점 모드', | |||
| }, | |||
| errorMsg: { | |||
| fieldRequired: '{{field}}은(는) 필수입니다', | |||
| authRequired: '인증이 필요합니다', | |||
| invalidJson: '{{field}}이(가) 유효하지 않습니다', | |||
| fields: { | |||
| variable: '변수명', | |||
| variableValue: '변수 값', | |||
| code: '코드', | |||
| model: '모델', | |||
| rerankModel: '재순위 모델', | |||
| }, | |||
| invalidVariable: '유효하지 않은 변수', | |||
| }, | |||
| singleRun: { | |||
| testRun: '테스트 실행', | |||
| startRun: '실행 시작', | |||
| running: '실행 중', | |||
| }, | |||
| tabs: { | |||
| 'searchBlock': '블록 검색', | |||
| 'blocks': '블록', | |||
| 'builtInTool': '내장 도구', | |||
| 'customTool': '커스텀 도구', | |||
| 'question-understand': '질문 이해', | |||
| 'logic': '논리', | |||
| 'transform': '변환', | |||
| 'utilities': '유틸리티', | |||
| 'noResult': '일치하는 결과 없음', | |||
| }, | |||
| blocks: { | |||
| 'start': '시작', | |||
| 'end': '끝', | |||
| 'answer': '답변', | |||
| 'llm': 'LLM', | |||
| 'knowledge-retrieval': '지식 검색', | |||
| 'question-classifier': '질문 분류기', | |||
| 'if-else': 'IF/ELSE', | |||
| 'code': '코드', | |||
| 'template-transform': '템플릿', | |||
| 'http-request': 'HTTP 요청', | |||
| 'variable-assigner': '변수 할당기', | |||
| }, | |||
| blocksAbout: { | |||
| 'start': '워크플로우 시작을 위한 매개변수를 정의합니다', | |||
| 'end': '워크플로우 종료 및 결과 유형을 정의합니다', | |||
| 'answer': '채팅 대화의 응답 내용을 정의합니다', | |||
| 'llm': '대규모 언어 모델을 호출하여 질문에 답변하거나 자연어를 처리합니다', | |||
| 'knowledge-retrieval': '사용자의 질문과 관련된 텍스트 콘텐츠를 지식에서 쿼리할 수 있도록 합니다', | |||
| 'question-classifier': '사용자의 질문 분류 조건을 정의하고, LLM은 분류 기술에 따라 대화가 어떻게 진행될지 정의할 수 있습니다', | |||
| 'if-else': 'IF/ELSE 조건에 따라 워크플로우를 두 가지 분기로 나눌 수 있습니다', | |||
| 'code': '사용자 정의 로직을 구현하기 위해 Python 또는 NodeJS 코드를 실행합니다', | |||
| 'template-transform': 'Jinja 템플릿 구문을 사용하여 데이터를 문자열로 변환합니다', | |||
| 'http-request': 'HTTP 프로토콜을 통해 서버 요청을 보낼 수 있습니다', | |||
| 'variable-assigner': '다른 분기에서 동일한 변수에 변수를 할당하여 후속 노드의 통일된 구성을 달성할 수 있습니다', | |||
| }, | |||
| operator: { | |||
| zoomIn: '확대', | |||
| zoomOut: '축소', | |||
| zoomTo50: '50%로 확대', | |||
| zoomTo100: '100%로 확대', | |||
| zoomToFit: '적합하게 확대', | |||
| }, | |||
| panel: { | |||
| userInputField: '사용자 입력 필드', | |||
| changeBlock: '블록 변경', | |||
| helpLink: '도움말 링크', | |||
| about: '정보', | |||
| createdBy: '작성자', | |||
| nextStep: '다음 단계', | |||
| addNextStep: '이 워크플로우에 다음 블록 추가', | |||
| selectNextStep: '다음 블록 선택', | |||
| runThisStep: '이 단계 실행', | |||
| checklist: '체크리스트', | |||
| checklistTip: '게시하기 전에 모든 문제가 해결되었는지 확인하세요', | |||
| checklistResolved: '모든 문제가 해결되었습니다', | |||
| organizeBlocks: '블록 정리', | |||
| change: '변경', | |||
| }, | |||
| nodes: { | |||
| common: { | |||
| outputVars: '출력 변수', | |||
| insertVarTip: '변수 삽입', | |||
| memory: { | |||
| memory: '메모리', | |||
| memoryTip: '채팅 메모리 설정', | |||
| windowSize: '윈도우 크기', | |||
| conversationRoleName: '대화 역할 이름', | |||
| user: '사용자 접두사', | |||
| assistant: '어시스턴트 접두사', | |||
| }, | |||
| memories: { | |||
| title: '메모리', | |||
| tip: '채팅 메모리', | |||
| builtIn: '내장', | |||
| }, | |||
| }, | |||
| start: { | |||
| required: '필수', | |||
| inputField: '입력 필드', | |||
| builtInVar: '내장 변수', | |||
| outputVars: { | |||
| query: '사용자 입력', | |||
| memories: { | |||
| des: '대화 기록', | |||
| type: '메시지 유형', | |||
| content: '메시지 내용', | |||
| }, | |||
| files: '파일 목록', | |||
| }, | |||
| noVarTip: '워크플로우에서 사용할 수 있는 입력을 설정합니다', | |||
| }, | |||
| end: { | |||
| outputs: '출력', | |||
| output: { | |||
| type: '출력 유형', | |||
| variable: '출력 변수', | |||
| }, | |||
| type: { | |||
| 'none': '없음', | |||
| 'plain-text': '평문', | |||
| 'structured': '구조화', | |||
| }, | |||
| }, | |||
| answer: { | |||
| answer: '답변', | |||
| outputVars: '출력 변수', | |||
| }, | |||
| llm: { | |||
| model: '모델', | |||
| variables: '변수', | |||
| context: '컨텍스트', | |||
| contextTooltip: '컨텍스트로 지식을 가져올 수 있습니다', | |||
| notSetContextInPromptTip: '컨텍스트 기능을 활성화하려면 PROMPT에 컨텍스트 변수를 입력하세요.', | |||
| prompt: '프롬프트', | |||
| roleDescription: { | |||
| system: '대화의 고수준 명령을 제공합니다', | |||
| user: '모델에 대한 지시, 쿼리 또는 텍스트 기반 입력을 제공합니다', | |||
| assistant: '사용자 메시지를 기반으로 모델의 응답을 생성합니다', | |||
| }, | |||
| addMessage: '메시지 추가', | |||
| vision: '비전', | |||
| files: '파일', | |||
| resolution: { | |||
| name: '해상도', | |||
| high: '높음', | |||
| low: '낮음', | |||
| }, | |||
| outputVars: { | |||
| output: '컨텐츠 생성', | |||
| usage: '모델 사용 정보', | |||
| }, | |||
| singleRun: { | |||
| variable: '변수', | |||
| }, | |||
| sysQueryInUser: '사용자 메시지에 sys.query가 요구됩니다.', | |||
| }, | |||
| knowledgeRetrieval: { | |||
| queryVariable: '쿼리 변수', | |||
| knowledge: '지식', | |||
| outputVars: { | |||
| output: '검색된 세그먼트화된 데이터', | |||
| content: '세그먼트화된 콘텐츠', | |||
| title: '세그먼트화된 제목', | |||
| icon: '세그먼트화된 아이콘', | |||
| url: '세그먼트화된 URL', | |||
| metadata: '기타 메타데이터', | |||
| }, | |||
| }, | |||
| http: { | |||
| inputVars: '입력 변수', | |||
| api: 'API', | |||
| apiPlaceholder: 'URL 입력, \'/\'을 입력하여 변수 삽입', | |||
| notStartWithHttp: 'API는 http:// 또는 https://로 시작해야 합니다', | |||
| key: '키', | |||
| value: '값', | |||
| bulkEdit: '일괄 수정', | |||
| keyValueEdit: '키-값 수정', | |||
| headers: '헤더', | |||
| params: '파라미터', | |||
| body: '바디', | |||
| outputVars: { | |||
| body: '응답 콘텐츠', | |||
| statusCode: '응답 상태 코드', | |||
| headers: '응답 헤더 목록 JSON', | |||
| files: '파일 목록', | |||
| }, | |||
| authorization: { | |||
| 'authorization': '인증', | |||
| 'authorizationType': '인증 유형', | |||
| 'no-auth': '없음', | |||
| 'api-key': 'API 키', | |||
| 'auth-type': '인증 유형', | |||
| 'basic': '기본', | |||
| 'bearer': 'Bearer', | |||
| 'custom': '사용자 정의', | |||
| 'api-key-title': 'API 키', | |||
| 'header': '헤더', | |||
| }, | |||
| insertVarPlaceholder: '변수 삽입을 위해 \'/\'를 입력하세요', | |||
| timeout: { | |||
| title: '타임아웃', | |||
| connectLabel: '연결 타임아웃', | |||
| connectPlaceholder: '연결 타임아웃을 초 단위로 입력하세요', | |||
| readLabel: '읽기 타임아웃', | |||
| readPlaceholder: '읽기 타임아웃을 초 단위로 입력하세요', | |||
| writeLabel: '쓰기 타임아웃', | |||
| writePlaceholder: '쓰기 타임아웃을 초 단위로 입력하세요', | |||
| }, | |||
| }, | |||
| code: { | |||
| inputVars: '입력 변수', | |||
| outputVars: '출력 변수', | |||
| }, | |||
| templateTransform: { | |||
| inputVars: '입력 변수', | |||
| code: '코드', | |||
| codeSupportTip: 'Jinja2만 지원됩니다', | |||
| outputVars: { | |||
| output: '변환된 콘텐츠', | |||
| }, | |||
| }, | |||
| ifElse: { | |||
| if: '만약', | |||
| else: '그렇지 않으면', | |||
| elseDescription: 'IF 조건이 충족되지 않을 경우 실행할 로직을 정의합니다.', | |||
| and: '그리고', | |||
| or: '또는', | |||
| operator: '연산자', | |||
| notSetVariable: '먼저 변수를 설정하세요', | |||
| comparisonOperator: { | |||
| 'contains': '포함', | |||
| 'not contains': '미포함', | |||
| 'start with': '시작하는', | |||
| 'end with': '끝나는', | |||
| 'is': '일치', | |||
| 'is not': '불일치', | |||
| 'empty': '빈 값', | |||
| 'not empty': '빈 값이 아님', | |||
| 'null': 'null', | |||
| 'not null': 'null이 아님', | |||
| }, | |||
| enterValue: '값을 입력하세요', | |||
| addCondition: '조건 추가', | |||
| conditionNotSetup: '조건이 설정되지 않았습니다', | |||
| }, | |||
| variableAssigner: { | |||
| title: '변수 할당', | |||
| outputType: '출력 유형', | |||
| outputVarType: '출력 변수 유형', | |||
| varNotSet: '변수가 설정되지 않았습니다', | |||
| noVarTip: '할당할 변수를 추가하세요', | |||
| type: { | |||
| string: '문자열', | |||
| number: '숫자', | |||
| object: '객체', | |||
| array: '배열', | |||
| }, | |||
| outputVars: { | |||
| output: '할당된 변수의 값', | |||
| }, | |||
| }, | |||
| tool: { | |||
| toAuthorize: '승인하려면', | |||
| inputVars: '입력 변수', | |||
| outputVars: { | |||
| text: '툴이 생성한 콘텐츠', | |||
| files: { | |||
| title: '툴이 생성한 파일', | |||
| type: '지원 유형: 현재 이미지만 지원됩니다', | |||
| transfer_method: '전송 방법: remote_url 또는 local_file 값', | |||
| url: '이미지 URL', | |||
| upload_file_id: '업로드 파일 ID', | |||
| }, | |||
| }, | |||
| }, | |||
| questionClassifiers: { | |||
| model: '모델', | |||
| inputVars: '입력 변수', | |||
| outputVars: { | |||
| className: '클래스 이름', | |||
| }, | |||
| class: '클래스', | |||
| classNamePlaceholder: '클래스 이름을 입력하세요', | |||
| advancedSetting: '고급 설정', | |||
| topicName: '주제명', | |||
| topicPlaceholder: '주제명을 입력하세요', | |||
| addClass: '클래스 추가', | |||
| instruction: '지시', | |||
| instructionPlaceholder: '지시를 입력하세요', | |||
| }, | |||
| }, | |||
| tracing: { | |||
| stopBy: '{{user}}에 의해 중지됨', | |||
| }, | |||
| } | |||
| export default translation | |||
| @@ -74,8 +74,8 @@ export const languages = [ | |||
| { | |||
| value: 'ko-KR', | |||
| name: '한국어 (대한민국)', | |||
| example: '안녕, Dify!', | |||
| supported: false, | |||
| example: '안녕하세요, Dify!', | |||
| supported: true, | |||
| }, | |||
| { | |||
| value: 'ru-RU', | |||
| @@ -152,7 +152,7 @@ export const NOTICE_I18N = { | |||
| fr_FR: 'Our system will be unavailable from 19:00 to 24:00 UTC on August 28 for an upgrade. For questions, kindly contact our support team (support@dify.ai). We value your patience.', | |||
| de_DE: 'Our system will be unavailable from 19:00 to 24:00 UTC on August 28 for an upgrade. For questions, kindly contact our support team (support@dify.ai). We value your patience.', | |||
| ja_JP: 'Our system will be unavailable from 19:00 to 24:00 UTC on August 28 for an upgrade. For questions, kindly contact our support team (support@dify.ai). We value your patience.', | |||
| ko_KR: 'Our system will be unavailable from 19:00 to 24:00 UTC on August 28 for an upgrade. For questions, kindly contact our support team (support@dify.ai). We value your patience.', | |||
| ko_KR: '시스템이 업그레이드를 위해 UTC 시간대로 8월 28일 19:00 ~ 24:00에 사용 불가될 예정입니다. 질문이 있으시면 지원 팀에 연락주세요 (support@dify.ai). 최선을 다해 답변해드리겠습니다.', | |||
| pl_PL: 'Nasz system będzie niedostępny od 19:00 do 24:00 UTC 28 sierpnia w celu aktualizacji. W przypadku pytań prosimy o kontakt z naszym zespołem wsparcia (support@dify.ai). Doceniamy Twoją cierpliwość.', | |||
| uk_UA: 'Наша система буде недоступна з 19:00 до 24:00 UTC 28 серпня для оновлення. Якщо у вас виникнуть запитання, будь ласка, зв’яжіться з нашою службою підтримки (support@dify.ai). Дякуємо за терпіння.', | |||
| vi_VN: 'Hệ thống của chúng tôi sẽ ngừng hoạt động từ 19:00 đến 24:00 UTC vào ngày 28 tháng 8 để nâng cấp. Nếu có thắc mắc, vui lòng liên hệ với nhóm hỗ trợ của chúng tôi (support@dify.ai). Chúng tôi đánh giá cao sự kiên nhẫn của bạn.', | |||