mirror of
				https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web.git
				synced 2025-11-04 16:23:41 +08:00 
			
		
		
		
	Add Korean translation
This commit is contained in:
		@@ -31,7 +31,7 @@ One-Click to deploy well-designed ChatGPT web UI on Vercel.
 | 
			
		||||
- New in v2: create, share and debug your chat tools with prompt templates (mask)
 | 
			
		||||
- Awesome prompts powered by [awesome-chatgpt-prompts-zh](https://github.com/PlexPt/awesome-chatgpt-prompts-zh) and [awesome-chatgpt-prompts](https://github.com/f/awesome-chatgpt-prompts)
 | 
			
		||||
- Automatically compresses chat history to support long conversations while also saving your tokens
 | 
			
		||||
- I18n: English, 简体中文, 繁体中文, 日本語, Français, Español, Italiano, Türkçe, Deutsch, Tiếng Việt, Русский, Čeština
 | 
			
		||||
- I18n: English, 简体中文, 繁体中文, 日本語, Français, Español, Italiano, Türkçe, Deutsch, Tiếng Việt, Русский, Čeština, 한국어
 | 
			
		||||
 | 
			
		||||
## Roadmap
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -82,6 +82,7 @@ const cn = {
 | 
			
		||||
        vi: "Tiếng Việt",
 | 
			
		||||
        ru: "Русский",
 | 
			
		||||
        cs: "Čeština",
 | 
			
		||||
        ko: "한국어",
 | 
			
		||||
      },
 | 
			
		||||
    },
 | 
			
		||||
    Avatar: "头像",
 | 
			
		||||
 
 | 
			
		||||
@@ -84,6 +84,7 @@ const cs: LocaleType = {
 | 
			
		||||
        vi: "Tiếng Việt",
 | 
			
		||||
        ru: "Русский",
 | 
			
		||||
        cs: "Čeština",
 | 
			
		||||
        ko: "한국어",
 | 
			
		||||
      },
 | 
			
		||||
    },
 | 
			
		||||
    Avatar: "Avatar",
 | 
			
		||||
 
 | 
			
		||||
@@ -85,6 +85,7 @@ const de: LocaleType = {
 | 
			
		||||
        vi: "Tiếng Việt",
 | 
			
		||||
        ru: "Русский",
 | 
			
		||||
        cs: "Čeština",
 | 
			
		||||
        ko: "한국어",
 | 
			
		||||
      },
 | 
			
		||||
    },
 | 
			
		||||
    Avatar: "Avatar",
 | 
			
		||||
 
 | 
			
		||||
@@ -84,6 +84,7 @@ const en: LocaleType = {
 | 
			
		||||
        vi: "Tiếng Việt",
 | 
			
		||||
        ru: "Русский",
 | 
			
		||||
        cs: "Čeština",
 | 
			
		||||
        ko: "한국어",
 | 
			
		||||
      },
 | 
			
		||||
    },
 | 
			
		||||
    Avatar: "Avatar",
 | 
			
		||||
 
 | 
			
		||||
@@ -84,6 +84,7 @@ const es: LocaleType = {
 | 
			
		||||
        vi: "Tiếng Việt",
 | 
			
		||||
        ru: "Русский",
 | 
			
		||||
        cs: "Čeština",
 | 
			
		||||
        ko: "한국어"
 | 
			
		||||
      },
 | 
			
		||||
    },
 | 
			
		||||
    Avatar: "Avatar",
 | 
			
		||||
 
 | 
			
		||||
@@ -85,6 +85,7 @@ const fr: LocaleType = {
 | 
			
		||||
        vi: "Vietnamese",
 | 
			
		||||
        ru: "Русский",
 | 
			
		||||
        cs: "Čeština",
 | 
			
		||||
        ko: "한국어"
 | 
			
		||||
      },
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -10,6 +10,7 @@ import DE from "./de";
 | 
			
		||||
import VI from "./vi";
 | 
			
		||||
import RU from "./ru";
 | 
			
		||||
import CS from "./cs";
 | 
			
		||||
import KO from "./ko";
 | 
			
		||||
 | 
			
		||||
export type { LocaleType } from "./cn";
 | 
			
		||||
 | 
			
		||||
@@ -26,6 +27,7 @@ export const AllLangs = [
 | 
			
		||||
  "vi",
 | 
			
		||||
  "ru",
 | 
			
		||||
  "cs",
 | 
			
		||||
  "ko",
 | 
			
		||||
] as const;
 | 
			
		||||
