forked from XiaoMo/ChatGPT-Next-Web
Merge pull request #1580 from Allengl/update
Add Korean translation 增加国际化语言:韩语
This commit is contained in:
commit
38bffd423c
@ -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)
|
- 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)
|
- 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
|
- 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
|
## Roadmap
|
||||||
|
|
||||||
|
@ -82,6 +82,7 @@ const cn = {
|
|||||||
vi: "Tiếng Việt",
|
vi: "Tiếng Việt",
|
||||||
ru: "Русский",
|
ru: "Русский",
|
||||||
cs: "Čeština",
|
cs: "Čeština",
|
||||||
|
ko: "한국어",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
Avatar: "头像",
|
Avatar: "头像",
|
||||||
|
@ -84,6 +84,7 @@ const cs: LocaleType = {
|
|||||||
vi: "Tiếng Việt",
|
vi: "Tiếng Việt",
|
||||||
ru: "Русский",
|
ru: "Русский",
|
||||||
cs: "Čeština",
|
cs: "Čeština",
|
||||||
|
ko: "한국어",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
Avatar: "Avatar",
|
Avatar: "Avatar",
|
||||||
|
@ -85,6 +85,7 @@ const de: LocaleType = {
|
|||||||
vi: "Tiếng Việt",
|
vi: "Tiếng Việt",
|
||||||
ru: "Русский",
|
ru: "Русский",
|
||||||
cs: "Čeština",
|
cs: "Čeština",
|
||||||
|
ko: "한국어",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
Avatar: "Avatar",
|
Avatar: "Avatar",
|
||||||
|
@ -84,6 +84,7 @@ const en: LocaleType = {
|
|||||||
vi: "Tiếng Việt",
|
vi: "Tiếng Việt",
|
||||||
ru: "Русский",
|
ru: "Русский",
|
||||||
cs: "Čeština",
|
cs: "Čeština",
|
||||||
|
ko: "한국어",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
Avatar: "Avatar",
|
Avatar: "Avatar",
|
||||||
|
@ -84,6 +84,7 @@ const es: LocaleType = {
|
|||||||
vi: "Tiếng Việt",
|
vi: "Tiếng Việt",
|
||||||
ru: "Русский",
|
ru: "Русский",
|
||||||
cs: "Čeština",
|
cs: "Čeština",
|
||||||
|
ko: "한국어"
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
Avatar: "Avatar",
|
Avatar: "Avatar",
|
||||||
|
@ -85,6 +85,7 @@ const fr: LocaleType = {
|
|||||||
vi: "Vietnamese",
|
vi: "Vietnamese",
|
||||||
ru: "Русский",
|
ru: "Русский",
|
||||||
cs: "Čeština",
|
cs: "Čeština",
|
||||||
|
ko: "한국어"
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -10,6 +10,7 @@ import DE from "./de";
|
|||||||
import VI from "./vi";
|
import VI from "./vi";
|
||||||
import RU from "./ru";
|
import RU from "./ru";
|
||||||
import CS from "./cs";
|
import CS from "./cs";
|
||||||
|
import KO from "./ko";
|
||||||
|
|
||||||
export type { LocaleType } from "./cn";
|
export type { LocaleType } from "./cn";
|
||||||
|
|
||||||
@ -26,6 +27,7 @@ export const AllLangs = [
|
|||||||
"vi",
|
"vi",
|
||||||
"ru",
|
"ru",
|
||||||
"cs",
|
"cs",
|
||||||
|
"ko",
|
||||||
] as const;
|
] as const;
|
||||||
export type Lang = (typeof AllLangs)[number];
|
export type Lang = (typeof AllLangs)[number];
|
||||||
|
|
||||||
@ -91,4 +93,5 @@ export default {
|
|||||||
vi: VI,
|
vi: VI,
|
||||||
ru: RU,
|
ru: RU,
|
||||||
cs: CS,
|
cs: CS,
|
||||||
|
ko: KO,
|
||||||
}[getLang()] as typeof CN;
|
}[getLang()] as typeof CN;
|
||||||
|
@ -84,6 +84,7 @@ const it: LocaleType = {
|
|||||||
vi: "Tiếng Việt",
|
vi: "Tiếng Việt",
|
||||||
ru: "Русский",
|
ru: "Русский",
|
||||||
cs: "Čeština",
|
cs: "Čeština",
|
||||||
|
ko: "한국어",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
Avatar: "Avatar",
|
Avatar: "Avatar",
|
||||||
|
@ -84,6 +84,7 @@ const jp: LocaleType = {
|
|||||||
vi: "Tiếng Việt",
|
vi: "Tiếng Việt",
|
||||||
ru: "Русский",
|
ru: "Русский",
|
||||||
cs: "Čeština",
|
cs: "Čeština",
|
||||||
|
ko: "한국어"
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
Avatar: "アバター",
|
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: LocaleType = {
|
||||||
|
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",
|
vi: "Tiếng Việt",
|
||||||
ru: "Русский",
|
ru: "Русский",
|
||||||
cs: "Čeština",
|
cs: "Čeština",
|
||||||
|
ko: "한국어",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
Avatar: "Аватар",
|
Avatar: "Аватар",
|
||||||
|
@ -84,6 +84,7 @@ const tr: LocaleType = {
|
|||||||
vi: "Tiếng Việt",
|
vi: "Tiếng Việt",
|
||||||
ru: "Русский",
|
ru: "Русский",
|
||||||
cs: "Čeština",
|
cs: "Čeština",
|
||||||
|
ko: "한국어",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
Avatar: "Avatar",
|
Avatar: "Avatar",
|
||||||
|
@ -82,6 +82,7 @@ const tw: LocaleType = {
|
|||||||
vi: "Tiếng Việt",
|
vi: "Tiếng Việt",
|
||||||
ru: "Русский",
|
ru: "Русский",
|
||||||
cs: "Čeština",
|
cs: "Čeština",
|
||||||
|
ko: "한국어",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
Avatar: "大頭貼",
|
Avatar: "大頭貼",
|
||||||
|
@ -84,6 +84,7 @@ const vi: LocaleType = {
|
|||||||
vi: "Tiếng Việt",
|
vi: "Tiếng Việt",
|
||||||
ru: "Русский",
|
ru: "Русский",
|
||||||
cs: "Čeština",
|
cs: "Čeština",
|
||||||
|
ko: "한국어",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
Avatar: "Ảnh đại diện",
|
Avatar: "Ảnh đại diện",
|
||||||
|
Loading…
Reference in New Issue
Block a user