diff --git a/web/i18n/ko-KR/app-debug.ts b/web/i18n/ko-KR/app-debug.ts index 5258287285..74976d4c20 100644 --- a/web/i18n/ko-KR/app-debug.ts +++ b/web/i18n/ko-KR/app-debug.ts @@ -475,14 +475,14 @@ const translation = { }, codegen: { instruction: '지시', - apply: '적용하다', + apply: '적용', generatedCodeTitle: '생성된 코드', title: '코드 생성기', applyChanges: '변경 사항 적용', resTitle: '생성된 코드', noDataLine1: '왼쪽에 사용 사례를 설명하십시오.', overwriteConfirmTitle: '기존 코드를 덮어쓰시겠습니까?', - generate: '창조하다', + generate: '생성', loading: '코드 생성 중...', overwriteConfirmMessage: '이 작업은 기존 코드를 덮어씁니다. 계속하시겠습니까?', noDataLine2: '코드 미리 보기가 여기에 표시됩니다.', @@ -528,10 +528,10 @@ const translation = { instruction: '고급 카피에디팅 기술을 사용하여 글쓰기 향상', }, }, - apply: '적용하다', + apply: '적용', instruction: '지시', resTitle: '생성된 프롬프트', - generate: '창조하다', + generate: '생성', tryIt: '사용해 보기', title: '프롬프트 생성기', overwriteTitle: '기존 구성을 재정의하시겠습니까?', diff --git a/web/i18n/ko-KR/app-overview.ts b/web/i18n/ko-KR/app-overview.ts index 2deb709ace..c512e7bd0a 100644 --- a/web/i18n/ko-KR/app-overview.ts +++ b/web/i18n/ko-KR/app-overview.ts @@ -3,17 +3,17 @@ const translation = { firstStepTip: '시작하려면,', enterKeyTip: '아래에 OpenAI API 키를 입력하세요', getKeyTip: 'OpenAI 대시보드에서 API 키를 가져오세요', - placeholder: '나의 OpenAI API 키 (예: sk-xxxx)', + placeholder: 'OpenAI API 키 입력 (예: sk-xxxx)', }, apiKeyInfo: { cloud: { trial: { - title: '{{providerName}} 트라이얼 쿼터를 사용 중입니다.', - description: '트라이얼 쿼터는 테스트용으로 제공됩니다. 트라이얼 쿼터 소진 전에 고유한 모델 제공자를 설정하거나 추가 쿼터를 구매하세요.', + title: '{{providerName}} 체험 쿼터를 사용 중입니다.', + description: '체험 쿼터는 테스트용으로 제공됩니다. 쿼터가 소진되기 전에 고유한 모델 제공자를 설정하거나 추가 쿼터를 구매하세요.', }, exhausted: { - title: '트라이얼 쿼터가 소진되었습니다. API 키를 설정하세요.', - description: '트라이얼 쿼터가 소진되었습니다. 고유한 모델 제공자를 설정하거나 추가 쿼터를 구매하세요.', + title: '체험 쿼터가 소진되었습니다. API 키를 설정하세요.', + description: '체험 쿼터가 소진되었습니다. 고유한 모델 제공자를 설정하거나 추가 쿼터를 구매하세요.', }, }, selfHost: { @@ -22,10 +22,10 @@ const translation = { row2: '먼저 모델 제공자를 설정하세요.', }, }, - callTimes: '요청 횟수', + callTimes: '호출 횟수', usedToken: '사용된 토큰', setAPIBtn: '모델 제공자 설정으로 이동', - tryCloud: '또는 Dify 의 클라우드 버전을 무료로 체험해보세요', + tryCloud: '또는 Dify의 클라우드 버전을 무료로 체험해 보세요', }, overview: { title: '개요', @@ -34,27 +34,27 @@ const translation = { accessibleAddress: '공개 URL', preview: '미리보기', regenerate: '재생성', - regenerateNotice: '공개 URL 을 재생성하시겠습니까?', + regenerateNotice: '공개 URL을 재생성하시겠습니까?', preUseReminder: '계속하기 전에 웹앱을 활성화하세요.', settings: { entry: '설정', title: '웹앱 설정', webName: '웹앱 이름', webDesc: '웹앱 설명', - webDescTip: '이 텍스트는 클라이언트 측에서 표시되며, 애플리케이션의 사용 방법에 대한 기본적인 안내를 제공합니다.', + webDescTip: '이 텍스트는 클라이언트 측에 표시되며, 애플리케이션의 기본적인 사용법을 안내합니다.', webDescPlaceholder: '웹앱 설명을 입력하세요', language: '언어', workflow: { - title: '워크플로 단계', + title: '워크플로우 단계', show: '표시', hide: '숨기기', - showDesc: 'WebApp 에서 워크플로 세부 정보 표시 또는 숨기기', + showDesc: '웹앱에서 워크플로우 세부 정보를 표시하거나 숨깁니다', subTitle: '워크플로우 세부 정보', }, chatColorTheme: '챗봇 색상 테마', chatColorThemeDesc: '챗봇의 색상 테마를 설정하세요', chatColorThemeInverted: '반전', - invalidHexMessage: '잘못된 16 진수 값', + invalidHexMessage: '잘못된 16진수 값', invalidPrivacyPolicy: '유효하지 않은 개인정보처리방침 링크입니다. http 또는 https 로 시작하는 유효한 링크를 사용해 주세요', more: { entry: '추가 설정 보기', @@ -62,58 +62,58 @@ const translation = { copyRightPlaceholder: '저작권자 또는 조직 이름을 입력하세요', privacyPolicy: '개인정보 처리방침', privacyPolicyPlaceholder: '개인정보 처리방침 링크를 입력하세요', - privacyPolicyTip: '방문자가 애플리케이션이 수집하는 데이터를 이해하고, Dify 의 개인정보 처리방침을 참조할 수 있도록 합니다.', - customDisclaimer: '사용자 지정 면책 조항', - customDisclaimerPlaceholder: '사용자 지정 면책 조항 텍스트를 입력합니다.', - customDisclaimerTip: '사용자 지정 고지 사항 텍스트는 클라이언트 쪽에 표시되어 응용 프로그램에 대한 추가 정보를 제공합니다', - copyrightTip: '웹앱에 저작권 정보 표시', + privacyPolicyTip: '방문자가 애플리케이션이 수집하는 데이터를 이해하고, Dify의 개인정보 처리방침을 참조할 수 있도록 합니다.', + customDisclaimer: '사용자 정의 면책 조항', + customDisclaimerPlaceholder: '면책 조항 텍스트를 입력하세요.', + customDisclaimerTip: '사용자 정의 면책 조항 텍스트는 클라이언트 측에 표시되어 애플리케이션에 대한 추가 정보를 제공합니다.', + copyrightTip: '웹앱에 저작권 정보를 표시합니다', copyrightTooltip: '프로페셔널 플랜 이상으로 업그레이드하세요.', }, sso: { label: 'SSO 인증', title: '웹앱 SSO', - tooltip: '관리자에게 문의하여 web app SSO 를 사용하도록 설정합니다.', - description: '모든 사용자는 WebApp 을 사용하기 전에 SSO 로 로그인해야 합니다.', + tooltip: '관리자에게 문의하여 웹앱 SSO를 활성화하세요.', + description: '모든 사용자는 웹앱을 사용하기 전에 SSO로 로그인해야 합니다.', }, - modalTip: '클라이언트 쪽 웹앱 설정.', + modalTip: '클라이언트 측 웹앱 설정.', }, embedded: { entry: '임베드', title: '웹사이트에 임베드하기', - explanation: '챗봇 앱을 웹사이트에 임베드하는 방법을 선택하세요.', - iframe: '웹사이트의 원하는 위치에 챗봇 앱을 추가하려면 이 iframe 을 HTML 코드에 추가하세요.', - scripts: '웹사이트의 우측 하단에 챗봇 앱을 추가하려면 이 코드를 HTML 에 추가하세요.', - chromePlugin: 'Dify Chatbot Chrome 확장 프로그램 설치', + explanation: '챗봇을 웹사이트에 임베드하는 방법을 선택하세요.', + iframe: '웹사이트의 원하는 위치에 챗봇을 추가하려면 이 iframe 코드를 HTML에 추가하세요.', + scripts: '웹사이트의 우측 하단에 챗봇을 추가하려면 이 코드를 HTML에 추가하세요.', + chromePlugin: 'Dify 챗봇 Chrome 확장 프로그램 설치', copied: '복사되었습니다', copy: '복사', }, qrcode: { title: '공유용 QR 코드', - scan: '앱 공유를 스캔하세요', + scan: 'QR 코드를 스캔하여 앱 공유', download: 'QR 코드 다운로드', }, customize: { way: '방법', - entry: '사용자화', - title: 'AI 웹앱 사용자화', - explanation: '시나리오와 스타일 요구에 따라 웹앱의 프론트엔드를 사용자화할 수 있습니다.', + entry: '사용자 지정', + title: 'AI 웹 앱 사용자 지정', + explanation: '시나리오와 스타일 요구 사항에 맞게 웹앱의 프론트엔드를 사용자 지정할 수 있습니다.', way1: { - name: '클라이언트 코드를 포크하여 수정하고 Vercel 에 배포하기 (권장)', + name: '클라이언트 코드를 포크하여 수정하고 Vercel에 배포하기 (권장)', step1: '클라이언트 코드를 포크하여 수정합니다', step1Tip: '여기를 클릭하여 소스 코드를 GitHub 계정에 포크하고 코드를 수정하세요', step1Operation: 'Dify-WebClient', - step2: 'Vercel 에 배포합니다', - step2Tip: '여기를 클릭하여 리포지토리를 Vercel 에 임포트하고 배포하세요', - step2Operation: '리포지토리 임포트', + step2: 'Vercel에 배포합니다', + step2Tip: '여기를 클릭하여 리포지토리를 Vercel로 가져오고 배포하세요', + step2Operation: '리포지토리 가져오기', step3: '환경 변수를 설정합니다', - step3Tip: 'Vercel 에 다음 환경 변수를 추가하세요', + step3Tip: 'Vercel에 다음 환경 변수를 추가하세요', }, way2: { - name: '클라이언트 측 코드를 작성하여 API 를 호출하고 서버에 배포합니다', + name: '클라이언트 측 코드를 작성하여 API를 호출하고 서버에 배포합니다', operation: '문서', }, }, - launch: '발사', + launch: '실행', enableTooltip: { description: '이 기능을 사용하려면 캔버스에 사용자 입력 노드를 추가하세요. (초안에 이미 있을 수 있으며, 게시 후에 적용됩니다)', learnMore: '자세히 알아보기', @@ -131,12 +131,12 @@ const translation = { disable: '비활성', }, triggerInfo: { - title: '유발 요인', - explanation: '워크플로 트리거 관리', + title: '트리거', + explanation: '워크플로우 트리거 관리', triggersAdded: '{{count}} 트리거 추가됨', noTriggerAdded: '트리거가 추가되지 않았습니다', triggerStatusDescription: '트리거 노드 상태가 여기에 표시됩니다. (이미 초안에 존재할 수 있으며, 게시 후에 적용됩니다)', - learnAboutTriggers: '트리거에 대해 배우기', + learnAboutTriggers: '트리거에 대해 알아보기', }, disableTooltip: { triggerMode: '트리거 노드 모드에서는 {{feature}} 기능이 지원되지 않습니다.', @@ -148,42 +148,42 @@ const translation = { tokenPS: '토큰/초', totalMessages: { title: '총 메시지 수', - explanation: '일일 AI 상호작용 수.', + explanation: '일일 AI 상호작용 수', }, totalConversations: { title: '총 대화 수', - explanation: '일일 AI 대화 수; 프롬프트 엔지니어링/디버깅 제외.', + explanation: '일일 AI 대화 수(프롬프트 엔지니어링/디버깅 제외)', }, activeUsers: { title: '활성 사용자 수', - explanation: 'AI 와의 Q&A 에 참여하는 고유 사용자 수; 엔지니어링/디버깅 목적의 프롬프트는 제외됩니다.', + explanation: 'AI와 Q&A에 참여하는 고유 사용자 수(엔지니어링/디버깅 목적의 프롬프트 제외)', }, tokenUsage: { title: '토큰 사용량', - explanation: '애플리케이션의 언어 모델의 일일 토큰 사용량을 반영하여 비용 관리에 도움이 됩니다.', + explanation: '애플리케이션의 언어 모델 일일 토큰 사용량(비용 관리에 유용)', consumed: '소비된 토큰', }, avgSessionInteractions: { title: '평균 세션 상호작용 수', - explanation: '사용자와 AI 의 연속적인 커뮤니케이션 수; 대화형 애플리케이션을 위한 것입니다.', + explanation: '사용자와 AI의 연속적인 커뮤니케이션 수(대화형 애플리케이션용)', }, avgUserInteractions: { title: '평균 사용자 상호작용 수', - explanation: '사용자의 일일 사용 빈도를 반영합니다. 이 지표는 사용자의 임계를 반영합니다.', + explanation: '사용자의 일일 사용 빈도(사용자들의 사용 정도를 반영)', }, userSatisfactionRate: { - title: '사용자 만족도율', - explanation: '1,000 개의 메시지 당 "좋아요" 수입니다. 이는 사용자가 매우 만족한 응답의 비율을 나타냅니다.', + title: '사용자 만족도', + explanation: '1,000개 메시지 당 "좋아요" 수(사용자가 매우 만족한 응답의 비율)', }, avgResponseTime: { title: '평균 응답 시간', - explanation: 'AI 가 처리/응답하는 시간 (밀리초); 텍스트 기반 애플리케이션을 위한 것입니다.', + explanation: 'AI가 처리하고 응답하는 데 걸리는 시간(밀리초)(텍스트 기반 애플리케이션용)', }, tps: { title: '토큰 출력 속도', - explanation: 'LLM 의 성능을 측정합니다. 요청 시작부터 출력 완료까지의 LLM 의 토큰 출력 속도를 계산합니다.', + explanation: 'LLM의 성능을 측정(요청 시작부터 출력 완료까지의 토큰 출력 속도를 계산)', }, }, } -export default translation +export default translation \ No newline at end of file diff --git a/web/i18n/ko-KR/app.ts b/web/i18n/ko-KR/app.ts index 3b31b13ad0..3af1a477f3 100644 --- a/web/i18n/ko-KR/app.ts +++ b/web/i18n/ko-KR/app.ts @@ -5,8 +5,8 @@ const translation = { chatbot: '챗봇', agent: '에이전트', workflow: '워크플로우', - completion: '완성', - basic: '기초의', + completion: '완료', + basic: '기본', advanced: '채팅 플로우', }, duplicate: '복제', @@ -50,7 +50,7 @@ const translation = { appCreated: '앱이 생성되었습니다', appCreateFailed: '앱 생성 실패', caution: '주의', - Confirm: '확인하다', + Confirm: '확인', appCreateDSLErrorPart4: '시스템 지원 DSL 버전:', appCreateDSLErrorTitle: '버전 비호환성', appCreateDSLErrorPart2: '계속하시겠습니까?', @@ -86,7 +86,7 @@ const translation = { '작업 목표를 달성하기 위해 반복적인 추론과 자율적인 도구를 사용할 수 있는 지능형 에이전트입니다.', advancedUserDescription: '메모리 기능과 챗봇 인터페이스를 갖춘 워크플로우', dropDSLToCreateApp: '여기에 DSL 파일을 드롭하여 앱을 불러오세요.', - import: '수입', + import: '가져오기', }, editApp: '정보 편집하기', editAppTitle: '앱 정보 편집하기', @@ -111,7 +111,7 @@ const translation = { chatbot: '챗봇', agent: '에이전트', workflow: '워크플로우', - completion: '완성', + completion: '완료', advanced: '채팅 플로우', }, tracing: { @@ -178,7 +178,7 @@ const translation = { 'Opik 은 LLM 애플리케이션을 평가, 테스트 및 모니터링하기 위한 오픈 소스 플랫폼입니다.', }, weave: { - title: '직조하다', + title: 'Weave', description: 'Weave 는 LLM 애플리케이션을 평가하고 테스트하며 모니터링하기 위한 오픈 소스 플랫폼입니다.', }, @@ -221,12 +221,12 @@ const translation = { openInExplore: 'Explore 에서 열기', newAppFromTemplate: { sidebar: { - Agent: '대리인', + Agent: '에이전트', Workflow: '워크플로', HR: '인사', Programming: '프로그래밍', Writing: '쓰기', - Assistant: '조수', + Assistant: '어시스턴트', Recommended: '권장', }, byCategories: '카테고리별', @@ -245,7 +245,7 @@ const translation = { modelNotSupported: '모델이 지원되지 않습니다.', notConfiguredTip: '구성이 아직 설정되지 않았습니다.', structured: '구조화된', - configure: '설정하다', + configure: '설정', moreFillTip: '최대 10 단계 중첩을 표시합니다.', modelNotSupportedTip: '현재 모델은 이 기능을 지원하지 않으며 자동으로 프롬프트 주입으로 다운그레이드됩니다.', diff --git a/web/i18n/ko-KR/billing.ts b/web/i18n/ko-KR/billing.ts index 756ba53cad..9e7f28e02e 100644 --- a/web/i18n/ko-KR/billing.ts +++ b/web/i18n/ko-KR/billing.ts @@ -214,7 +214,7 @@ const translation = { }, viewBillingTitle: '청구 및 구독', viewBillingDescription: '결제 수단, 청구서 및 구독 변경 관리', - viewBillingAction: '관리하다', + viewBillingAction: '관리', upgrade: { uploadMultiplePages: { title: '한 번에 여러 문서를 업로드하려면 업그레이드하세요', diff --git a/web/i18n/ko-KR/common.ts b/web/i18n/ko-KR/common.ts index 531aa29054..59deb64a68 100644 --- a/web/i18n/ko-KR/common.ts +++ b/web/i18n/ko-KR/common.ts @@ -1,7 +1,7 @@ const translation = { api: { success: '성공', - actionSuccess: '동작이 성공적으로 수행되었습니다', + actionSuccess: '작업이 성공적으로 수행되었습니다', saved: '저장됨', create: '생성됨', remove: '삭제됨', @@ -25,7 +25,7 @@ const translation = { send: '전송', copy: '복사', lineBreak: '줄 바꿈', - sure: '확실히', + sure: '확인', download: '다운로드', delete: '삭제', settings: '설정', @@ -36,20 +36,20 @@ const translation = { log: '로그', learnMore: '자세히 알아보기', params: '매개변수', - duplicate: '중복', - rename: '이름 바꾸기', + duplicate: '복제', + rename: '이름 변경', audioSourceUnavailable: '오디오 소스를 사용할 수 없습니다.', openInNewTab: '새 탭에서 열기', zoomIn: '확대', copyImage: '이미지 복사', zoomOut: '축소', - close: '닫다', + close: '닫기', viewMore: '더보기', regenerate: '재생성', view: '보기', saveAndRegenerate: '저장 및 자식 청크 재생성', submit: '전송', - skip: '배', + skip: '건너뛰기', imageCopied: '복사된 이미지', deleteApp: '앱 삭제', copied: '복사', @@ -233,7 +233,7 @@ const translation = { title: '이메일 변경', emailLabel: '새 이메일', verifyEmail: '현재 이메일을 확인하세요', - sendVerifyCode: '인증 코드를 보내다', + sendVerifyCode: '인증 코드 보내기', continue: '계속하다', resendCount: '{{count}}초 후에 다시 보내기', verifyNew: '새 이메일 확인하기', @@ -288,12 +288,12 @@ const translation = { you: '(나)', datasetOperator: '지식 관리자', setBuilder: '빌더로 설정', - builder: '건설자', + builder: '빌더', builderTip: '자신의 앱을 구축 및 편집할 수 있습니다.', datasetOperatorTip: '기술 자료만 관리할 수 있습니다.', transferModal: { codeLabel: '검증 코드', - sendVerifyCode: '인증 코드를 보내다', + sendVerifyCode: '인증 코드 보내기', verifyContent: '현재 이메일은 {{email}}입니다.', verifyEmail: '현재 이메일을 확인하세요', continue: '계속하다', @@ -495,7 +495,7 @@ const translation = { addNewModel: '새 모델 추가하기', specifyModelCredentialTip: '구성된 모델 자격 증명을 사용합니다.', modelCredentials: '모델 자격 증명', - addCredential: '자격 증명을 추가하다', + addCredential: '자격 증명 추가', authRemoved: '인증이 제거되었습니다.', providerManaged: '제공자가 관리하는', addModelCredential: '모델 자격 증명 추가', @@ -762,7 +762,7 @@ const translation = { browse: '브라우즈', dropImageHere: '여기에 이미지를 드롭하거나', }, - you: '너', + you: '당신', avatar: { deleteTitle: '아바타 제거하기', deleteDescription: '프로필 사진을 제거하시겠습니까? 귀하의 계정은 기본 초기 아바타를 사용하게 됩니다.', diff --git a/web/i18n/ko-KR/dataset-creation.ts b/web/i18n/ko-KR/dataset-creation.ts index b94841f269..9b491b113d 100644 --- a/web/i18n/ko-KR/dataset-creation.ts +++ b/web/i18n/ko-KR/dataset-creation.ts @@ -59,7 +59,7 @@ const translation = { includeOnlyPaths: '경로만 포함', excludePaths: '경로 제외', preview: '미리 보기', - run: '달리다', + run: '실행', fireCrawlNotConfigured: 'Firecrawl 이 구성되지 않았습니다.', firecrawlTitle: 'Firecrawl 로 🔥웹 콘텐츠 추출', configure: '구성', @@ -87,7 +87,7 @@ const translation = { configureJinaReader: '지나 리더 설정하기', waterCrawlNotConfigured: 'Watercrawl 이 설정되어 있지 않습니다.', configureWatercrawl: '워터크롤 구성하기', - running: '달리기', + running: '실행 중', }, cancel: '취소', }, diff --git a/web/i18n/ko-KR/dataset-hit-testing.ts b/web/i18n/ko-KR/dataset-hit-testing.ts index 9df426314d..618616a1dd 100644 --- a/web/i18n/ko-KR/dataset-hit-testing.ts +++ b/web/i18n/ko-KR/dataset-hit-testing.ts @@ -1,40 +1,40 @@ const translation = { title: '검색 테스트', desc: '주어진 쿼리 텍스트에 기반하여 지식의 검색 효과를 테스트합니다.', - dateTimeFormat: 'YYYY/MM/DD HH:mm', + dateTimeFormat: 'YYYY-MM-DD HH:mm', table: { header: { source: '소스', time: '시간', - queryContent: '질의 내용', + queryContent: '쿼리 내용', }, }, input: { title: '소스 텍스트', - placeholder: '텍스트를 입력하세요. 간결한 설명문이 좋습니다.', - countWarning: '최대 200 자까지 입력할 수 있습니다.', - indexWarning: '고품질 지식만.', + placeholder: '텍스트를 입력하세요. 간결한 서술문이 좋습니다.', + countWarning: '최대 200자까지 입력할 수 있습니다.', + indexWarning: '고품질 지식만 지원합니다.', testing: '테스트 중', }, hit: { - title: '검색 결과 단락', + title: '검색 결과', emptyTip: '검색 테스트 결과가 여기에 표시됩니다.', }, noRecentTip: '최근 쿼리 결과가 없습니다.', viewChart: '벡터 차트 보기', settingTitle: '검색 설정', - viewDetail: '자세히보기', - open: '열다', - records: '레코드', - hitChunks: '{{num}}개의 자식 청크를 히트했습니다.', + viewDetail: '상세 보기', + open: '열기', + records: '기록', + hitChunks: '{{num}}개의 자식 청크 검색됨', keyword: '키워드', - chunkDetail: '청크 디테일 (Chunk Detail)', + chunkDetail: '청크 상세', imageUploader: { tip: '이미지를 업로드하거나 드래그하세요 (최대 {{batchCount}}장, 장당 {{size}}MB)', - tooltip: '이미지 업로드 (최대 {{batchCount}}개, 개당 {{size}}MB)', + tooltip: '이미지 업로드 (최대 {{batchCount}}장, 장당 {{size}}MB)', dropZoneTip: '업로드할 파일을 여기에 끌어놓으세요', - singleChunkAttachmentLimitTooltip: '단일 청크 첨부 파일의 수는 {{limit}}를 초과할 수 없습니다', + singleChunkAttachmentLimitTooltip: '단일 청크 첨부 파일 수는 {{limit}}개를 초과할 수 없습니다', }, } -export default translation +export default translation \ No newline at end of file diff --git a/web/i18n/ko-KR/dataset-pipeline.ts b/web/i18n/ko-KR/dataset-pipeline.ts index d16e56736e..621fd4fea0 100644 --- a/web/i18n/ko-KR/dataset-pipeline.ts +++ b/web/i18n/ko-KR/dataset-pipeline.ts @@ -5,35 +5,35 @@ const translation = { description: '데이터 처리 및 구조를 완전히 제어할 수 있는 사용자 지정 파이프라인을 처음부터 만듭니다.', }, caution: '주의', - createKnowledge: '지식 창출', + createKnowledge: '지식 생성', backToKnowledge: '지식으로 돌아가기', importDSL: 'DSL 파일에서 가져오기', - errorTip: '기술 자료를 만들지 못했습니다.', - successTip: '기술 자료를 성공적으로 만들었습니다.', + errorTip: '지식 생성을 실패했습니다.', + successTip: '지식 생성을 성공했습니다.', }, templates: { - customized: '주문을 받아서 만들어진', + customized: '사용자 지정', }, operations: { - choose: '고르다', + choose: '선택', convert: '변환', - preview: '미리 보기', - process: '프로세스', + preview: '미리보기', + process: '처리', dataSource: '데이터 소스', details: '세부 정보', saveAndProcess: '저장 및 처리', - exportPipeline: '수출 파이프라인', + exportPipeline: '파이프라인 내보내기', editInfo: '정보 편집', backToDataSource: '데이터 소스로 돌아가기', useTemplate: '이 지식 파이프라인 사용', }, deletePipeline: { title: '이 파이프라인 템플릿을 삭제하시겠습니까?', - content: '파이프라인 템플릿을 삭제하는 것은 되돌릴 수 없습니다.', + content: '파이프라인 템플릿 삭제는 되돌릴 수 없습니다.', }, publishPipeline: { success: { - message: '지식 파이프라인 게시', + message: '지식 파이프라인 게시됨', tip: '문서로 이동하여 문서를 추가하거나 관리하세요.', }, error: { @@ -42,22 +42,22 @@ const translation = { }, publishTemplate: { success: { - learnMore: '더 알아보세요', + learnMore: '더 알아보기', message: '파이프라인 템플릿 게시됨', tip: '생성 페이지에서 이 템플릿을 사용할 수 있습니다.', }, error: { - message: '파이프라인 템플릿을 게시하지 못했습니다.', + message: '파이프라인 템플릿 게시 실패', }, }, exportDSL: { successTip: '파이프라인 DSL 내보내기 성공', - errorTip: '파이프라인 DSL을 내보내지 못했습니다.', + errorTip: '파이프라인 DSL 내보내기 실패', }, details: { structure: '구조', - structureTooltip: '청크 구조는 문서를 분할하고 인덱싱하는 방법(일반, 부모-자식 및 Q&A 모드를 제공)을 결정하며 각 기술 자료에 고유합니다.', - createdBy: '{{author}} 작성', + structureTooltip: '청크 구조는 문서를 분할하고 인덱싱하는 방법(일반, 부모-자식, Q&A 모드 등)을 결정하며 각 지식에 고유합니다.', + createdBy: '작성자: {{author}}', }, testRun: { steps: { @@ -72,16 +72,16 @@ const translation = { title: 'Notion 페이지 선택', }, title: '테스트 실행', - tooltip: '테스트 실행 모드에서는 더 쉬운 디버깅 및 관찰을 위해 한 번에 하나의 문서만 가져올 수 있습니다.', + tooltip: '테스트 실행 모드에서는 더 쉬운 디버깅과 관찰을 위해 한 번에 하나의 문서만 가져올 수 있습니다.', }, inputFieldPanel: { uniqueInputs: { - title: '각 입구에 대한 고유한 입력', - tooltip: '고유 입력은 선택한 데이터 원본 및 해당 다운스트림 노드에서만 액세스할 수 있습니다. 사용자는 다른 데이터 원본을 선택할 때 입력할 필요가 없습니다. 데이터 소스 변수에서 참조하는 입력 필드만 첫 번째 단계(데이터 소스)에 표시됩니다. 다른 모든 필드는 두 번째 단계(문서 처리)에 표시됩니다.', + title: '각 입력에 대한 고유 입력값', + tooltip: '고유 입력은 선택한 데이터 소스 및 해당 다운스트림 노드에서만 액세스할 수 있습니다. 사용자는 다른 데이터 소스를 선택할 때 입력할 필요가 없습니다. 데이터 소스 변수에서 참조하는 입력 필드만 첫 번째 단계(데이터 소스)에 표시됩니다. 다른 모든 필드는 두 번째 단계(문서 처리)에 표시됩니다.', }, globalInputs: { - title: '모든 입구에 대한 전역 입력', - tooltip: '전역 입력은 모든 노드에서 공유됩니다. 사용자는 데이터 원본을 선택할 때 이를 입력해야 합니다. 예를 들어 구분 기호 및 최대 청크 길이와 같은 필드는 여러 데이터 원본에 균일하게 적용될 수 있습니다. 데이터 소스 변수에서 참조하는 입력 필드만 첫 번째 단계(데이터 소스)에 나타납니다. 다른 모든 필드는 두 번째 단계(문서 처리)에 표시됩니다.', + title: '모든 입력에 대한 전역 입력값', + tooltip: '전역 입력은 모든 노드에서 공유됩니다. 사용자는 데이터 소스를 선택할 때 이를 입력해야 합니다. 예를 들어 구분 기호 및 최대 청크 길이와 같은 필드는 여러 데이터 소스에 균일하게 적용될 수 있습니다. 데이터 소스 변수에서 참조하는 입력 필드만 첫 번째 단계(데이터 소스)에 나타납니다. 다른 모든 필드는 두 번째 단계(문서 처리)에 표시됩니다.', }, preview: { stepOneTitle: '데이터 소스', @@ -93,7 +93,7 @@ const translation = { addInputField: '입력 필드 추가', title: '사용자 입력 필드', editInputField: '입력 필드 편집', - description: '사용자 입력 필드는 파이프라인 실행 프로세스 중에 필요한 변수를 정의하고 수집하는 데 사용됩니다. 사용자는 필드 유형을 사용자 정의하고 다양한 데이터 소스 또는 문서 처리 단계의 요구 사항을 충족하도록 입력 값을 유연하게 구성할 수 있습니다.', + description: '사용자 입력 필드는 파이프라인 실행 과정에서 필요한 변수를 정의하고 수집하는 데 사용됩니다. 사용자는 필드 유형을 사용자 정의하고 다양한 데이터 소스나 문서 처리 단계의 요구 사항에 맞춰 입력 값을 유연하게 구성할 수 있습니다.', }, addDocuments: { steps: { @@ -102,20 +102,20 @@ const translation = { chooseDatasource: '데이터 소스 선택', }, stepOne: { - preview: '미리 보기', + preview: '미리보기', }, stepTwo: { - previewChunks: '프리뷰 청크', - chunkSettings: '청크 세팅', + previewChunks: '청크 미리보기', + chunkSettings: '청크 설정', }, stepThree: { - learnMore: '더 알아보세요', + learnMore: '더 알아보기', }, characters: '문자', backToDataSource: '데이터 소스', title: '문서 추가', - selectOnlineDocumentTip: '{{count}}페이지까지 처리', - selectOnlineDriveTip: '최대 {{fileSize}}MB 크기의 파일 {{count}}개까지 처리', + selectOnlineDocumentTip: '최대 {{count}} 페이지 처리', + selectOnlineDriveTip: '최대 {{fileSize}}MB 파일 {{count}}개 처리', }, documentSettings: { title: '문서 설정', @@ -126,13 +126,13 @@ const translation = { onlineDrive: { breadcrumbs: { allFiles: '모든 파일', - allBuckets: '모든 Cloud Storage 버킷', + allBuckets: '모든 클라우드 스토리지 버킷', searchPlaceholder: '파일 검색...', - searchResult: '{{folderName}} 폴더에서 {{searchResultsLength}}개의 항목 찾기', + searchResult: '{{folderName}} 폴더에서 {{searchResultsLength}}개의 항목 발견', }, emptySearchResult: '항목을 찾을 수 없습니다.', emptyFolder: '이 폴더는 비어 있습니다.', - resetKeywords: '키워드 재설정', + resetKeywords: '키워드 초기화', notSupportedFileType: '이 파일 형식은 지원되지 않습니다', notConnected: '{{name}}가 연결되어 있지 않습니다', notConnectedTip: '{{name}}와(과) 동기화하려면 먼저 {{name}}에 연결해야 합니다.', @@ -140,24 +140,24 @@ const translation = { conversion: { confirm: { title: '확인', - content: '이 작업은 영구적입니다. 이전 방법으로 되돌릴 수 없습니다. 변환을 확인하시기 바랍니다.', + content: '이 작업은 영구적입니다. 이전 방법으로 되돌릴 수 없습니다. 변환을 확인하시겠습니까?', }, title: '지식 파이프라인으로 변환', - warning: '이 작업은 실행 취소할 수 없습니다.', - errorMessage: '데이터 세트를 파이프라인으로 변환하지 못했습니다.', - successMessage: '데이터 세트를 파이프라인으로 성공적으로 변환했습니다.', + warning: '이 작업은 취소할 수 없습니다.', + errorMessage: '지식을 파이프라인으로 변환하지 못했습니다.', + successMessage: '지식을 파이프라인으로 성공적으로 변환했습니다.', descriptionChunk2: '— 마켓플레이스의 플러그인에 액세스할 수 있는 보다 개방적이고 유연한 접근 방식입니다. 이렇게 하면 향후 모든 문서에 새로운 처리 방법이 적용됩니다.', - descriptionChunk1: '이제 문서 처리에 지식 파이프라인을 사용하도록 기존 기술 자료를 변환할 수 있습니다', + descriptionChunk1: '이제 문서 처리에 지식 파이프라인을 사용하도록 기존 지식을 변환할 수 있습니다', }, knowledgeDescription: '지식 설명', - knowledgePermissions: '권한을', + knowledgePermissions: '권한', inputField: '입력 필드', knowledgeNameAndIcon: '지식 이름 & 아이콘', pipelineNameAndIcon: '파이프라인 이름 & 아이콘', editPipelineInfo: '파이프라인 정보 편집', - knowledgeNameAndIconPlaceholder: '기술 자료의 이름을 입력하십시오.', - knowledgeDescriptionPlaceholder: '이 기술 자료에 포함된 내용을 설명하십시오. 자세한 설명을 통해 AI는 데이터 세트의 콘텐츠에 보다 정확하게 액세스할 수 있습니다. 비어 있으면 Dify는 기본 히트 전략을 사용합니다. (선택 사항)', + knowledgeNameAndIconPlaceholder: '지식 이름을 입력하세요.', + knowledgeDescriptionPlaceholder: '이 지식에 포함된 내용을 설명하세요. 자세한 설명을 통해 AI는 데이터셋의 콘텐츠에 더 정확하게 접근할 수 있습니다. 비워두면 Dify는 기본 검색 전략을 사용합니다. (선택 사항)', configurationTip: '{{pluginName}} 구성', } -export default translation +export default translation \ No newline at end of file diff --git a/web/i18n/ko-KR/dataset.ts b/web/i18n/ko-KR/dataset.ts index 0db87f53a3..5c496e9d94 100644 --- a/web/i18n/ko-KR/dataset.ts +++ b/web/i18n/ko-KR/dataset.ts @@ -82,7 +82,7 @@ const translation = { }, deleteExternalAPIConfirmWarningContent: { title: { - front: '삭제하다', + front: '삭제', end: '?', }, content: { @@ -112,17 +112,17 @@ const translation = { }, externalKnowledgeForm: { cancel: '취소', - connect: '연결하다', + connect: '연결', }, externalAPIForm: { encrypted: { end: '기술.', front: 'API 토큰은 다음을 사용하여 암호화되고 저장됩니다.', }, - save: '구해내다', + save: '저장', name: '이름', endpoint: 'API 엔드포인트', - edit: '편집하다', + edit: '편집', cancel: '취소', apiKey: 'API 키', }, @@ -157,7 +157,7 @@ const translation = { paragraph: '단락', }, batchAction: { - delete: '삭제하다', + delete: '삭제', enable: '사용', cancel: '취소', archive: '보관', diff --git a/web/i18n/ko-KR/education.ts b/web/i18n/ko-KR/education.ts index db62757566..20f8374c9f 100644 --- a/web/i18n/ko-KR/education.ts +++ b/web/i18n/ko-KR/education.ts @@ -1,14 +1,14 @@ const translation = { toVerifiedTip: { - end: 'Dify 프로페셔널 플랜을 위해.', + end: 'Dify 프로페셔널 플랜 100% 할인 쿠폰을 받으세요.', coupon: '독점 100% 쿠폰', front: - '당신은 이제 교육 인증 상태를 받을 자격이 있습니다. 아래에 귀하의 교육 정보를 입력하여 과정을 완료하고 인증을 받으십시오.', + '교육 인증 상태를 받을 자격이 있습니다. 아래에 교육 정보를 입력하여 인증 과정을 완료하고', }, form: { schoolName: { - placeholder: '귀하의 학교의 공식 약어가 아닌 전체 이름을 입력하세요.', - title: '당신의 학교 이름', + placeholder: '학교의 공식 약어가 아닌 전체 이름을 입력하세요.', + title: '학교 이름', }, schoolRole: { option: { @@ -16,19 +16,19 @@ const translation = { student: '학생', administrator: '학교 관리자', }, - title: '당신의 학교 역할', + title: '학교 역할', }, terms: { desc: { - end: '제출함으로써:', - and: '와', + end: '제출함으로써:', + and: '및', termsOfService: '서비스 약관', front: '귀하의 정보 및 교육 인증 상태 사용은 우리의', - privacyPolicy: '개인정보 보호정책', + privacyPolicy: '개인정보 처리방침', }, option: { inSchool: - '나는 제공된 기관에 재학 중이거나 고용되어 있음을 확인합니다. Dify 는 재학증명서나 고용증명서를 요청할 수 있습니다. 만약 내가 자격을 허위로 진술하면, 나는 내 교육 상태에 따라 처음 면제된 수수료를 지불하기로 동의합니다.', + '나는 제공된 기관에 재학 중이거나 고용되어 있음을 확인합니다. Dify는 재학증명서나 고용증명서를 요청할 수 있습니다. 자격을 허위로 기재할 경우, 면제된 수수료를 지불하기로 동의합니다.', age: '만 18세 이상입니다.', }, title: '약관 및 동의사항', @@ -36,15 +36,15 @@ const translation = { }, submit: '제출', rejectContent: - '안타깝게도, 귀하는 교육 인증 상태에 적합하지 않으므로 이 이메일 주소를 사용할 경우 Dify Professional Plan 의 독점 100% 쿠폰을 받을 수 없습니다.', + '안타깝게도 귀하는 교육 인증 자격에 부합하지 않으므로, 이 이메일 주소로는 Dify 프로페셔널 플랜 100% 할인 쿠폰을 받을 수 없습니다.', successContent: - '귀하의 계정에 Dify Professional 플랜을 위한 100% 할인 쿠폰을 발급했습니다. 이 쿠폰은 1 년간 유효하므로 유효 기간 내에 사용해 주시기 바랍니다.', - currentSigned: '현재 로그인 중입니다', + '귀하의 계정에 Dify 프로페셔널 플랜을 위한 100% 할인 쿠폰을 발급했습니다. 이 쿠폰은 1년간 유효하므로 유효 기간 내에 사용해 주시기 바랍니다.', + currentSigned: '현재 로그인 중', toVerified: '교육 인증 받기', - rejectTitle: '귀하의 Dify 교육 인증이 거부되었습니다.', - learn: '교육 인증을 받는 방법을 배우세요', + rejectTitle: 'Dify 교육 인증이 거부되었습니다.', + learn: '교육 인증을 받는 방법 알아보기', submitError: '양식 제출에 실패했습니다. 나중에 다시 시도해 주세요.', - successTitle: '당신은 Dify 교육 인증을 받았습니다.', + successTitle: 'Dify 교육 인증을 받았습니다.', emailLabel: '현재 이메일', notice: { expired: { @@ -52,29 +52,29 @@ const translation = { line1: '여전히 Dify에 접근하고 사용할 수 있습니다.', line2: '하지만, 더 이상 새로운 교육 할인 쿠폰을 받을 수 없습니다.', }, - title: '귀하의 교육 상태가 만료되었습니다.', + title: '교육 인증 상태가 만료되었습니다.', }, isAboutToExpire: { - summary: '걱정하지 마세요 — 이번 사항은 현재 구독에 영향을 주지 않지만, 다시 상태를 확인하지 않으면 갱신 시 교육 할인 혜택을 받지 못합니다.', - title: '귀하의 학력 상태는 {{date}}에 만료됩니다', + summary: '걱정하지 마세요. 현재 구독에는 영향을 주지 않지만, 다시 인증하지 않으면 갱신 시 교육 할인 혜택을 받을 수 없습니다.', + title: '교육 인증 상태가 {{date}}에 만료됩니다', }, stillInEducation: { title: '아직 학업 중이신가요?', - isAboutToExpire: '새로운 학년을 위한 쿠폰을 받으시려면 지금 다시 인증하십시오. 쿠폰은 귀하의 계정에 저장되어 다음 갱신 시 사용할 수 있습니다.', - expired: '지금 다시 확인하여 다가오는 학년도에 사용할 새 쿠폰을 받아보세요. 우리는 그것을 귀하의 계정에 추가하며, 다음 업그레이드에 사용할 수 있습니다.', + isAboutToExpire: '새로운 학년을 위한 쿠폰을 받으려면 지금 다시 인증하세요. 쿠폰은 계정에 저장되어 다음 갱신 시 사용할 수 있습니다.', + expired: '지금 다시 인증하여 다가오는 학년도에 사용할 새 쿠폰을 받으세요. 계정에 쿠폰이 추가되며, 다음 업그레이드 시 사용할 수 있습니다.', }, alreadyGraduated: { - title: '벌써 졸업했나요?', - expired: '유료 기능에 대한 전체 액세스를 얻기 위해 언제든지 자유롭게 업그레이드하세요.', - isAboutToExpire: '현재 구독은 여전히 유효합니다. 구독이 종료되면 샌드박스 요금제로 변경되며, 언제든지 업그레이드하여 유료 기능에 대한 전체 접근을 복원할 수 있습니다.', + title: '이미 졸업하셨나요?', + expired: '유료 기능에 대한 전체 액세스를 유지하려면 언제든지 업그레이드하세요.', + isAboutToExpire: '현재 구독은 여전히 유효합니다. 구독이 종료되면 샌드박스 요금제로 변경되며, 언제든지 업그레이드하여 유료 기능을 다시 사용할 수 있습니다.', }, action: { - dismiss: '해제', + dismiss: '닫기', upgrade: '업그레이드', - reVerify: '재확인', + reVerify: '재인증', }, - dateFormat: 'MM/DD/YYYY', + dateFormat: 'YYYY-MM-DD', }, } -export default translation +export default translation \ No newline at end of file diff --git a/web/i18n/ko-KR/explore.ts b/web/i18n/ko-KR/explore.ts index bc6438af2b..25d17aade4 100644 --- a/web/i18n/ko-KR/explore.ts +++ b/web/i18n/ko-KR/explore.ts @@ -1,7 +1,7 @@ const translation = { title: '탐색', sidebar: { - discovery: '탐색', + discovery: '발견', chat: '채팅', workspace: '작업 공간', action: { @@ -12,12 +12,12 @@ const translation = { }, delete: { title: '앱 삭제', - content: '이 앱을 삭제해도 괜찮습니까?', + content: '이 앱을 삭제하시겠습니까?', }, }, apps: { - title: 'Dify 로 앱 탐색', - description: '이 템플릿 앱을 즉시 사용하거나 템플릿을 기반으로 고유한 앱을 사용자 정의하세요.', + title: 'Dify 앱 탐색', + description: '템플릿 앱을 즉시 사용하거나 템플릿을 기반으로 나만의 앱을 커스터마이징하세요.', allCategories: '모든 카테고리', }, appCard: { @@ -31,14 +31,14 @@ const translation = { }, category: { Assistant: '어시스턴트', - Writing: '작성', + Writing: '글쓰기', Translate: '번역', Programming: '프로그래밍', Agent: '에이전트', Workflow: '워크플로우', HR: '인사', - Entertainment: '오락', + Entertainment: '엔터테인먼트', }, } -export default translation +export default translation \ No newline at end of file diff --git a/web/i18n/ko-KR/layout.ts b/web/i18n/ko-KR/layout.ts index eab9235351..f9999682ee 100644 --- a/web/i18n/ko-KR/layout.ts +++ b/web/i18n/ko-KR/layout.ts @@ -1,8 +1,8 @@ const translation = { sidebar: { - expandSidebar: '사이드바 확장', - collapseSidebar: '사이드바 축소', + expandSidebar: '사이드바 펼치기', + collapseSidebar: '사이드바 접기', }, } -export default translation +export default translation \ No newline at end of file diff --git a/web/i18n/ko-KR/login.ts b/web/i18n/ko-KR/login.ts index 6d3d47a602..7178ecf6b3 100644 --- a/web/i18n/ko-KR/login.ts +++ b/web/i18n/ko-KR/login.ts @@ -1,6 +1,6 @@ const translation = { pageTitle: '시작하기 🎉', - welcome: 'Dify 에 오신 것을 환영합니다. 계속하려면 로그인하세요.', + welcome: 'Dify에 오신 것을 환영합니다. 계속하려면 로그인하세요.', email: '이메일 주소', emailPlaceholder: '이메일 주소를 입력하세요', password: '비밀번호', @@ -19,31 +19,31 @@ const translation = { invitationCodePlaceholder: '초대 코드를 입력하세요', interfaceLanguage: '인터페이스 언어', timezone: '시간대', - go: 'Dify 로 이동', - sendUsMail: '간단한 소개를 메일로 보내주시면 초대 요청을 처리해드립니다.', - acceptPP: '개인정보 처리 방침에 동의합니다.', + go: 'Dify로 이동', + sendUsMail: '간단한 소개를 메일로 보내주시면 초대 요청을 처리해 드립니다.', + acceptPP: '개인정보 처리방침에 동의합니다.', reset: '비밀번호를 재설정하려면 다음 명령을 실행하세요:', - withGitHub: 'GitHub 로 계속', - withGoogle: 'Google 로 계속', - rightTitle: 'LLM 의 최대 잠재력을 발휘하세요', + withGitHub: 'GitHub로 계속', + withGoogle: 'Google로 계속', + rightTitle: 'LLM의 잠재력을 최대한 발휘하세요', rightDesc: '매력적이고 조작 가능하며 개선 가능한 AI 애플리케이션을 쉽게 구축하세요.', tos: '이용약관', - pp: '개인정보 처리 방침', + pp: '개인정보 처리방침', tosDesc: '가입함으로써 다음 내용에 동의하게 됩니다.', goToInit: '계정이 초기화되지 않았다면 초기화 페이지로 이동하세요.', dontHave: '계정이 없으신가요?', invalidInvitationCode: '유효하지 않은 초대 코드입니다.', - accountAlreadyInited: '계정은 이미 초기화되었습니다.', + accountAlreadyInited: '계정이 이미 초기화되었습니다.', forgotPassword: '비밀번호를 잊으셨나요?', resetLinkSent: '재설정 링크가 전송되었습니다', sendResetLink: '재설정 링크 보내기', backToSignIn: '로그인으로 돌아가기', - forgotPasswordDesc: '비밀번호를 재설정하려면 이메일 주소를 입력하세요. 비밀번호 재설정 방법에 대한 이메일을 보내드리겠습니다.', - checkEmailForResetLink: '비밀번호 재설정 링크를 확인하려면 이메일을 확인하세요. 몇 분 내에 나타나지 않으면 스팸 폴더를 확인하세요.', + forgotPasswordDesc: '비밀번호를 재설정하려면 이메일 주소를 입력하세요. 비밀번호 재설정 방법에 대한 이메일을 보내드립니다.', + checkEmailForResetLink: '비밀번호 재설정 링크를 확인하려면 이메일을 확인하세요. 몇 분 내에 도착하지 않으면 스팸 폴더를 확인하세요.', passwordChanged: '지금 로그인', changePassword: '비밀번호 변경', changePasswordTip: '계정의 새 비밀번호를 입력하세요', - invalidToken: '유효하지 않거나 만료된 토큰', + invalidToken: '유효하지 않거나 만료된 토큰입니다', confirmPassword: '비밀번호 확인', confirmPasswordPlaceholder: '새 비밀번호를 확인하세요', passwordChangedTip: '비밀번호가 성공적으로 변경되었습니다', @@ -52,20 +52,20 @@ const translation = { emailInValid: '유효한 이메일 주소를 입력하세요.', nameEmpty: '사용자 이름을 입력하세요.', passwordEmpty: '비밀번호를 입력하세요.', - passwordInvalid: '비밀번호는 문자와 숫자를 포함하고 8 자 이상이어야 합니다.', - passwordLengthInValid: '비밀번호는 8 자 이상이어야 합니다.', + passwordInvalid: '비밀번호는 문자와 숫자를 포함하고 8자 이상이어야 합니다.', + passwordLengthInValid: '비밀번호는 8자 이상이어야 합니다.', registrationNotAllowed: '계정을 찾을 수 없습니다. 등록하려면 시스템 관리자에게 문의하십시오.', invalidEmailOrPassword: '유효하지 않은 이메일이나 비밀번호입니다.', }, license: { - tip: 'Dify Community Edition 을 시작하기 전에 GitHub 의', + tip: 'Dify 커뮤니티 에디션을 시작하기 전에 GitHub의', link: '오픈 소스 라이선스', }, join: '가입하기', joinTipStart: '당신을 초대합니다.', joinTipEnd: '팀에 가입하세요.', invalid: '링크의 유효 기간이 만료되었습니다.', - explore: 'Dify 를 탐색하세요', + explore: 'Dify 탐색하기', activatedTipStart: '이제', activatedTipEnd: '팀에 가입되었습니다.', activated: '지금 로그인하세요', @@ -74,53 +74,53 @@ const translation = { checkCode: { verify: '확인', verificationCode: '인증 코드', - validTime: '코드는 5 분 동안 유효합니다', + validTime: '코드는 5분 동안 유효합니다', checkYourEmail: '이메일 주소 확인', invalidCode: '유효하지 않은 코드', - verificationCodePlaceholder: '6 자리 코드 입력', + verificationCodePlaceholder: '6자리 코드 입력', emptyCode: '코드가 필요합니다.', useAnotherMethod: '다른 방법 사용', didNotReceiveCode: '코드를 받지 못하셨나요?', resend: '재전송', - tipsPrefix: '우리는 확인 코드를 보냅니다', + tipsPrefix: '인증 코드를 다음 주소로 보냈습니다:', }, back: '뒤로', or: '또는', useVerificationCode: '인증 코드 사용', continueWithCode: '코드로 계속하기', usePassword: '비밀번호 사용', - withSSO: 'SSO 로 계속하기', + withSSO: 'SSO로 계속하기', backToLogin: '로그인으로 돌아가기', resetPassword: '비밀번호 재설정', setYourAccount: '계정 설정', - noLoginMethod: '인증 방법이 구성되지 않음', + noLoginMethod: '인증 방법이 설정되지 않음', sendVerificationCode: '인증 코드 보내기', changePasswordBtn: '비밀번호 설정', enterYourName: '사용자 이름을 입력해 주세요', noLoginMethodTip: '인증 방법을 추가하려면 시스템 관리자에게 문의하십시오.', - resetPasswordDesc: 'Dify 에 가입할 때 사용한 이메일을 입력하면 비밀번호 재설정 이메일을 보내드립니다.', - licenseInactiveTip: '작업 영역에 대한 Dify Enterprise 라이선스가 비활성 상태입니다. Dify 를 계속 사용하려면 관리자에게 문의하십시오.', - licenseLost: '라이센스 분실', - licenseLostTip: 'Dify 라이선스 서버에 연결하지 못했습니다. Dify 를 계속 사용하려면 관리자에게 문의하십시오.', - licenseInactive: 'License Inactive(라이선스 비활성)', - licenseExpired: '라이센스가 만료되었습니다.', - licenseExpiredTip: '작업 영역에 대한 Dify Enterprise 라이선스가 만료되었습니다. Dify 를 계속 사용하려면 관리자에게 문의하십시오.', + resetPasswordDesc: 'Dify에 가입할 때 사용한 이메일을 입력하면 비밀번호 재설정 이메일을 보내드립니다.', + licenseInactiveTip: '작업 공간에 대한 Dify 엔터프라이즈 라이선스가 비활성 상태입니다. Dify를 계속 사용하려면 관리자에게 문의하십시오.', + licenseLost: '라이선스 분실', + licenseLostTip: 'Dify 라이선스 서버에 연결하지 못했습니다. Dify를 계속 사용하려면 관리자에게 문의하십시오.', + licenseInactive: '라이선스 비활성', + licenseExpired: '라이선스가 만료되었습니다.', + licenseExpiredTip: '작업 공간에 대한 Dify 엔터프라이즈 라이선스가 만료되었습니다. Dify를 계속 사용하려면 관리자에게 문의하십시오.', webapp: { - noLoginMethod: '웹 애플리케이션에 대한 인증 방법이 구성되어 있지 않습니다.', - disabled: '웹앱 인증이 비활성화되었습니다. 이를 활성화하려면 시스템 관리자에게 문의하십시오. 앱을 직접 사용해 볼 수 있습니다.', - noLoginMethodTip: '인증 방법을 추가하려면 시스템 관리자에게 연락하십시오.', + noLoginMethod: '웹 애플리케이션에 대한 인증 방법이 설정되어 있지 않습니다.', + disabled: '웹앱 인증이 비활성화되었습니다. 활성화하려면 시스템 관리자에게 문의하십시오. 앱을 직접 사용해 볼 수 있습니다.', + noLoginMethodTip: '인증 방법을 추가하려면 시스템 관리자에게 문의하십시오.', login: '로그인', }, signup: { signIn: '로그인', signUp: '가입하기', haveAccount: '이미 계정이 있으신가요?', - createAccount: '계정을 생성하세요', - verifyMail: '인증 코드로 계속 진행하세요', + createAccount: '계정 생성', + verifyMail: '이메일 인증으로 계속', noAccount: '계정이 없으신가요?', welcome: '👋 환영합니다! 시작하려면 세부 정보를 입력해 주세요.', }, - pageTitleForE: '이봐, 시작하자!', + pageTitleForE: '자, 시작해 봅시다!', } -export default translation +export default translation \ No newline at end of file diff --git a/web/i18n/ko-KR/oauth.ts b/web/i18n/ko-KR/oauth.ts index 5c13240823..f9534f0ed5 100644 --- a/web/i18n/ko-KR/oauth.ts +++ b/web/i18n/ko-KR/oauth.ts @@ -1,15 +1,15 @@ const translation = { tips: { needLogin: '로그인하여 인증해 주세요.', - notLoggedIn: '이 앱은 Dify Cloud 계정에 접근하고 싶어합니다.', - loggedIn: '이 앱은 다음 정보를 귀하의 Dify Cloud 계정에서 액세스하려고 합니다.', + notLoggedIn: '이 앱은 Dify 클라우드 계정에 접근하고 싶어합니다.', + loggedIn: '이 앱은 Dify 클라우드 계정에서 다음 정보에 접근하려고 합니다.', common: '우리는 귀하의 개인 정보를 존중하며, 이 정보를 개발자 도구를 통한 귀하의 경험 향상에만 사용할 것입니다.', }, scopes: { avatar: '아바타', email: '이메일', name: '이름', - languagePreference: '언어 선호', + languagePreference: '언어 선호도', timezone: '시간대', }, error: { @@ -24,4 +24,4 @@ const translation = { connect: '연결', } -export default translation +export default translation \ No newline at end of file diff --git a/web/i18n/ko-KR/pipeline.ts b/web/i18n/ko-KR/pipeline.ts index af30eb8bfd..1dddd598cc 100644 --- a/web/i18n/ko-KR/pipeline.ts +++ b/web/i18n/ko-KR/pipeline.ts @@ -7,7 +7,7 @@ const translation = { descriptionPlaceholder: '이 지식 파이프라인에 대한 설명을 입력하십시오. (선택 사항)', }, reRun: '다시 실행', - processing: '가공', + processing: '처리 중', testRun: '테스트 실행', confirmPublish: '게시 확인', preparingDataSource: '데이터 소스 준비', @@ -16,25 +16,25 @@ const translation = { confirmPublishContent: '지식 파이프라인을 성공적으로 게시한 후에는 이 지식 기반의 청크 구조를 수정할 수 없습니다. 게시하시겠습니까?', }, inputField: { - manage: '관리하다', - create: '사용자 입력 필드 만들기', + manage: '관리', + create: '사용자 입력 필드 생성', }, publishToast: { title: '이 파이프라인은 아직 게시되지 않았습니다.', - desc: '파이프라인이 게시되지 않은 경우 기술 자료 노드에서 청크 구조를 수정할 수 있으며 파이프라인 오케스트레이션 및 변경 내용은 자동으로 초안으로 저장됩니다.', + desc: '파이프라인이 게시되지 않은 경우 지식 노드에서 청크 구조를 수정할 수 있으며 파이프라인 오케스트레이션 및 변경 내용은 자동으로 초안으로 저장됩니다.', }, result: { resultPreview: { - loading: '가공... 기다리세요', - viewDetails: '세부 정보보기', + loading: '처리 중... 잠시만 기다려 주세요', + viewDetails: '상세 정보 보기', error: '실행 중 오류가 발생했습니다.', - footerTip: '테스트 실행 모드에서, 최대 {{count}}개의 청크를 미리보기', + footerTip: '테스트 실행 모드에서는 최대 {{count}}개의 청크를 미리보기할 수 있습니다', }, }, ragToolSuggestions: { - title: 'RAG에 대한 제안', + title: 'RAG 제안', noRecommendationPlugins: '추천 플러그인이 없습니다. 더 많은 플러그인은 마켓플레이스에서 찾아보세요.', }, } -export default translation +export default translation \ No newline at end of file diff --git a/web/i18n/ko-KR/plugin-tags.ts b/web/i18n/ko-KR/plugin-tags.ts index 7efd26f84c..bd811ce1be 100644 --- a/web/i18n/ko-KR/plugin-tags.ts +++ b/web/i18n/ko-KR/plugin-tags.ts @@ -1,26 +1,26 @@ const translation = { tags: { - social: '사회적인', + social: '소셜', finance: '금융', - travel: '여행하다', + travel: '여행', search: '검색', - entertainment: '오락', + entertainment: '엔터테인먼트', utilities: '유틸리티', - productivity: '생산력', + productivity: '생산성', weather: '날씨', - other: '다른', - videos: '동영상', - news: '소식', - medical: '내과의', + other: '기타', + videos: '비디오', + news: '뉴스', + medical: '의료', education: '교육', image: '이미지', design: '디자인', - business: '사업', + business: '비즈니스', agent: '에이전트', - rag: '넝마', + rag: 'RAG', }, allTags: '모든 태그', - searchTags: '검색 태그', + searchTags: '태그 검색', } -export default translation +export default translation \ No newline at end of file diff --git a/web/i18n/ko-KR/plugin-trigger.ts b/web/i18n/ko-KR/plugin-trigger.ts index edbe5c1fcd..ac0b180faf 100644 --- a/web/i18n/ko-KR/plugin-trigger.ts +++ b/web/i18n/ko-KR/plugin-trigger.ts @@ -1,33 +1,33 @@ const translation = { subscription: { title: '구독', - listNum: '{{num}} 구독', + listNum: '{{num}}개 구독', empty: { title: '구독 없음', button: '새 구독', }, createButton: { oauth: 'OAuth로 새 구독', - apiKey: 'API 키를 이용한 새 구독', + apiKey: 'API 키로 새 구독', manual: '새 구독을 만들려면 URL을 붙여넣으세요', }, createSuccess: '구독이 성공적으로 생성되었습니다', - createFailed: '구독 생성에 실패했습니다', - maxCount: '최대 {{num}} 구독', + createFailed: '구독 생성 실패', + maxCount: '최대 {{num}}개 구독', selectPlaceholder: '구독 선택', noSubscriptionSelected: '선택한 구독이 없습니다', subscriptionRemoved: '구독 취소됨', list: { title: '구독', addButton: '추가', - tip: '구독을 통해 이벤트 받기', + tip: '구독을 통해 이벤트 수신', item: { enabled: '활성화됨', - disabled: '사용하지 않음', + disabled: '비활성화됨', credentialType: { api_key: 'API 키', oauth2: 'OAuth', - unauthorized: '매뉴얼', + unauthorized: '수동', }, actions: { delete: '삭제', @@ -36,25 +36,25 @@ const translation = { success: '구독 {{name}}이(가) 성공적으로 삭제되었습니다', error: '구독 {{name}} 삭제 실패', content: '삭제하면 이 구독은 복구할 수 없습니다. 확인해주세요.', - contentWithApps: '현재 구독은 {{count}}개의 애플리케이션에서 참조되고 있습니다. 이를 삭제하면 구성된 애플리케이션이 구독 이벤트를 받지 않게 됩니다.', + contentWithApps: '현재 구독은 {{count}}개의 애플리케이션에서 사용 중입니다. 삭제하면 구성된 애플리케이션이 더 이상 구독 이벤트를 받지 못합니다.', confirm: '삭제 확인', cancel: '취소', confirmInputWarning: '확인을 위해 올바른 이름을 입력해 주세요.', - confirmInputPlaceholder: '"{{name}}"를 입력하여 확인하세요.', - confirmInputTip: '확인을 위해 “{{name}}”를 입력해 주세요.', + confirmInputPlaceholder: '"{{name}}"을(를) 입력하여 확인하세요.', + confirmInputTip: '확인을 위해 "{{name}}"을(를) 입력해 주세요.', }, }, status: { active: '활성', inactive: '비활성', }, - usedByNum: '{{num}} 워크플로우에서 사용됨', + usedByNum: '{{num}}개 워크플로우에서 사용됨', noUsed: '사용된 워크플로우 없음', }, }, addType: { title: '구독 추가', - description: '트리거 구독을 생성하는 방법을 선택하세요', + description: '트리거 구독 생성 방법을 선택하세요', options: { apikey: { title: 'API 키로 생성', @@ -71,7 +71,7 @@ const translation = { manual: { title: '수동 설정', description: '새 구독을 만들려면 URL을 붙여넣으세요', - tip: '타사 플랫폼에서 URL을 수동으로 구성', + tip: '타사 플랫폼에서 URL 수동 구성', }, }, }, @@ -85,19 +85,19 @@ const translation = { cancel: '취소', back: '뒤로', next: '다음', - create: '만들다', + create: '생성', verify: '확인', authorize: '권한 부여', creating: '생성 중...', verifying: '검증 중...', authorizing: '승인 중...', }, - oauthRedirectInfo: '이 도구 제공자에 대한 시스템 클라이언트 비밀이 발견되지 않아 수동 설정이 필요하며, redirect_uri에는 다음을 사용해 주세요', + oauthRedirectInfo: '이 도구 제공자에 대한 시스템 클라이언트 시크릿을 찾을 수 없어 수동 설정이 필요합니다. redirect_uri에는 다음을 사용해 주세요', apiKey: { title: 'API 키로 생성', verify: { title: '자격 증명 확인', - description: '액세스를 확인하려면 API 자격 증명을 제공해 주세요', + description: '액세스를 확인하려면 API 자격 증명을 입력하세요', error: '자격 증명 확인에 실패했습니다. API 키를 확인해주세요.', success: '자격 증명이 성공적으로 확인되었습니다', }, @@ -117,7 +117,7 @@ const translation = { waitingAuth: '승인 대기 중...', authSuccess: '승인 성공', authFailed: 'OAuth 인증 정보를 가져오지 못했습니다', - waitingJump: '승인됨, 이륙 대기 중', + waitingJump: '승인됨, 리디렉션 대기 중', }, configuration: { title: '구독 설정', @@ -146,21 +146,21 @@ const translation = { subscriptionName: { label: '구독 이름', placeholder: '구독 이름 입력', - required: '구독 이름은 필수 항목입니다', + required: '구독 이름은 필수입니다', }, callbackUrl: { label: '콜백 URL', description: '이 URL은 웹훅 이벤트를 수신합니다', - tooltip: '트리거 제공자로부터 콜백 요청을 받을 수 있는 공개 접근 가능한 엔드포인트를 제공하십시오.', + tooltip: '트리거 제공자로부터 콜백 요청을 받을 수 있는 공개적으로 접근 가능한 엔드포인트를 제공하세요.', placeholder: '생성 중...', - privateAddressWarning: '이 URL은 내부 주소인 것으로 보이며, 이로 인해 웹후크 요청이 실패할 수 있습니다. TRIGGER_URL을 공개 주소로 변경할 수 있습니다.', + privateAddressWarning: '이 URL은 내부 주소인 것으로 보이며, 웹훅 요청이 실패할 수 있습니다. TRIGGER_URL을 공개 주소로 변경하는 것을 고려하세요.', }, }, errors: { - createFailed: '구독 생성에 실패했습니다', + createFailed: '구독 생성 실패', verifyFailed: '인증 정보를 확인하지 못했습니다', authFailed: '인증 실패', - networkError: '네트워크 오류가 발생했습니다. 다시 시도해주세요.', + networkError: '네트워크 오류가 발생했습니다. 다시 시도해 주세요.', }, }, events: { @@ -169,18 +169,18 @@ const translation = { empty: '이용 가능한 이벤트가 없습니다', event: '이벤트', events: '이벤트', - actionNum: '{{num}} {{event}} 포함', + actionNum: '{{num}}개의 {{event}} 포함', item: { - parameters: '{{count}} 매개변수', + parameters: '{{count}}개의 매개변수', noParameters: '매개변수 없음', }, output: '출력', }, node: { status: { - warning: '연결 끊기', + warning: '연결 끊김', }, }, } -export default translation +export default translation \ No newline at end of file diff --git a/web/i18n/ko-KR/plugin.ts b/web/i18n/ko-KR/plugin.ts index 710490b9fb..c6e6fe6e1f 100644 --- a/web/i18n/ko-KR/plugin.ts +++ b/web/i18n/ko-KR/plugin.ts @@ -7,13 +7,13 @@ const translation = { tools: '도구', bundles: '번들', datasources: '데이터 소스', - triggers: '유발 요인', + triggers: '트리거', }, categorySingle: { extension: '확장', tool: '도구', agent: '에이전트 전략', - bundle: '보따리', + bundle: '번들', model: '모델', datasource: '데이터 소스', trigger: '트리거', @@ -22,27 +22,27 @@ const translation = { source: { marketplace: '마켓플레이스에서 설치', local: '로컬 패키지 파일에서 설치', - github: 'GitHub 에서 설치', + github: 'GitHub에서 설치', }, noInstalled: '설치된 플러그인이 없습니다.', notFound: '플러그인을 찾을 수 없습니다.', }, source: { local: '로컬 패키지 파일', - marketplace: '마켓', - github: '깃허브', + marketplace: '마켓플레이스', + github: 'GitHub', }, detailPanel: { categoryTip: { marketplace: '마켓플레이스에서 설치됨', debugging: '디버깅 플러그인', - github: 'Github 에서 설치됨', + github: 'GitHub에서 설치됨', local: '로컬 플러그인', }, operation: { - detail: '세부 정보', + detail: '상세 정보', install: '설치', - viewDetail: '자세히보기', + viewDetail: '상세 보기', info: '플러그인 정보', update: '업데이트', remove: '제거', @@ -52,41 +52,41 @@ const translation = { toolSelector: { empty: '\'+\' 버튼을 클릭하여 도구를 추가합니다. 여러 도구를 추가할 수 있습니다.', descriptionLabel: '도구 설명', - uninstalledContent: '이 플러그인은 로컬/GitHub 저장소에서 설치됩니다. 설치 후 사용하십시오.', - params: '추론 구성', + uninstalledContent: '이 플러그인은 로컬/GitHub 저장소에서 설치됩니다. 설치 후 사용해 주세요.', + params: '추론 설정', paramsTip1: 'LLM 추론 파라미터를 제어합니다.', uninstalledLink: '플러그인에서 관리', unsupportedTitle: '지원되지 않는 작업', - auto: '자동 번역', + auto: '자동', settings: '사용자 설정', - unsupportedContent2: '버전을 전환하려면 클릭합니다.', + unsupportedContent2: '버전을 전환하려면 클릭하세요.', uninstalledTitle: '도구가 설치되지 않음', - descriptionPlaceholder: '도구의 용도에 대한 간략한 설명 (예: 특정 위치의 온도 가져오기).', - title: '추가 도구', + descriptionPlaceholder: '도구의 용도에 대한 간략한 설명 (예: 특정 지역의 온도 가져오기).', + title: '도구 추가', toolLabel: '도구', placeholder: '도구 선택...', paramsTip2: '\'자동\'이 꺼져 있으면 기본값이 사용됩니다.', - unsupportedContent: '설치된 플러그인 버전은 이 작업을 제공하지 않습니다.', + unsupportedContent: '설치된 플러그인 버전은 이 작업을 지원하지 않습니다.', toolSetting: '도구 설정', unsupportedMCPTool: '현재 선택된 에이전트 전략 플러그인 버전은 MCP 도구를 지원하지 않습니다.', }, configureApp: '앱 구성', - strategyNum: '{{번호}} {{전략}} 포함', + strategyNum: '{{num}}개의 {{strategy}} 포함', endpointModalDesc: '구성이 완료되면 API 엔드포인트를 통해 플러그인에서 제공하는 기능을 사용할 수 있습니다.', - actionNum: '{{번호}} {{행동}} 포함', + actionNum: '{{num}}개의 {{action}} 포함', endpointDeleteTip: '엔드포인트 제거', - modelNum: '{{번호}} 포함 된 모델', + modelNum: '{{num}}개의 모델 포함', configureModel: '모델 구성', - configureTool: '구성 도구', - switchVersion: '스위치 버전', - endpointsEmpty: '\'+\' 버튼을 클릭하여 엔드포인트를 추가합니다.', + configureTool: '도구 구성', + switchVersion: '버전 전환', + endpointsEmpty: "'+' 버튼을 클릭하여 엔드포인트를 추가하세요.", endpointModalTitle: '엔드포인트 설정', endpointsTip: '이 플러그인은 엔드포인트를 통해 특정 기능을 제공하며 현재 작업 공간에 대해 여러 엔드포인트 세트를 구성할 수 있습니다.', - endpointDisableContent: '{{name}}을 비활성화하시겠습니까?', - endpointDeleteContent: '{{name}}을 제거하시겠습니까?', - disabled: '비활성화', + endpointDisableContent: '{{name}}을(를) 비활성화하시겠습니까?', + endpointDeleteContent: '{{name}}을(를) 제거하시겠습니까?', + disabled: '비활성화됨', endpointsDocLink: '문서 보기', - endpoints: '끝점', + endpoints: '엔드포인트', serviceOk: '서비스 정상', endpointDisableTip: '엔드포인트 비활성화', deprecation: { @@ -106,24 +106,24 @@ const translation = { }, privilege: { admins: '관리자', - title: '플러그인 기본 설정', + title: '플러그인 권한 설정', whoCanDebug: '누가 플러그인을 디버깅할 수 있나요?', - noone: '아무도 없어', + noone: '없음', everyone: '모두', - whoCanInstall: '누가 플러그인을 설치하고 관리할 수 있습니까?', + whoCanInstall: '누가 플러그인을 설치하고 관리할 수 있나요?', }, pluginInfoModal: { packageName: '패키지', repository: '저장소', title: '플러그인 정보', - release: '석방', + release: '릴리스', }, action: { - deleteContentRight: '플러그인?', + deleteContentRight: '플러그인을 제거하시겠습니까?', usedInApps: '이 플러그인은 {{num}}개의 앱에서 사용되고 있습니다.', pluginInfo: '플러그인 정보', checkForUpdates: '업데이트 확인', - deleteContentLeft: '제거하시겠습니까?', + deleteContentLeft: '정말', delete: '플러그인 제거', }, installModal: { @@ -134,171 +134,171 @@ const translation = { }, back: '뒤로', readyToInstallPackage: '다음 플러그인을 설치하려고 합니다.', - close: '닫다', - fromTrustSource: '신뢰할 수 있는 출처의 플러그인만 설치하도록 하세요.', + close: '닫기', + fromTrustSource: '신뢰할 수 있는 출처의 플러그인만 설치하세요.', readyToInstall: '다음 플러그인을 설치하려고 합니다.', uploadFailed: '업로드 실패', installPlugin: '플러그인 설치', pluginLoadErrorDesc: '이 플러그인은 설치되지 않습니다.', installedSuccessfully: '설치 성공', installedSuccessfullyDesc: '플러그인이 성공적으로 설치되었습니다.', - installing: '설치...', + installing: '설치 중...', pluginLoadError: '플러그인 로드 오류', installFailedDesc: '플러그인이 설치되지 않았습니다.', installFailed: '설치 실패', next: '다음', installComplete: '설치 완료', - install: '설치하다', - readyToInstallPackages: '다음 {{num}} 플러그인을 설치하려고 합니다.', - uploadingPackage: '{{packageName}} 업로드 중...', - dropPluginToInstall: '플러그인 패키지를 여기에 놓아 설치하십시오.', + install: '설치', + readyToInstallPackages: '다음 {{num}}개의 플러그인을 설치하려고 합니다.', + uploadingPackage: '{{packageName}} 업로드 중...', + dropPluginToInstall: '플러그인 패키지를 여기에 놓아 설치하세요.', cancel: '취소', installWarning: '이 플러그인은 설치할 수 없습니다.', }, installFromGitHub: { uploadFailed: '업로드 실패', selectVersionPlaceholder: '버전을 선택하세요.', - installPlugin: 'GitHub 에서 플러그인 설치', + installPlugin: 'GitHub에서 플러그인 설치', installFailed: '설치 실패', - updatePlugin: 'GitHub 에서 플러그인 업데이트', + updatePlugin: 'GitHub에서 플러그인 업데이트', selectPackage: '패키지 선택', gitHubRepo: 'GitHub 리포지토리', selectPackagePlaceholder: '패키지를 선택하세요.', installedSuccessfully: '설치 성공', selectVersion: '버전 선택', - installNote: '신뢰할 수 있는 출처의 플러그인만 설치하도록 하세요.', + installNote: '신뢰할 수 있는 출처의 플러그인만 설치하세요.', }, upgrade: { usedInApps: '{{num}}개의 앱에서 사용됨', description: '다음 플러그인을 설치하려고 합니다.', successfulTitle: '설치 성공', - upgrade: '설치하다', - upgrading: '설치...', - close: '닫다', + upgrade: '업그레이드', + upgrading: '설치 중...', + close: '닫기', title: '플러그인 설치', }, error: { - noReleasesFound: '릴리스를 찾을 수 없습니다. GitHub 리포지토리 또는 입력 URL 을 확인하세요.', - fetchReleasesError: '릴리스를 검색할 수 없습니다. 나중에 다시 시도하십시오.', - inValidGitHubUrl: '잘못된 GitHub URL 입니다. 유효한 URL 을 https://github.com/owner/repo 형식으로 입력하십시오.', + noReleasesFound: '릴리스를 찾을 수 없습니다. GitHub 리포지토리 또는 입력 URL을 확인하세요.', + fetchReleasesError: '릴리스를 검색할 수 없습니다. 나중에 다시 시도하세요.', + inValidGitHubUrl: '잘못된 GitHub URL입니다. 유효한 URL을 https://github.com/owner/repo 형식으로 입력하세요.', }, marketplace: { sortOption: { - recentlyUpdated: '최근 업데이트', - firstReleased: '첫 출시', - newlyReleased: '새로 출시 된', - mostPopular: '가장 인기 있는', + recentlyUpdated: '최근 업데이트순', + firstReleased: '최초 출시순', + newlyReleased: '최신 출시순', + mostPopular: '인기순', }, noPluginFound: '플러그인을 찾을 수 없습니다.', empower: 'AI 개발 역량 강화', - viewMore: '더보기', + viewMore: '더 보기', difyMarketplace: 'Dify 마켓플레이스', - pluginsResult: '{{num}} 결과', - discover: '발견하다', - moreFrom: 'Marketplace 에서 더 보기', + pluginsResult: '{{num}}개 결과', + discover: '발견하기', + moreFrom: '마켓플레이스에서 더 보기', sortBy: '정렬', - and: '그리고', - verifiedTip: 'Dify 에 의해 확인됨', - partnerTip: 'Dify 파트너에 의해 확인됨', + and: '및', + verifiedTip: 'Dify 인증됨', + partnerTip: 'Dify 파트너 인증됨', }, task: { - installingWithSuccess: '{{installingLength}} 플러그인 설치, {{successLength}} 성공.', - installedError: '{{errorLength}} 플러그인 설치 실패', - installing: '{{installingLength}} 플러그인 설치, 0 완료.', - installingWithError: '{{installingLength}} 플러그인 설치, {{successLength}} 성공, {{errorLength}} 실패', - installError: '{{errorLength}} 플러그인 설치 실패, 보려면 클릭하십시오.', + installingWithSuccess: '{{installingLength}}개 플러그인 설치 중, {{successLength}}개 성공.', + installedError: '{{errorLength}}개 플러그인 설치 실패', + installing: '{{installingLength}}개 플러그인 설치 중, 0개 완료.', + installingWithError: '{{installingLength}}개 플러그인 설치 중, {{successLength}}개 성공, {{errorLength}}개 실패', + installError: '{{errorLength}}개 플러그인 설치 실패, 클릭하여 보기.', clearAll: '모두 지우기', - installSuccess: '{{successLength}} plugins installed successfully', - installed: 'Installed', - runningPlugins: 'Installing Plugins', - successPlugins: 'Successfully Installed Plugins', - errorPlugins: 'Failed to Install Plugins', + installSuccess: '{{successLength}}개 플러그인 설치 성공', + installed: '설치됨', + runningPlugins: '플러그인 설치 중', + successPlugins: '플러그인 설치 성공', + errorPlugins: '플러그인 설치 실패', }, - installAction: '설치하다', - searchTools: '검색 도구...', + installAction: '설치', + searchTools: '도구 검색...', installPlugin: '플러그인 설치', - endpointsEnabled: '{{num}}개의 엔드포인트 집합이 활성화되었습니다.', - installFrom: '에서 설치', + endpointsEnabled: '{{num}}개 엔드포인트 세트 활성화됨', + installFrom: '설치 출처:', allCategories: '모든 카테고리', - findMoreInMarketplace: 'Marketplace 에서 더 알아보기', - searchCategories: '검색 카테고리', + findMoreInMarketplace: '마켓플레이스에서 더 알아보기', + searchCategories: '카테고리 검색', search: '검색', - searchInMarketplace: 'Marketplace 에서 검색', - from: '보낸 사람', - searchPlugins: '검색 플러그인', + searchInMarketplace: '마켓플레이스에서 검색', + from: '출처', + searchPlugins: '플러그인 검색', install: '{{num}} 설치', - fromMarketplace: 'Marketplace 에서', + fromMarketplace: '마켓플레이스에서', metadata: { title: '플러그인', }, difyVersionNotCompatible: '현재 Dify 버전이 이 플러그인과 호환되지 않습니다. 필요한 최소 버전으로 업그레이드하십시오: {{minimalDifyVersion}}', - requestAPlugin: '플러그인을 요청하세요', + requestAPlugin: '플러그인 요청하기', publishPlugins: '플러그인 게시', auth: { oauthClient: 'OAuth 클라이언트', default: '기본', - addApi: 'API 키 추가하기', - authorization: '권한', + addApi: 'API 키 추가', + authorization: '인증', oauthClientSettings: 'OAuth 클라이언트 설정', setupOAuth: 'OAuth 클라이언트 설정', setDefault: '기본값으로 설정', workspaceDefault: '작업 공간 기본값', - saveAndAuth: '저장하고 승인하세요', - addOAuth: 'OAuth 추가하기', - custom: '맞춤형', + saveAndAuth: '저장 및 인증', + addOAuth: 'OAuth 추가', + custom: '사용자 지정', authRemoved: '인증이 제거되었습니다.', saveOnly: '저장만 하기', - authorizationName: '권한 이름', - useApiAuth: 'API 키 인증 구성', - useOAuth: 'OAuth 사용하기', - useApi: 'API 키를 사용하세요.', + authorizationName: '인증 이름', + useApiAuth: 'API 키 인증 사용', + useOAuth: 'OAuth 사용', + useApi: 'API 키 사용', authorizations: '권한', - useOAuthAuth: 'OAuth 인증 사용하기', - useApiAuthDesc: '자격증명을 구성한 후에는 작업 공간 내의 모든 구성원이 애플리케이션을 조정할 때 이 도구를 사용할 수 있습니다.', - clientInfo: '이 도구 공급자에 대한 시스템 클라이언트 비밀이 발견되지 않았으므로 수동으로 설정해야 하며, redirect_uri는 다음을 사용하십시오.', - unavailable: '사용할 수 없음', - credentialUnavailable: '현재 자격 증명이 사용 불가능합니다. 관리자에게 문의하십시오.', - customCredentialUnavailable: '현재 사용자 정의 자격 증명이 사용 불가능합니다.', - credentialUnavailableInButton: '자격 증명 사용 불가능', + useOAuthAuth: 'OAuth 인증 사용', + useApiAuthDesc: '자격 증명을 구성한 후에는 작업 공간 내의 모든 구성원이 애플리케이션을 조정할 때 이 도구를 사용할 수 있습니다.', + clientInfo: '이 도구 공급자에 대한 시스템 클라이언트 시크릿을 찾을 수 없어 수동 설정이 필요합니다. redirect_uri에는 다음을 사용하세요.', + unavailable: '사용 불가', + credentialUnavailable: '현재 자격 증명을 사용할 수 없습니다. 관리자에게 문의하세요.', + customCredentialUnavailable: '현재 사용자 지정 자격 증명을 사용할 수 없습니다.', + credentialUnavailableInButton: '자격 증명 사용 불가', connectedWorkspace: '연결된 작업 공간', - emptyAuth: '인증을 구성하십시오.', + emptyAuth: '인증을 설정하세요.', }, deprecated: '사용 중단됨', autoUpdate: { strategy: { disabled: { - name: '장애인', + name: '비활성화', description: '플러그인이 자동으로 업데이트되지 않습니다.', }, fixOnly: { - name: '수정만 하기', + name: '수정 사항만', selectedDescription: '패치 버전만 자동 업데이트', - description: '패치 버전만 자동 업데이트 (예: 1.0.1 → 1.0.2). 마이너 버전 변경은 업데이트를 유발하지 않습니다.', + description: '패치 버전만 자동 업데이트합니다 (예: 1.0.1 → 1.0.2). 마이너 버전 변경은 업데이트되지 않습니다.', }, latest: { name: '최신', - description: '항상 최신 버전으로 업데이트하세요.', - selectedDescription: '항상 최신 버전으로 업데이트하세요.', + description: '항상 최신 버전으로 업데이트합니다.', + selectedDescription: '항상 최신 버전으로 업데이트합니다.', }, }, upgradeMode: { - partial: '선택된 것만', - all: '모두 업데이트하기', - exclude: '선택한 항목 제외', + partial: '선택 항목만', + all: '모두 업데이트', + exclude: '선택 항목 제외', }, upgradeModePlaceholder: { partial: '선택된 플러그인만 자동 업데이트됩니다. 현재 선택된 플러그인이 없으므로 자동 업데이트되는 플러그인은 없습니다.', - exclude: '선택한 플러그인은 자동으로 업데이트되지 않습니다.', + exclude: '선택된 플러그인은 자동으로 업데이트되지 않습니다.', }, operation: { clearAll: '모두 지우기', - select: '플러그인을 선택하세요', + select: '플러그인 선택', }, pluginDowngradeWarning: { exclude: '자동 업데이트에서 제외', title: '플러그인 다운그레이드', - downgrade: '어쨌든 다운그레이드', - description: '이 플러그인은 현재 자동 업데이트가 활성화되어 있습니다. 버전을 다운그레이드하면 다음 자동 업데이트 중에 변경 사항이 덮어써질 수 있습니다.', + downgrade: '강제 다운그레이드', + description: '이 플러그인은 현재 자동 업데이트가 활성화되어 있습니다. 버전을 다운그레이드하면 다음 자동 업데이트 시 변경 사항이 덮어쓰여질 수 있습니다.', }, noPluginPlaceholder: { noFound: '플러그인이 없습니다.', @@ -309,17 +309,17 @@ const translation = { updateTime: '업데이트 시간', nextUpdateTime: '다음 자동 업데이트: {{time}}', updateSettings: '설정 업데이트', - partialUPdate: '다음 {{num}} 플러그인만 자동 업데이트됩니다.', + partialUPdate: '다음 {{num}}개의 플러그인만 자동 업데이트됩니다.', changeTimezone: '시간대를 변경하려면 설정으로 이동하세요.', - specifyPluginsToUpdate: '업데이트할 플러그인을 지정하십시오.', - excludeUpdate: '다음 {{num}} 플러그인은 자동 업데이트되지 않습니다.', + specifyPluginsToUpdate: '업데이트할 플러그인을 지정하세요.', + excludeUpdate: '다음 {{num}}개의 플러그인은 자동 업데이트되지 않습니다.', }, readmeInfo: { - title: '읽어보기', + title: 'README', needHelpCheckReadme: '도움이 필요하신가요? README를 확인하세요.', noReadmeAvailable: '사용 가능한 README가 없습니다', failedToFetch: 'README를 가져오지 못했습니다', }, } -export default translation +export default translation \ No newline at end of file diff --git a/web/i18n/ko-KR/run-log.ts b/web/i18n/ko-KR/run-log.ts index 7af4cee58d..ed2dc74f36 100644 --- a/web/i18n/ko-KR/run-log.ts +++ b/web/i18n/ko-KR/run-log.ts @@ -1,12 +1,12 @@ const translation = { input: '입력', result: '결과', - detail: '상세정보', + detail: '상세 정보', tracing: '트레이싱', resultPanel: { status: '상태', time: '소요 시간', - tokens: '토큰 총합', + tokens: '토큰 합계', }, meta: { title: '메타데이터', @@ -15,17 +15,17 @@ const translation = { executor: '실행자', startTime: '시작 시간', time: '소요 시간', - tokens: '토큰 총합', + tokens: '토큰 합계', steps: '실행 단계', }, resultEmpty: { - title: '이 실행에서는 JSON 형식만 출력됩니다', - tipLeft: '를 방문해주세요', + title: '이 실행은 JSON 형식만 출력합니다', + tipLeft: '자세한 내용은', link: '상세 정보 패널', - tipRight: '를 확인하세요.', + tipRight: '을(를) 확인하세요.', }, actionLogs: '작업 로그', circularInvocationTip: '현재 워크플로우에 도구/노드의 순환 호출이 있습니다.', } -export default translation +export default translation \ No newline at end of file diff --git a/web/i18n/ko-KR/share.ts b/web/i18n/ko-KR/share.ts index af88cd05da..2ea9c6796c 100644 --- a/web/i18n/ko-KR/share.ts +++ b/web/i18n/ko-KR/share.ts @@ -9,65 +9,65 @@ const translation = { pinnedTitle: '고정됨', unpinnedTitle: '채팅', newChatDefaultName: '새 대화', - resetChat: '대화 재설정', + resetChat: '대화 초기화', poweredBy: 'Powered by', prompt: '프롬프트', privatePromptConfigTitle: '채팅 설정', publicPromptConfigTitle: '초기 프롬프트', configStatusDes: '시작하기 전에 채팅 설정을 변경할 수 있습니다', - configDisabled: '이전 세션의 설정이 현재 세션에서 사용되었습니다.', + configDisabled: '이전 세션의 설정이 현재 세션에 사용되었습니다.', startChat: '채팅 시작', privacyPolicyLeft: '앱 개발자가 제공하는', - privacyPolicyMiddle: '개인 정보 보호 정책', - privacyPolicyRight: '을 읽어보세요.', + privacyPolicyMiddle: '개인정보 처리방침', + privacyPolicyRight: '을(를) 읽어보세요.', deleteConversation: { title: '대화 삭제', content: '이 대화를 삭제하시겠습니까?', }, - tryToSolve: '해결하려고 합니다', + tryToSolve: '해결 시도', temporarySystemIssue: '죄송합니다. 일시적인 시스템 문제가 발생했습니다.', - expand: '확장', - collapse: '축소', + expand: '펼치기', + collapse: '접기', viewChatSettings: '채팅 설정 보기', - newChatTip: '이미 새로운 채팅 중입니다.', + newChatTip: '이미 새 채팅 중입니다.', chatFormTip: '채팅이 시작된 후에는 채팅 설정을 수정할 수 없습니다.', chatSettingsTitle: '새 채팅 설정', }, generation: { tabs: { - create: '일회용 실행', + create: '단일 실행', batch: '일괄 실행', saved: '저장된 결과', }, savedNoData: { title: '아직 저장된 결과가 없습니다!', - description: '컨텐츠 생성을 시작하고 저장된 결과를 여기서 찾아보세요.', - startCreateContent: '컨텐츠 생성 시작', + description: '콘텐츠 생성을 시작하고 저장된 결과를 여기서 확인하세요.', + startCreateContent: '콘텐츠 생성 시작', }, - title: 'AI 완성', - queryTitle: '컨텐츠 쿼리', - completionResult: '완성 결과', - queryPlaceholder: '쿼리 컨텐츠를 작성해주세요...', + title: 'AI 텍스트 생성', + queryTitle: '쿼리 내용', + completionResult: '생성 결과', + queryPlaceholder: '쿼리 내용을 작성해주세요...', run: '실행', copy: '복사', - resultTitle: 'AI 완성', - noData: 'AI 가 필요한 내용을 제공할 것입니다.', - csvUploadTitle: 'CSV 파일을 여기로 끌어다 놓거나', + resultTitle: 'AI 텍스트 생성', + noData: 'AI가 필요한 내용을 생성할 것입니다.', + csvUploadTitle: 'CSV 파일을 여기로 드래그 앤 드롭하거나', browse: '찾아보기', csvStructureTitle: 'CSV 파일은 다음 구조를 따라야 합니다:', downloadTemplate: '여기에서 템플릿 다운로드', field: '필드', batchFailed: { - info: '{{num}} 회의 실행이 실패했습니다', + info: '{{num}}회 실행 실패', retry: '재시도', - outputPlaceholder: '출력 컨텐츠 없음', + outputPlaceholder: '출력 내용 없음', }, errorMsg: { - empty: '업로드된 파일에 컨텐츠를 입력해주세요.', + empty: '업로드된 파일에 내용을 입력해주세요.', fileStructNotMatch: '업로드된 CSV 파일이 구조와 일치하지 않습니다.', - emptyLine: '줄 {{rowIndex}}이 (가) 비어 있습니다.', - invalidLine: '줄 {{rowIndex}}: {{varName}}의 값은 비워둘 수 없습니다.', - moreThanMaxLengthLine: '줄 {{rowIndex}}: {{varName}}의 값은 {{maxLength}}자를 초과할 수 없습니다.', + emptyLine: '{{rowIndex}}행이 비어 있습니다.', + invalidLine: '{{rowIndex}}행: {{varName}} 값은 비워둘 수 없습니다.', + moreThanMaxLengthLine: '{{rowIndex}}행: {{varName}} 값은 {{maxLength}}자를 초과할 수 없습니다.', atLeastOne: '업로드된 파일에는 적어도 한 줄의 입력이 필요합니다.', }, execution: '실행', @@ -79,4 +79,4 @@ const translation = { }, } -export default translation +export default translation \ No newline at end of file diff --git a/web/i18n/ko-KR/time.ts b/web/i18n/ko-KR/time.ts index 1f2540581a..b07479eae5 100644 --- a/web/i18n/ko-KR/time.ts +++ b/web/i18n/ko-KR/time.ts @@ -9,23 +9,23 @@ const translation = { Sat: '토요일', }, months: { - May: '5 월', - January: '1 월', - August: '8 월', - July: '7 월', - April: '4 월', - October: '10 월', - December: '12 월', - February: '2 월', - June: '6 월', - November: '11 월', - March: '3 월', - September: '9 월', + January: '1월', + February: '2월', + March: '3월', + April: '4월', + May: '5월', + June: '6월', + July: '7월', + August: '8월', + September: '9월', + October: '10월', + November: '11월', + December: '12월', }, operation: { pickDate: '날짜 선택', cancel: '취소', - ok: '좋아요', + ok: '확인', now: '오늘', }, title: { @@ -34,11 +34,11 @@ const translation = { defaultPlaceholder: '시간을 선택하세요...', dateFormats: { input: 'YYYY-MM-DD', - display: 'MMMM D, YYYY', + display: 'YYYY년 MMMM D일', outputWithTime: 'YYYY-MM-DDTHH:mm:ss.SSSZ', - displayWithTime: 'MMMM D, YYYY hh:mm A', + displayWithTime: 'YYYY년 MMMM D일 A h:mm', output: 'YYYY-MM-DD', }, } -export default translation +export default translation \ No newline at end of file diff --git a/web/i18n/ko-KR/tools.ts b/web/i18n/ko-KR/tools.ts index 4b97a2d9cb..770c05aec6 100644 --- a/web/i18n/ko-KR/tools.ts +++ b/web/i18n/ko-KR/tools.ts @@ -1,27 +1,27 @@ const translation = { title: '도구', - createCustomTool: '커스텀 도구 만들기', - customToolTip: 'Dify 커스텀 도구에 대해 더 알아보기', + createCustomTool: '사용자 정의 도구 만들기', + customToolTip: 'Dify 사용자 정의 도구에 대해 더 알아보기', type: { builtIn: '내장', - custom: '커스텀', + custom: '사용자 정의', workflow: '워크플로우', }, contribute: { - line1: '저는 Dify 에', - line2: '도구를 기여하는데 관심이 있습니다.', + line1: 'Dify에', + line2: '도구를 기여하는 데 관심이 있습니다.', viewGuide: '가이드 보기', }, - author: '저자', + author: '제작자', auth: { authorized: '인증됨', setup: '사용을 위한 인증 설정', setupModalTitle: '인증 설정', - setupModalTitleDescription: '자격 증명을 구성한 후에 워크스페이스의 모든 멤버가 이 도구를 사용하여 애플리케이션을 조작할 수 있습니다.', + setupModalTitleDescription: '자격 증명을 설정하면 워크스페이스의 모든 멤버가 이 도구를 사용하여 애플리케이션을 조작할 수 있습니다.', }, includeToolNum: '{{num}}개의 도구가 포함되어 있습니다', addToolModal: { - type: '타입', + type: '유형', category: '카테고리', added: '추가됨', custom: { @@ -41,22 +41,22 @@ const translation = { }, }, createTool: { - title: '커스텀 도구 만들기', + title: '사용자 정의 도구 만들기', editAction: '설정', - editTitle: '커스텀 도구 편집', + editTitle: '사용자 정의 도구 편집', name: '이름', toolNamePlaceHolder: '도구 이름을 입력하세요', - nameForToolCall: '도구 호출 이름', - nameForToolCallPlaceHolder: 'getCurrentWeather, list_pets 과 같이, 기계 인지를 위해 사용됩니다.', - nameForToolCallTip: '숫자와 문자, 밑줄만 지원합니다.', + nameForToolCall: '도구 호출명', + nameForToolCallPlaceHolder: 'getCurrentWeather, list_pets와 같이 기계가 이해할 수 있는 이름', + nameForToolCallTip: '숫자, 문자, 밑줄만 지원합니다.', description: '설명', - descriptionPlaceholder: '도구의 목적을 설명합니다. 예시로, 특정 지역의 온도 가져오기', + descriptionPlaceholder: '도구의 목적을 설명합니다. 예: 특정 지역의 온도 가져오기', schema: '스키마', - schemaPlaceHolder: '여기에 OpenAPI 스키마를 입력하세요', + schemaPlaceHolder: 'OpenAPI 스키마를 여기에 입력하세요', viewSchemaSpec: 'OpenAPI-Swagger 명세 보기', - importFromUrl: 'URL 에서 가져오기', + importFromUrl: 'URL에서 가져오기', importFromUrlPlaceHolder: 'https://...', - urlError: '유효한 URL 을 입력하세요', + urlError: '유효한 URL을 입력하세요', examples: '예시', exampleOptions: { json: '날씨 (JSON)', @@ -67,33 +67,33 @@ const translation = { title: '사용 가능한 도구', name: '이름', description: '설명', - method: '메소드', + method: '메서드', path: '경로', - action: '동작', + action: '작업', test: '테스트', }, authMethod: { title: '인증 방법', type: '인증 유형', - keyTooltip: 'HTTP 헤더 키입니다. 생각이 없으면 "Authorization"으로 남겨둘 수 있습니다. 또는 사용자 정의 값을 설정할 수 있습니다.', + keyTooltip: 'HTTP 헤더 키입니다. "Authorization"이 기본값입니다. 사용자 정의 값을 설정할 수도 있습니다.', types: { none: '없음', apiKeyPlaceholder: 'API 키의 HTTP 헤더 이름', apiValuePlaceholder: 'API 키를 입력하세요', api_key_query: '쿼리 매개변수', - queryParamPlaceholder: 'API 키에 대한 쿼리 매개변수 이름', + queryParamPlaceholder: 'API 키의 쿼리 매개변수 이름', api_key_header: '헤더', }, key: '키', value: '값', queryParam: '쿼리 매개변수', - queryParamTooltip: '전달할 API 키 쿼리 매개변수의 이름, 예: "https://example.com/test?key=API_KEY"에서의 "key".', + queryParamTooltip: '전달할 API 키 쿼리 매개변수의 이름입니다. 예: "https://example.com/test?key=API_KEY"에서의 "key".', }, authHeaderPrefix: { title: '인증 유형', types: { - basic: '베이직', - bearer: '베어러', + basic: 'Basic', + bearer: 'Bearer', custom: '사용자 정의', }, }, @@ -102,35 +102,35 @@ const translation = { toolInput: { title: '도구 입력', name: '이름', - required: '필요사항', + required: '필수', method: '방식', methodSetting: '설정', - methodSettingTip: '도구 설정에서 사용자가 기입', - methodParameter: '파라미터', - methodParameterTip: '추론 중에 LLM 이 기입', + methodSettingTip: '도구 설정에서 사용자가 입력', + methodParameter: '매개변수', + methodParameterTip: '추론 중에 LLM이 입력', label: '태그', - labelPlaceholder: '태그를 선택하세요.(선택사항)', + labelPlaceholder: '태그를 선택하세요(선택 사항)', description: '설명', - descriptionPlaceholder: '파라미터의 의도를 설명하세요.', + descriptionPlaceholder: '매개변수의 의미를 설명하세요.', }, - customDisclaimer: '사용자 정의 권리 포기 문구', - customDisclaimerPlaceholder: '사용자 정의 권리 포기 문구를 입력해주세요.', + customDisclaimer: '사용자 정의 면책 조항', + customDisclaimerPlaceholder: '사용자 정의 면책 조항을 입력하세요.', confirmTitle: '저장하시겠습니까?', - confirmTip: '이 도구를 사용하는 앱은 영향을 받습니다.', + confirmTip: '이 도구를 사용하는 앱에 영향을 미칠 수 있습니다.', deleteToolConfirmTitle: '이 도구를 삭제하시겠습니까?', - deleteToolConfirmContent: '이 도구를 삭제하면 되돌릴 수 없습니다. 사용자는 더 이상 당신의 도구에 액세스할 수 없습니다.', + deleteToolConfirmContent: '도구를 삭제하면 되돌릴 수 없습니다. 사용자는 더 이상 이 도구에 액세스할 수 없습니다.', toolOutput: { title: '도구 출력', name: '이름', reserved: '예약됨', - reservedParameterDuplicateTip: 'text, json, 파일은 예약된 변수입니다. 이러한 이름을 가진 변수는 출력 스키마에 나타날 수 없습니다.', + reservedParameterDuplicateTip: 'text, json, file은 예약된 변수입니다. 이 이름들은 출력 스키마에 사용할 수 없습니다.', description: '설명', }, }, test: { title: '테스트', - parametersValue: '파라미터 및 값', - parameters: '파라미터', + parametersValue: '매개변수 및 값', + parameters: '매개변수', value: '값', testResult: '테스트 결과', testResultPlaceholder: '테스트 결과가 여기에 표시됩니다', @@ -145,7 +145,7 @@ const translation = { info: '정보', setting: '설정', toolDescription: '도구 설명', - parameters: '파라미터', + parameters: '매개변수', string: '문자열', number: '숫자', required: '필수', @@ -153,8 +153,8 @@ const translation = { file: '파일', }, noCustomTool: { - title: '커스텀 도구가 없습니다!', - content: 'AI 앱을 구축하기 위한 커스텀 도구를 여기서 추가 및 관리합니다.', + title: '사용자 정의 도구가 없습니다!', + content: 'AI 앱 구축을 위한 사용자 정의 도구를 여기에서 추가하고 관리하세요.', createTool: '도구 만들기', }, noSearchRes: { @@ -167,7 +167,7 @@ const translation = { notAuthorized: '권한이 없습니다', howToGet: '획득 방법', openInStudio: '스튜디오에서 열기', - toolNameUsageTip: 'Agent 추리와 프롬프트를 위한 도구 호출 이름', + toolNameUsageTip: '에이전트 추론과 프롬프트를 위한 도구 호출명', noTools: '도구를 찾을 수 없습니다.', copyToolName: '이름 복사', mcp: { @@ -175,44 +175,44 @@ const translation = { cardTitle: 'MCP 서버 추가 (HTTP)', cardLink: 'MCP 서버 통합에 대해 자세히 알아보기', }, - noConfigured: '구성되지 않은 서버', + noConfigured: '구성된 서버 없음', updateTime: '업데이트됨', - toolsCount: '{count} 도구', + toolsCount: '{count}개 도구', noTools: '사용 가능한 도구 없음', modal: { title: 'MCP 서버 추가 (HTTP)', editTitle: 'MCP 서버 수정 (HTTP)', name: '이름 및 아이콘', - namePlaceholder: 'MCP 서버 이름 지정', + namePlaceholder: 'MCP 서버 이름', serverUrl: '서버 URL', serverUrlPlaceholder: '서버 엔드포인트 URL', - serverUrlWarning: '서버 주소를 업데이트하면 이 서버에 의존하는 응용 프로그램에 지장이 발생할 수 있습니다', + serverUrlWarning: '서버 주소를 변경하면 이 서버를 사용하는 앱에 영향을 줄 수 있습니다', serverIdentifier: '서버 식별자', - serverIdentifierTip: '작업 공간 내에서 MCP 서버의 고유 식별자. 소문자, 숫자, 밑줄 및 하이픈만 사용 가능. 최대 24자.', - serverIdentifierPlaceholder: '고유 식별자, 예: my-mcp-server', - serverIdentifierWarning: 'ID 변경 후 기존 앱에서 서버를 인식하지 못합니다', + serverIdentifierTip: '작업 공간 내에서 MCP 서버를 구별하는 고유 식별자입니다. 소문자, 숫자, 밑줄, 하이픈만 사용할 수 있습니다. 최대 24자.', + serverIdentifierPlaceholder: '고유 식별자 (예: my-mcp-server)', + serverIdentifierWarning: 'ID를 변경하면 기존 앱에서 이 서버를 인식하지 못할 수 있습니다', cancel: '취소', save: '저장', confirm: '추가 및 승인', timeout: '타임아웃', sseReadTimeout: 'SSE 읽기 타임아웃', headers: '헤더', - headerKeyPlaceholder: '예: 승인', + headerKeyPlaceholder: '예: Authorization', headerKey: '헤더 이름', - headerValuePlaceholder: '예: 베어러 토큰123', - timeoutPlaceholder: '서른', + headerValuePlaceholder: '예: Bearer token123', + timeoutPlaceholder: '30', headerValue: '헤더 값', addHeader: '헤더 추가', - noHeaders: '사용자 정의 헤더가 구성되어 있지 않습니다.', - headersTip: 'MCP 서버 요청과 함께 보낼 추가 HTTP 헤더', - maskedHeadersTip: '헤더 값은 보안상 마스킹 처리되어 있습니다. 변경 사항은 실제 값에 업데이트됩니다.', + noHeaders: '사용자 정의 헤더가 설정되지 않았습니다.', + headersTip: 'MCP 서버 요청 시 함께 보낼 추가 HTTP 헤더', + maskedHeadersTip: '헤더 값은 보안을 위해 마스킹 처리됩니다. 변경 시 새 값으로 업데이트됩니다.', authentication: '인증', configurations: '구성', useDynamicClientRegistration: '동적 클라이언트 등록 사용', clientSecret: '클라이언트 시크릿', clientID: '클라이언트 ID', clientSecretPlaceholder: '클라이언트 시크릿', - redirectUrlWarning: 'OAuth 리디렉션 URL을 다음으로 설정해 주세요:', + redirectUrlWarning: 'OAuth 리디렉션 URL을 다음 주소로 설정해 주세요:', }, delete: 'MCP 서버 제거', deleteConfirmTitle: '{mcp}를 제거하시겠습니까?', @@ -232,7 +232,7 @@ const translation = { getTools: '도구 가져오기', toolUpdateConfirmTitle: '도구 목록 업데이트', toolUpdateConfirmContent: '도구 목록을 업데이트하면 기존 앱에 영향을 줄 수 있습니다. 계속하시겠습니까?', - toolsNum: '{count} 도구가 포함됨', + toolsNum: '{count}개 도구 포함', onlyTool: '1개 도구 포함', identifier: '서버 식별자 (클릭하여 복사)', server: { @@ -242,16 +242,16 @@ const translation = { addDescription: '설명 추가', edit: '설명 수정', modal: { - addTitle: 'MCP 서버를 활성화하기 위한 설명 추가', + addTitle: 'MCP 서버 활성화를 위한 설명 추가', editTitle: '설명 수정', description: '설명', - descriptionPlaceholder: '이 도구가 수행하는 작업과 LLM이 사용하는 방법을 설명하세요.', + descriptionPlaceholder: '이 도구의 기능과 LLM이 이를 어떻게 사용해야 하는지 설명하세요.', parameters: '매개변수', - parametersTip: '각 매개변수의 설명을 추가하여 LLM이 목적과 제한 사항을 이해할 수 있도록 도와주세요.', - parametersPlaceholder: '매개변수의 목적 및 제한 사항', + parametersTip: '각 매개변수의 설명을 추가하여 LLM이 목적과 제약 조건을 이해하도록 도와주세요.', + parametersPlaceholder: '매개변수의 목적 및 제약 조건', confirm: 'MCP 서버 활성화', }, - publishTip: '앱이 게시되지 않았습니다. 먼저 앱을 게시하십시오.', + publishTip: '앱이 게시되지 않았습니다. 먼저 앱을 게시하세요.', }, toolItem: { noDescription: '설명 없음', @@ -261,4 +261,4 @@ const translation = { allTools: '모든 도구', } -export default translation +export default translation \ No newline at end of file diff --git a/web/i18n/ko-KR/workflow.ts b/web/i18n/ko-KR/workflow.ts index 964f331c85..910df79957 100644 --- a/web/i18n/ko-KR/workflow.ts +++ b/web/i18n/ko-KR/workflow.ts @@ -45,7 +45,7 @@ const translation = { content: '변수가 다른 노드에서 사용되고 있습니다. 그래도 제거하시겠습니까?', }, - insertVarTip: '빠르게 삽입하려면 \'/\' 키를 누르세요', + insertVarTip: "'\/' 키를 눌러 빠르게 삽입", processData: '데이터 처리', input: '입력', output: '출력', @@ -65,16 +65,16 @@ const translation = { configure: '구성', manageInTools: '도구에서 관리', workflowAsToolTip: '워크플로우 업데이트 후 도구 재구성이 필요합니다.', - viewDetailInTracingPanel: '세부 정보 보기', + viewDetailInTracingPanel: '상세 정보 보기', importDSL: 'DSL 가져오기', importFailure: '가져오기 실패', chooseDSL: 'DSL(yml) 파일 선택', backupCurrentDraft: '현재 초안 백업', overwriteAndImport: '덮어쓰기 및 가져오기', importSuccess: '가져오기 성공', - syncingData: '단 몇 초 만에 데이터를 동기화할 수 있습니다.', + syncingData: '데이터 동기화 중 (몇 초 소요)', importDSLTip: - '현재 초안을 덮어씁니다. 가져오기 전에 워크플로우를 백업으로 내보냅니다.', + '현재 초안을 덮어씁니다. 가져오기 전에 워크플로우를 백업으로 내보내는 것을 권장합니다.', parallelTip: { click: { title: '클릭', @@ -82,12 +82,12 @@ const translation = { }, drag: { title: '드래그', - desc: '연결 방법', + desc: '연결', }, - depthLimit: '평행 중첩 레이어 {{num}}개 레이어의 제한', + depthLimit: '병렬 중첩 레이어 {{num}}개 제한', limit: '병렬 처리는 {{num}}개의 분기로 제한됩니다.', }, - disconnect: '분리하다', + disconnect: '연결 해제', jumpToNode: '이 노드로 이동', addParallelNode: '병렬 노드 추가', parallel: '병렬', @@ -98,52 +98,52 @@ const translation = { importWarning: '주의', importWarningDetails: 'DSL 버전 차이는 특정 기능에 영향을 미칠 수 있습니다.', - openInExplore: 'Explore 에서 열기', + openInExplore: '탐색에서 열기', onFailure: '실패 시', addFailureBranch: '실패 분기 추가', - noHistory: '이력 없음', + noHistory: '기록 없음', loadMore: '더 많은 워크플로우 로드', publishUpdate: '업데이트 게시', - exportJPEG: 'JPEG 로 내보내기', + exportJPEG: 'JPEG로 내보내기', exitVersions: '종료 버전', exportImage: '이미지 내보내기', - exportSVG: 'SVG 로 내보내기', + exportSVG: 'SVG로 내보내기', versionHistory: '버전 기록', - exportPNG: 'PNG 로 내보내기', + exportPNG: 'PNG로 내보내기', addBlock: '노드 추가', needAnswerNode: '답변 노드를 추가해야 합니다.', needOutputNode: '출력 노드를 추가해야 합니다', tagBound: '이 태그를 사용하는 앱 수', currentView: '현재 보기', - currentWorkflow: '현재 워크플로', + currentWorkflow: '현재 워크플로우', moreActions: '더 많은 작업', - listening: '듣기', - chooseStartNodeToRun: '실행할 시작 노드를 선택하세요', + listening: '수신 중', + chooseStartNodeToRun: '실행할 시작 노드 선택', runAllTriggers: '모든 트리거 실행', - features: '특징', + features: '기능', featuresDescription: '웹 앱 사용자 경험 향상', featuresDocLink: '자세히 알아보기', needAdd: '{{node}} 노드를 추가해야 합니다', needStartNode: '적어도 하나의 시작 노드를 추가해야 합니다', - workflowAsToolDisabledHint: '최신 워크플로를 게시하고 도구로 구성하기 전에 연결된 사용자 입력 노드가 있는지 확인하세요.', + workflowAsToolDisabledHint: '최신 워크플로우를 게시하고 도구로 구성하기 전에 연결된 사용자 입력 노드가 있는지 확인하세요.', }, env: { envPanelTitle: '환경 변수', envDescription: - '환경 변수는 개인 정보와 자격 증명을 저장하는 데 사용될 수 있습니다. 이들은 읽기 전용이며 내보내기 중에 DSL 파일과 분리할 수 있습니다.', + '환경 변수는 민감한 정보와 자격 증명을 저장하는 데 사용됩니다. 읽기 전용이며 내보내기 시 DSL 파일과 분리됩니다.', envPanelButton: '변수 추가', modal: { title: '환경 변수 추가', editTitle: '환경 변수 편집', type: '유형', name: '이름', - namePlaceholder: '환경 이름', + namePlaceholder: '환경 변수 이름', value: '값', - valuePlaceholder: '환경 값', + valuePlaceholder: '환경 변수 값', secretTip: '민감한 정보나 데이터를 정의하는 데 사용되며, DSL 설정은 유출 방지를 위해 구성됩니다.', description: '설명', - descriptionPlaceholder: '변수에 대해 설명하세요', + descriptionPlaceholder: '변수에 대한 설명', }, export: { title: '비밀 환경 변수를 내보내시겠습니까?', @@ -154,21 +154,21 @@ const translation = { }, globalVar: { title: '시스템 변수', - description: '시스템 변수는 타입이 맞으면 배선 없이도 모든 노드에서 참조할 수 있는 전역 변수로, 엔드유저 ID와 워크플로 ID 등이 포함됩니다.', + description: '시스템 변수는 타입이 일치하면 연결 없이도 모든 노드에서 참조할 수 있는 전역 변수로, 최종 사용자 ID, 워크플로우 ID 등이 포함됩니다.', fieldsDescription: { conversationId: '대화 ID', dialogCount: '대화 수', userId: '사용자 ID', triggerTimestamp: '애플리케이션 시작 타임스탬프', appId: '애플리케이션 ID', - workflowId: '워크플로 ID', - workflowRunId: '워크플로 실행 ID', + workflowId: '워크플로우 ID', + workflowRunId: '워크플로우 실행 ID', }, }, chatVariable: { panelTitle: '대화 변수', panelDescription: - '대화 변수는 LLM 이 기억해야 할 대화 기록, 업로드된 파일, 사용자 선호도 등의 상호작용 정보를 저장하는 데 사용됩니다. 이들은 읽기 및 쓰기가 가능합니다.', + '대화 변수는 LLM이 기억해야 할 대화 기록, 업로드된 파일, 사용자 선호도 등의 상호작용 정보를 저장하는 데 사용됩니다. 읽기 및 쓰기가 가능합니다.', docLink: '자세한 내용은 문서를 참조하세요.', button: '변수 추가', modal: { @@ -178,10 +178,10 @@ const translation = { namePlaceholder: '변수 이름', type: '유형', value: '기본값', - valuePlaceholder: '기본값, 설정하지 않으려면 비워두세요', + valuePlaceholder: '기본값 (설정하지 않으려면 비워두세요)', description: '설명', - descriptionPlaceholder: '변수에 대해 설명하세요', - editInJSON: 'JSON 으로 편집', + descriptionPlaceholder: '변수에 대한 설명', + editInJSON: 'JSON으로 편집', oneByOne: '하나씩 추가', editInForm: '양식에서 편집', arrayValue: '값', @@ -195,48 +195,48 @@ const translation = { }, changeHistory: { title: '변경 기록', - placeholder: '아직 아무 것도 변경하지 않았습니다', + placeholder: '아직 변경 사항이 없습니다', clearHistory: '기록 지우기', hint: '힌트', hintText: '편집 작업이 변경 기록에 추적되며, 이 세션 동안 기기에 저장됩니다. 편집기를 떠나면 이 기록이 지워집니다.', - stepBackward_one: '{{count}} 단계 뒤로', - stepBackward_other: '{{count}} 단계 뒤로', - stepForward_one: '{{count}} 단계 앞으로', - stepForward_other: '{{count}} 단계 앞으로', + stepBackward_one: '{{count}}단계 뒤로', + stepBackward_other: '{{count}}단계 뒤로', + stepForward_one: '{{count}}단계 앞으로', + stepForward_other: '{{count}}단계 앞으로', sessionStart: '세션 시작', currentState: '현재 상태', - noteAdd: '노트 추가됨', - noteChange: '노트 변경됨', - noteDelete: '노트 삭제됨', - nodeConnect: '노드가 연결되었습니다.', + noteAdd: '메모 추가됨', + noteChange: '메모 변경됨', + noteDelete: '메모 삭제됨', + nodeConnect: '노드 연결됨', nodePaste: '노드 붙여넣기', - nodeDelete: '노드가 삭제되었습니다.', - nodeAdd: '노드가 추가되었습니다.', - nodeChange: '노드가 변경되었습니다.', - nodeDescriptionChange: '노드 설명이 변경됨', + nodeDelete: '노드 삭제됨', + nodeAdd: '노드 추가됨', + nodeChange: '노드 변경됨', + nodeDescriptionChange: '노드 설명 변경됨', nodeResize: '노드 크기 조정됨', - nodeDragStop: '노드가 이동했습니다.', - edgeDelete: '노드가 연결이 끊어졌습니다.', - nodeTitleChange: '노드 제목이 변경됨', + nodeDragStop: '노드 이동됨', + edgeDelete: '노드 연결 해제됨', + nodeTitleChange: '노드 제목 변경됨', }, errorMsg: { - fieldRequired: '{{field}}가 필요합니다', + fieldRequired: '{{field}}는 필수입니다', authRequired: '인증이 필요합니다', - invalidJson: '{{field}}는 잘못된 JSON 입니다', + invalidJson: '{{field}}는 유효하지 않은 JSON입니다', fields: { variable: '변수 이름', variableValue: '변수 값', code: '코드', model: '모델', - rerankModel: '재정렬 모델', + rerankModel: '재순위 모델', visionVariable: '비전 변수', }, invalidVariable: '잘못된 변수', rerankModelRequired: 'Rerank Model 을 켜기 전에 설정에서 모델이 성공적으로 구성되었는지 확인하십시오.', noValidTool: '{{field}} 유효한 도구가 선택되지 않았습니다.', - toolParameterRequired: '{{field}}: 매개변수 [{{param}}] 이 필요합니다.', + toolParameterRequired: '{{field}}: 매개변수 [{{param}}]이 필요합니다.', startNodeRequired: '{{operation}} 전에 먼저 시작 노드를 추가해 주세요', }, singleRun: { @@ -248,7 +248,7 @@ const translation = { iteration: '반복', loop: '루프', reRun: '다시 실행', - preparingDataSource: '데이터 소스 준비', + preparingDataSource: '데이터 소스 준비 중', }, tabs: { 'tools': '도구', @@ -264,30 +264,30 @@ const translation = { 'plugin': '플러그인', 'agent': '에이전트 전략', 'blocks': '노드', - 'searchBlock': '검색 노드', + 'searchBlock': '노드 검색', 'allAdded': '모두 추가됨', 'addAll': '모두 추가', 'sources': '소스', 'searchDataSource': '데이터 소스 검색', 'start': '시작', - 'searchTrigger': '검색 트리거...', + 'searchTrigger': '트리거 검색...', 'allTriggers': '모든 트리거', 'noPluginsFound': '플러그인을 찾을 수 없습니다', - 'requestToCommunity': '커뮤니티에 대한 요청', + 'requestToCommunity': '커뮤니티에 요청', 'featuredTools': '추천', 'showMoreFeatured': '더 보기', 'showLessFeatured': '간략히 보기', 'installed': '설치됨', - 'pluginByAuthor': '{{author}} 작성', + 'pluginByAuthor': '{{author}} 제작', 'usePlugin': '도구 선택', 'hideActions': '도구 숨기기', - 'noFeaturedPlugins': '마켓플레이스에서 더 많은 도구를 발견하세요', - 'noFeaturedTriggers': '마켓플레이스에서 더 많은 트리거 발견하기', - 'startDisabledTip': '트리거 노드와 사용자 입력 노드는 상호 배타적입니다.', + 'noFeaturedPlugins': '마켓플레이스에서 더 많은 도구를 찾아보세요', + 'noFeaturedTriggers': '마켓플레이스에서 더 많은 트리거를 찾아보세요', + 'startDisabledTip': '트리거 노드와 사용자 입력 노드는 동시에 사용할 수 없습니다.', }, blocks: { 'start': '시작', - 'end': '출력', + 'end': '종료', 'answer': '답변', 'llm': 'LLM', 'knowledge-retrieval': '지식 검색', @@ -302,34 +302,34 @@ const translation = { 'iteration-start': '반복 시작', 'iteration': '반복', 'parameter-extractor': '매개변수 추출기', - 'document-extractor': 'Doc 추출기', - 'list-operator': 'List 연산자', - 'agent': '대리인', + 'document-extractor': '문서 추출기', + 'list-operator': '리스트 연산자', + 'agent': '에이전트', 'loop-start': '루프 시작', 'loop-end': '루프 종료', 'loop': '루프', 'datasource': '데이터 소스', - 'knowledge-index': '기술 자료', + 'knowledge-index': '지식 베이스', 'originalStartNode': '원래 시작 노드', - 'trigger-schedule': '일정 트리거', + 'trigger-schedule': '스케줄 트리거', 'trigger-webhook': '웹훅 트리거', 'trigger-plugin': '플러그인 트리거', }, blocksAbout: { 'start': '워크플로우를 시작하기 위한 초기 매개변수를 정의합니다', - 'end': '워크플로의 출력 및 결과 유형을 정의합니다', + 'end': '워크플로우의 출력 및 결과 유형을 정의합니다', 'answer': '대화의 답변 내용을 정의합니다', - 'llm': '질문에 답하거나 자연어를 처리하기 위해 대형 언어 모델을 호출합니다', + 'llm': '질문에 답하거나 자연어를 처리하기 위해 대규모 언어 모델을 호출합니다', 'knowledge-retrieval': - '사용자 질문과 관련된 텍스트 콘텐츠를 지식 베이스에서 쿼리할 수 있습니다', + '사용자 질문과 관련된 텍스트 콘텐츠를 지식 베이스에서 쿼리합니다', 'question-classifier': - '사용자 질문의 분류 조건을 정의합니다. LLM 은 분류 설명을 기반으로 대화의 진행 방식을 정의할 수 있습니다', + '사용자 질문의 분류 조건을 정의합니다. LLM은 분류 설명을 기반으로 대화의 진행 방식을 결정합니다', 'if-else': - 'if/else 조건을 기반으로 워크플로우를 두 가지 분기로 나눌 수 있습니다', - 'code': '사용자 정의 논리를 구현하기 위해 Python 또는 NodeJS 코드를 실행합니다', + 'if/else 조건을 기반으로 워크플로우를 두 가지 분기로 나눕니다', + 'code': '사용자 정의 로직을 구현하기 위해 Python 또는 NodeJS 코드를 실행합니다', 'template-transform': 'Jinja 템플릿 구문을 사용하여 데이터를 문자열로 변환합니다', - 'http-request': 'HTTP 프로토콜을 통해 서버 요청을 보낼 수 있습니다', + 'http-request': 'HTTP 프로토콜을 통해 서버 요청을 보냅니다', 'variable-assigner': '다중 분기 변수들을 하나의 변수로 집계하여 다운스트림 노드의 통합 구성을 가능하게 합니다.', 'assigner': @@ -337,14 +337,14 @@ const translation = { 'variable-aggregator': '다중 분기 변수들을 하나의 변수로 집계하여 다운스트림 노드의 통합 구성을 가능하게 합니다.', 'iteration': - '목록 객체에서 여러 단계를 수행하여 모든 결과가 출력될 때까지 반복합니다.', + '리스트 객체에서 여러 단계를 수행하여 모든 결과가 출력될 때까지 반복합니다.', 'parameter-extractor': - '도구 호출 또는 HTTP 요청을 위해 자연어에서 구조화된 매개변수를 추출하기 위해 LLM 을 사용합니다.', + '도구 호출 또는 HTTP 요청을 위해 자연어에서 구조화된 매개변수를 추출하는 데 LLM을 사용합니다.', 'document-extractor': - '업로드된 문서를 LLM 에서 쉽게 이해할 수 있는 텍스트 콘텐츠로 구문 분석하는 데 사용됩니다.', + '업로드된 문서를 LLM이 이해할 수 있는 텍스트 콘텐츠로 파싱하는 데 사용됩니다.', 'list-operator': '배열 내용을 필터링하거나 정렬하는 데 사용됩니다.', 'agent': - '질문에 답하거나 자연어를 처리하기 위해 대규모 언어 모델을 호출하는 경우', + '질문에 답하거나 자연어를 처리하기 위해 대규모 언어 모델을 호출합니다', 'loop': '종료 조건이 충족되거나 최대 반복 횟수에 도달할 때까지 논리 루프를 실행합니다.', 'loop-end': '"break"와 동일합니다. 이 노드는 구성 항목이 없습니다. 루프 본문이 이 노드에 도달하면 루프가 종료됩니다.', @@ -453,7 +453,7 @@ const translation = { retryFailed: '재시도 실패', retryFailedTimes: '{{times}} 재시도 실패', times: '번', - ms: '미에스', + ms: 'ms', retries: '{{숫자}} 재시도', }, typeSwitch: { @@ -529,15 +529,15 @@ const translation = { saveSchema: '현재 필드의 편집을 완료한 후 스키마를 저장하세요.', }, generating: 'JSON 스키마 생성 중...', - apply: '지원하다', + apply: '적용', descriptionPlaceholder: '설명을 추가하세요.', - generate: '생성하다', + generate: '생성', generatedResult: '생성된 결과', addField: '필드 추가', addChildField: '자녀 필드 추가', generateJsonSchema: 'JSON 스키마 생성', fieldNamePlaceholder: '필드 이름', - back: '뒤', + back: '뒤로', instruction: '지침', resetDefaults: '재설정', promptTooltip: '텍스트 설명을 표준화된 JSON 스키마 구조로 변환하세요.', @@ -549,7 +549,7 @@ const translation = { '자연어를 사용하여 JSON 스키마를 신속하게 생성할 수 있습니다.', resultTip: '여기 생성된 결과가 있습니다. 만약 만족하지 않으신다면, 돌아가서 프롬프트를 수정할 수 있습니다.', - regenerate: '재생하다', + regenerate: '재생성', required: '필수', doc: '구조화된 출력에 대해 더 알아보세요.', import: 'JSON 에서 가져오기', @@ -645,7 +645,7 @@ const translation = { writeLabel: '쓰기 시간 초과', writePlaceholder: '초 단위로 쓰기 시간 초과 입력', }, - type: '형', + type: '타입', binaryFileVariable: '바이너리 파일 변수', extractListPlaceholder: '목록 항목 인덱스 입력, \'/\' 변수 삽입', curl: { @@ -714,7 +714,7 @@ const translation = { url: 'URL (영문)', doc: '문서', }, - select: '고르다', + select: '선택', addSubVariable: '하위 변수', }, variableAssigner: { @@ -901,7 +901,7 @@ const translation = { last_record: '마지막 레코드', first_record: '첫 번째 레코드', }, - asc: '증권 시세 표시기', + asc: '오름차순', filterConditionKey: '필터 조건 키', limit: '톱 N', filterConditionComparisonValue: '필터 조건 값', @@ -926,7 +926,7 @@ const translation = { '에이전트 전략을 구성한 후 이 노드는 나머지 구성을 자동으로 로드합니다. 이 전략은 다단계 도구 추론의 메커니즘에 영향을 미칩니다.', }, pluginInstaller: { - install: '설치하다', + install: '설치', installing: '설치', }, modelNotInMarketplace: { @@ -960,7 +960,7 @@ const translation = { }, installPlugin: { changelog: '변경 로그', - install: '설치하다', + install: '설치', desc: '다음 플러그인을 설치하려고 합니다.', cancel: '취소', title: '플러그인 설치', @@ -1244,8 +1244,8 @@ const translation = { }, variableInspect: { trigger: { - stop: '멈춰 뛰어', - clear: '맑은', + stop: '중지', + clear: '지우기', running: '캐싱 실행 상태', cached: '캐시된 변수를 보기', normal: '변수 검사', @@ -1263,7 +1263,7 @@ const translation = { reset: '마지막 실행 값으로 재설정', emptyTip: '캔버스에서 노드를 한 단계씩 실행한 후, 변수 검사에서 노드 변수의 현재 값을 볼 수 있습니다.', - export: '수출', + export: '내보내기', largeData: '대용량 데이터, 읽기 전용 미리 보기. 모두 보도록 내보내기.', exportToolTip: '변수를 파일로 내보내기', largeDataNoExport: '대용량 데이터 - 부분 미리 보기만', @@ -1339,7 +1339,7 @@ const translation = { escTip: { press: '누르다', key: '이스케이프', - toDismiss: '해고하다', + toDismiss: '닫기', }, }, }