export type Lang = (typeof AllLangs)[number];
 | 
			
		||||
 | 
			
		||||
@@ -91,4 +93,5 @@ export default {
 | 
			
		||||
  vi: VI,
 | 
			
		||||
  ru: RU,
 | 
			
		||||
  cs: CS,
 | 
			
		||||
  ko: KO,
 | 
			
		||||
}[getLang()] as typeof CN;
 | 
			
		||||
 
 | 
			
		||||
@@ -84,6 +84,7 @@ const it: LocaleType = {
 | 
			
		||||
        vi: "Tiếng Việt",
 | 
			
		||||
        ru: "Русский",
 | 
			
		||||
        cs: "Čeština",
 | 
			
		||||
        ko: "한국어",
 | 
			
		||||
      },
 | 
			
		||||
    },
 | 
			
		||||
    Avatar: "Avatar",
 | 
			
		||||
 
 | 
			
		||||
@@ -84,6 +84,7 @@ const jp: LocaleType = {
 | 
			
		||||
        vi: "Tiếng Việt",
 | 
			
		||||
        ru: "Русский",
 | 
			
		||||
        cs: "Čeština",
 | 
			
		||||
        ko: "한국어"
 | 
			
		||||
      },
 | 
			
		||||
    },
 | 
			
		||||
    Avatar: "アバター",
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										247
									
								
								app/locales/ko.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										247
									
								
								app/locales/ko.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,247 @@
 | 
			
		||||
import { SubmitKey } from "../store/config";
 | 
			
		||||
 | 
			
		||||
import type { LocaleType } from "./index";
 | 
			
		||||
 | 
			
		||||
const ko = {
 | 
			
		||||
  WIP: "곧 출시 예정...",
 | 
			
		||||
  Error: {
 | 
			
		||||
    Unauthorized: "권한이 없습니다. 설정 페이지에서 액세스 코드를 입력하세요.",
 | 
			
		||||
  },
 | 
			
		||||
  ChatItem: {
 | 
			
		||||
    ChatItemCount: (count: number) => `${count}개의 메시지`,
 | 
			
		||||
  },
 | 
			
		||||
  Chat: {
 | 
			
		||||
    SubTitle: (count: number) => `ChatGPT와의 ${count}개의 메시지`,
 | 
			
		||||
    Actions: {
 | 
			
		||||
      ChatList: "채팅 목록으로 이동",
 | 
			
		||||
      CompressedHistory: "압축된 기억력 메모리 프롬프트",
 | 
			
		||||
      Export: "모든 메시지를 Markdown으로 내보내기",
 | 
			
		||||
      Copy: "복사",
 | 
			
		||||
      Stop: "중지",
 | 
			
		||||
      Retry: "다시 시도",
 | 
			
		||||
      Delete: "삭제",
 | 
			
		||||
    },
 | 
			
		||||
    Rename: "채팅 이름 변경",
 | 
			
		||||
    Typing: "입력 중...",
 | 
			
		||||
    Input: (submitKey: string) => {
 | 
			
		||||
      var inputHints = `${submitKey}를 눌러 보내기`;
 | 
			
		||||
      if (submitKey === String(SubmitKey.Enter)) {
 | 
			
		||||
        inputHints += ", Shift + Enter로 줄 바꿈";
 | 
			
		||||
      }
 | 
			
		||||
      return inputHints + ", 프롬프트 검색을 위해 / 입력";
 | 
			
		||||
    },
 | 
			
		||||
    Send: "보내기",
 | 
			
		||||
    Config: {
 | 
			
		||||
      Reset: "기본값으로 재설정",
 | 
			
		||||
      SaveAs: "마스크로 저장",
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
  Export: {
 | 
			
		||||
    Title: "모든 메시지",
 | 
			
		||||
    Copy: "모두 복사",
 | 
			
		||||
    Download: "다운로드",
 | 
			
		||||
    MessageFromYou: "나의 메시지",
 | 
			
		||||
    MessageFromChatGPT: "ChatGPT의 메시지",
 | 
			
		||||
  },
 | 
			
		||||
  Memory: {
 | 
			
		||||
    Title: "기억 프롬프트",
 | 
			
		||||
    EmptyContent: "아직 내용이 없습니다.",
 | 
			
		||||
    Send: "기억 보내기",
 | 
			
		||||
    Copy: "기억 복사",
 | 
			
		||||
    Reset: "세션 재설정",
 | 
			
		||||
    ResetConfirm:
 | 
			
		||||
      "재설정하면 현재 대화 기록과 기억력이 삭제됩니다. 정말 재설정하시겠습니까?",
 | 
			
		||||
  },
 | 
			
		||||
  Home: {
 | 
			
		||||
    NewChat: "새로운 채팅",
 | 
			
		||||
    DeleteChat: "선택한 대화를 삭제하시겠습니까?",
 | 
			
		||||
    DeleteToast: "채팅이 삭제되었습니다.",
 | 
			
		||||
    Revert: "되돌리기",
 | 
			
		||||
  },
 | 
			
		||||
  Settings: {
 | 
			
		||||
    Title: "설정",
 | 
			
		||||
    SubTitle: "모든 설정",
 | 
			
		||||
    Actions: {
 | 
			
		||||
      ClearAll: "모든 데이터 지우기",
 | 
			
		||||
      ResetAll: "모든 설정 초기화",
 | 
			
		||||
      Close: "닫기",
 | 
			
		||||
      ConfirmResetAll: "모든 설정을 초기화하시겠습니까?",
 | 
			
		||||
      ConfirmClearAll: "모든 데이터를 지우시겠습니까?",
 | 
			
		||||
    },
 | 
			
		||||
    Lang: {
 | 
			
		||||
      Name: "Language", // ATTENTION: if you wanna add a new translation, please do not translate this value, leave it as `Language`
 | 
			
		||||
      All: "All Languages",
 | 
			
		||||
      Options: {
 | 
			
		||||
        cn: "简体中文",
 | 
			
		||||
        en: "English",
 | 
			
		||||
        tw: "繁體中文",
 | 
			
		||||
        fr: "Français",
 | 
			
		||||
        es: "Español",
 | 
			
		||||
        it: "Italiano",
 | 
			
		||||
        tr: "Türkçe",
 | 
			
		||||
        jp: "日本語",
 | 
			
		||||
        de: "Deutsch",
 | 
			
		||||
        vi: "Tiếng Việt",
 | 
			
		||||
        ru: "Русский",
 | 
			
		||||
        cs: "Čeština",
 | 
			
		||||
        ko: "한국어",
 | 
			
		||||
      },
 | 
			
		||||
    },
 | 
			
		||||
    Avatar: "아바타",
 | 
			
		||||
    FontSize: {
 | 
			
		||||
    Title: "글꼴 크기",
 | 
			
		||||
    SubTitle: "채팅 내용의 글꼴 크기 조정",
 | 
			
		||||
  },
 | 
			
		||||
    Update: {
 | 
			
		||||
      Version: (x: string) => `버전: ${x}`,
 | 
			
		||||
      IsLatest: "최신 버전",
 | 
			
		||||
      CheckUpdate: "업데이트 확인",
 | 
			
		||||
      IsChecking: "업데이트 확인 중...",
 | 
			
		||||
      FoundUpdate: (x: string) => `새 버전 발견: ${x}`,
 | 
			
		||||
      GoToUpdate: "업데이트",
 | 
			
		||||
    },
 | 
			
		||||
    SendKey: "전송 키",
 | 
			
		||||
    Theme: "테마",
 | 
			
		||||
    TightBorder: "조밀한 테두리",
 | 
			
		||||
    SendPreviewBubble: {
 | 
			
		||||
      Title: "미리 보기 버블 전송",
 | 
			
		||||
      SubTitle: "버블에서 마크다운 미리 보기",
 | 
			
		||||
    },
 | 
			
		||||
    Mask: {
 | 
			
		||||
      Title: "마스크 시작 화면",
 | 
			
		||||
      SubTitle: "새로운 채팅 시작 전에 마스크 시작 화면 표시",
 | 
			
		||||
    },
 | 
			
		||||
    Prompt: {
 | 
			
		||||
      Disable: {
 | 
			
		||||
        Title: "자동 완성 비활성화",
 | 
			
		||||
        SubTitle: "자동 완성을 활성화하려면 /를 입력하세요.",
 | 
			
		||||
      },
 | 
			
		||||
      List: "프롬프트 목록",
 | 
			
		||||
      ListCount: (builtin: number, custom: number) =>
 | 
			
		||||
        `내장 ${builtin}개, 사용자 정의 ${custom}개`,
 | 
			
		||||
      Edit: "편집",
 | 
			
		||||
      Modal: {
 | 
			
		||||
        Title: "프롬프트 목록",
 | 
			
		||||
        Add: "추가",
 | 
			
		||||
        Search: "프롬프트 검색",
 | 
			
		||||
      },
 | 
			
		||||
      EditModal: {
 | 
			
		||||
        Title: "프롬프트 편집",
 | 
			
		||||
      },
 | 
			
		||||
    },
 | 
			
		||||
    HistoryCount: {
 | 
			
		||||
      Title: "첨부된 메시지 수",
 | 
			
		||||
      SubTitle: "요청당 첨부된 전송된 메시지 수",
 | 
			
		||||
    },
 | 
			
		||||
    CompressThreshold: {
 | 
			
		||||
      Title: "기록 압축 임계값",
 | 
			
		||||
      SubTitle:
 | 
			
		||||
        "미압축 메시지 길이가 임계값을 초과하면 압축됨",
 | 
			
		||||
    },
 | 
			
		||||
    Token: {
 | 
			
		||||
      Title: "API 키",
 | 
			
		||||
      SubTitle: "액세스 코드 제한을 무시하기 위해 키 사용",
 | 
			
		||||
      Placeholder: "OpenAI API 키",
 | 
			
		||||
    },
 | 
			
		||||
    Usage: {
 | 
			
		||||
      Title: "계정 잔액",
 | 
			
		||||
      SubTitle(used: any, total: any) {
 | 
			
		||||
        return `이번 달 사용액 ${used}, 구독액 ${total}`;
 | 
			
		||||
      },
 | 
			
		||||
      IsChecking: "확인 중...",
 | 
			
		||||
      Check: "확인",
 | 
			
		||||
      NoAccess: "잔액 확인을 위해 API 키를 입력하세요.",
 | 
			
		||||
    },
 | 
			
		||||
    AccessCode: {
 | 
			
		||||
      Title: "액세스 코드",
 | 
			
		||||
      SubTitle: "액세스 제어가 활성화됨",
 | 
			
		||||
      Placeholder: "액세스 코드 입력",
 | 
			
		||||
    },
 | 
			
		||||
    Model: "모델",
 | 
			
		||||
    Temperature: {
 | 
			
		||||
      Title: "온도 (temperature)",
 | 
			
		||||
      SubTitle: "값이 클수록 더 무작위한 출력이 생성됩니다.",
 | 
			
		||||
    },
 | 
			
		||||
    MaxTokens: {
 | 
			
		||||
      Title: "최대 토큰 수 (max_tokens)",
 | 
			
		||||
      SubTitle: "입력 토큰과 생성된 토큰의 최대 길이",
 | 
			
		||||
    },  
 | 
			
		||||
    PresencePenalty: {
 | 
			
		||||
      Title: "존재 페널티 (presence_penalty)",
 | 
			
		||||
      SubTitle:
 | 
			
		||||
        "값이 클수록 새로운 주제에 대해 대화할 가능성이 높아집니다.",
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
  Store: {
 | 
			
		||||
    DefaultTopic: "새 대화",
 | 
			
		||||
    BotHello: "안녕하세요! 오늘 도움이 필요하신가요?",
 | 
			
		||||
    Error: "문제가 발생했습니다. 나중에 다시 시도해주세요.",
 | 
			
		||||
    Prompt: {
 | 
			
		||||
      History: (content: string) =>
 | 
			
		||||
        "이것은 AI와 사용자 간의 대화 기록을 요약한 내용입니다: " +
 | 
			
		||||
        content,
 | 
			
		||||
      Topic:
 | 
			
		||||
        "다음과 같이 대화 내용을 요약하는 4~5단어 제목을 생성해주세요. 따옴표, 구두점, 인용부호, 기호 또는 추가 텍스트를 제거하십시오. 따옴표로 감싸진 부분을 제거하십시오.",
 | 
			
		||||
      Summarize:
 | 
			
		||||
        "200단어 이내로 저희 토론을 간략히 요약하여 앞으로의 맥락으로 사용할 수 있는 프롬프트로 만들어주세요.",
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
  Copy: {
 | 
			
		||||
    Success: "클립보드에 복사되었습니다.",
 | 
			
		||||
    Failed: "복사 실패, 클립보드 접근 권한을 허용해주세요.",
 | 
			
		||||
  },
 | 
			
		||||
  Context: {
 | 
			
		||||
    Toast: (x: any) => `컨텍스트 프롬프트 ${x}개 사용`,
 | 
			
		||||
    Edit: "컨텍스트 및 메모리 프롬프트",
 | 
			
		||||
    Add: "프롬프트 추가",
 | 
			
		||||
  },
 | 
			
		||||
  Plugin: {
 | 
			
		||||
    Name: "플러그인",
 | 
			
		||||
  },
 | 
			
		||||
  Mask: {
 | 
			
		||||
    Name: "마스크",
 | 
			
		||||
    Page: {
 | 
			
		||||
      Title: "프롬프트 템플릿",
 | 
			
		||||
      SubTitle: (count: number) => `${count}개의 프롬프트 템플릿`,
 | 
			
		||||
      Search: "템플릿 검색",
 | 
			
		||||
      Create: "생성",
 | 
			
		||||
    },
 | 
			
		||||
    Item: {
 | 
			
		||||
      Info: (count: number) => `${count}개의 프롬프롬프트`,
 | 
			
		||||
      Chat: "채팅",
 | 
			
		||||
      View: "보기",
 | 
			
		||||
      Edit: "편집",
 | 
			
		||||
      Delete: "삭제",
 | 
			
		||||
      DeleteConfirm: "삭제하시겠습니까?",
 | 
			
		||||
    },
 | 
			
		||||
    EditModal: {
 | 
			
		||||
      Title: (readonly: boolean) =>
 | 
			
		||||
        `프롬프트 템플릿 편집 ${readonly ? "(읽기 전용)" : ""}`,
 | 
			
		||||
      Download: "다운로드",
 | 
			
		||||
      Clone: "복제",
 | 
			
		||||
    },
 | 
			
		||||
    Config: {
 | 
			
		||||
      Avatar: "봇 아바타",
 | 
			
		||||
      Name: "봇 이름",
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
  NewChat: {
 | 
			
		||||
    Return: "돌아가기",
 | 
			
		||||
    Skip: "건너뛰기",
 | 
			
		||||
    Title: "마스크 선택",
 | 
			
		||||
    SubTitle: "마스크 뒤의 영혼과 대화하세요",
 | 
			
		||||
    More: "더 보기",
 | 
			
		||||
    NotShow: "다시 표시하지 않음",
 | 
			
		||||
    ConfirmNoShow: "비활성화하시겠습니까? 나중에 설정에서 다시 활성화할 수 있습니다.",
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  UI: {
 | 
			
		||||
    Confirm: "확인",
 | 
			
		||||
    Cancel: "취소",
 | 
			
		||||
    Close: "닫기",
 | 
			
		||||
    Create: "생성",
 | 
			
		||||
    Edit: "편집",
 | 
			
		||||
  },
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
export default ko;
 | 
			
		||||
@@ -84,6 +84,7 @@ const ru: LocaleType = {
 | 
			
		||||
        vi: "Tiếng Việt",
 | 
			
		||||
        ru: "Русский",
 | 
			
		||||
        cs: "Čeština",
 | 
			
		||||
        ko: "한국어",
 | 
			
		||||
      },
 | 
			
		||||
    },
 | 
			
		||||
    Avatar: "Аватар",
 | 
			
		||||
 
 | 
			
		||||
@@ -84,6 +84,7 @@ const tr: LocaleType = {
 | 
			
		||||
        vi: "Tiếng Việt",
 | 
			
		||||
        ru: "Русский",
 | 
			
		||||
        cs: "Čeština",
 | 
			
		||||
        ko: "한국어",
 | 
			
		||||
      },
 | 
			
		||||
    },
 | 
			
		||||
    Avatar: "Avatar",
 | 
			
		||||
 
 | 
			
		||||
@@ -82,6 +82,7 @@ const tw: LocaleType = {
 | 
			
		||||
        vi: "Tiếng Việt",
 | 
			
		||||
        ru: "Русский",
 | 
			
		||||
        cs: "Čeština",
 | 
			
		||||
        ko: "한국어",
 | 
			
		||||
      },
 | 
			
		||||
    },
 | 
			
		||||
    Avatar: "大頭貼",
 | 
			
		||||
 
 | 
			
		||||
@@ -84,6 +84,7 @@ const vi: LocaleType = {
 | 
			
		||||
        vi: "Tiếng Việt",
 | 
			
		||||
        ru: "Русский",
 | 
			
		||||
        cs: "Čeština",
 | 
			
		||||
        ko: "한국어",
 | 
			
		||||
      },
 | 
			
		||||
    },
 | 
			
		||||
    Avatar: "Ảnh đại diện",
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user