Skip to content

Commit a7bb6af

Browse files
moduvoiceCopilotcrimx
authored
i18n: add Korean (ko) translation (#2343)
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: CRIMX <straybugs@gmail.com>
1 parent 7b977ca commit a7bb6af

57 files changed

Lines changed: 1299 additions & 149 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.vscode/locales.schema.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,10 @@
2020
"properties": {
2121
"en": { "type": "string" },
2222
"zh-CN": { "type": "string" },
23-
"zh-TW": { "type": "string" }
23+
"zh-TW": { "type": "string" },
24+
"ko": { "type": "string" }
2425
},
25-
"required": ["en", "zh-CN", "zh-TW"],
26+
"required": ["en", "zh-CN", "zh-TW", "ko"],
2627
"additionalProperties": false
2728
},
2829
"locales": {

scripts/create-neutrino-config.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -322,7 +322,7 @@ module.exports = function createNeutrinoConfig({
322322
// remove locales
323323
neutrino.config
324324
.plugin('momentjs')
325-
.use(MomentLocalesPlugin, [{ localesToKeep: ['zh-cn', 'zh-tw'] }])
325+
.use(MomentLocalesPlugin, [{ localesToKeep: ['zh-cn', 'zh-tw', 'ko'] }])
326326
.end()
327327

328328
// prettier-ignore

src/_helpers/i18n.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import i18n, { TFunction } from 'i18next'
1212
import { getConfig, addConfigListener } from '@/_helpers/config-manager'
1313
import zip from 'lodash/zip'
1414

15-
export type LangCode = 'zh-CN' | 'zh-TW' | 'en'
15+
export type LangCode = 'zh-CN' | 'zh-TW' | 'ko' | 'en'
1616
export type Namespace =
1717
| 'common'
1818
| 'content'
@@ -27,6 +27,7 @@ export type Namespace =
2727
export interface RawLocale {
2828
'zh-CN': string
2929
'zh-TW': string
30+
ko: string
3031
en: string
3132
}
3233

@@ -88,7 +89,7 @@ export async function i18nLoader(): Promise<i18n.i18n> {
8889
.init({
8990
lng: langCode,
9091
fallbackLng: false,
91-
whitelist: ['en', 'zh-CN', 'zh-TW'],
92+
whitelist: ['en', 'zh-CN', 'zh-TW', 'ko'],
9293

9394
debug: process.env.NODE_ENV === 'development',
9495
saveMissing: false,

src/_locales/ko/background.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import { locale as _locale } from '../zh-CN/background'
2+
3+
export const locale: typeof _locale = {
4+
app: {
5+
off: 'Saladict가 비활성화되었습니다. (독립 실행 패널은 계속 사용 가능)',
6+
tempOff:
7+
'현재 탭에서 Saladict가 비활성화되었습니다. (독립 실행 패널은 계속 사용 가능)',
8+
unsupported:
9+
'현재 탭에서는 내장형 Saladict 패널을 사용할 수 없습니다. 독립 실행 패널을 이용해 주세요.'
10+
}
11+
}

src/_locales/ko/common.ts

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
import { locale as _locale } from '../zh-CN/common'
2+
3+
export const locale: typeof _locale = {
4+
add: '추가',
5+
delete: '삭제',
6+
save: '저장',
7+
cancel: '취소',
8+
9+
edit: '편집',
10+
sort: '정렬',
11+
rename: '이름 변경',
12+
13+
confirm: '확인',
14+
changes_confirm: '변경 사항이 저장되지 않았습니다. 그래도 닫으시겠습니까?',
15+
delete_confirm: '이 항목을 완전히 삭제하시겠습니까?',
16+
17+
max: '최대',
18+
min: '최소',
19+
20+
name: '이름',
21+
none: '없음',
22+
23+
enable: '사용',
24+
enabled: '사용 중',
25+
disabled: '사용 안 함',
26+
27+
blacklist: '차단 목록',
28+
whitelist: '허용 목록',
29+
30+
import: '가져오기',
31+
export: '내보내기',
32+
33+
lang: {
34+
chinese: '중국어',
35+
chs: '중국어',
36+
deutsch: '독일어',
37+
eng: '영어',
38+
english: '영어',
39+
french: '프랑스어',
40+
japanese: '일본어',
41+
korean: '한국어',
42+
matchAll: '모든 문자가 일치해야 함',
43+
minor: '기타 언어',
44+
others: '기타 문자',
45+
spanish: '스페인어'
46+
},
47+
48+
unit: {
49+
mins: '분',
50+
ms: 'ms',
51+
s: '초',
52+
word: '개'
53+
},
54+
55+
note: {
56+
word: '단어',
57+
trans: '번역',
58+
note: '메모',
59+
context: '문맥',
60+
contextCloze: '문맥 빈칸',
61+
date: '날짜',
62+
srcTitle: '출처 제목',
63+
srcLink: '출처 링크',
64+
srcFavicon: '출처 파비콘'
65+
},
66+
67+
profile: {
68+
daily: '일상 모드',
69+
sentence: '문장 모드',
70+
default: '기본 모드',
71+
scholar: '학술 모드',
72+
translation: '번역 모드',
73+
nihongo: '일본어 모드'
74+
}
75+
}

src/_locales/ko/content.ts

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
import { locale as _locale } from '../zh-CN/content'
2+
3+
export const locale: typeof _locale = {
4+
chooseLang: '다른 언어 선택',
5+
standalone: 'Saladict 독립 실행 패널',
6+
fetchLangList: '전체 언어 목록 가져오기',
7+
transContext: '문맥 다시 번역',
8+
neverShow: '다시 표시 안 함',
9+
fromSaladict: 'Saladict 패널에서 전달됨',
10+
tip: {
11+
historyBack: '이전 검색 기록',
12+
historyNext: '다음 검색 기록',
13+
searchText: '텍스트 검색',
14+
openOptions: '설정 열기',
15+
addToNotebook: '단어장에 추가 (마우스 오른쪽 클릭으로 단어장 열기)',
16+
openNotebook: '단어장 열기',
17+
openHistory: '기록 열기',
18+
shareImg: '이미지로 공유',
19+
pinPanel: '패널 고정',
20+
closePanel: '패널 닫기',
21+
sidebar: '사이드바 모드로 전환 (마우스 오른쪽 클릭 시 오른쪽에 고정)',
22+
focusPanel: '검색 시 패널이 포커스를 가져옴',
23+
unfocusPanel: '검색 시 패널이 포커스를 가져오지 않음'
24+
},
25+
wordEditor: {
26+
title: '단어장에 추가',
27+
wordCardsTitle: '단어장의 다른 검색 결과',
28+
deleteConfirm: '단어장에서 삭제하시겠습니까?',
29+
closeConfirm: '변경 사항이 저장되지 않습니다. 그래도 닫으시겠습니까?',
30+
chooseCtxTitle: '번역된 결과 선택',
31+
ctxHelp:
32+
'Saladict가 번역문 선택과 Anki 표 생성을 자동으로 처리하게 하려면 [:: xxx ::] 및 --------------- 형식을 그대로 유지하세요.'
33+
},
34+
machineTrans: {
35+
switch: '언어 전환',
36+
sl: '원문 언어',
37+
tl: '번역 언어',
38+
auto: '언어 자동 감지',
39+
stext: '원문',
40+
showSl: '원문 표시',
41+
copySrc: '원문 복사',
42+
copyTrans: '번역문 복사',
43+
credential: {
44+
missing: '{access token}을(를) 입력해 주세요.',
45+
invalid:
46+
'액세스 토큰이 유효하지 않습니다. {access token}을(를) 확인하세요.',
47+
quota:
48+
'액세스 토큰의 할당량을 초과했습니다. {access token}을(를) 확인하세요.'
49+
},
50+
login: '{access token}을(를) 입력해 주세요.',
51+
dictAccount: '액세스 토큰'
52+
},
53+
manualVerification: {
54+
title: '수동 인증이 필요합니다',
55+
message:
56+
'원본 사전 페이지를 열어 사람인지 확인하는 절차를 완료한 후, Saladict에서 다시 검색해 주세요.',
57+
openPage: '사전 페이지 열기'
58+
},
59+
updateAnki: {
60+
title: 'Anki로 업데이트',
61+
success: 'Anki로 단어를 성공적으로 업데이트했습니다.',
62+
failed: 'Anki로 단어를 업데이트하지 못했습니다.'
63+
}
64+
}

src/_locales/ko/langcode.ts

Lines changed: 147 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,147 @@
1+
import { locale as _locale } from '../zh-CN/langcode'
2+
3+
export const locale: typeof _locale = {
4+
af: '아프리칸스어',
5+
am: '암하라어',
6+
ar: '아랍어',
7+
auto: '언어 자동 감지',
8+
az: '아제르바이잔어',
9+
be: '벨라루스어',
10+
bg: '불가리아어',
11+
bn: '벵골어',
12+
bs: '보스니아어',
13+
ca: '카탈루냐어',
14+
ceb: '세부아노어',
15+
co: '코르시카어',
16+
cs: '체코어',
17+
cy: '웨일스어',
18+
da: '덴마크어',
19+
de: '독일어',
20+
el: '그리스어',
21+
en: '영어',
22+
eo: '에스페란토어',
23+
es: '스페인어',
24+
et: '에스토니아어',
25+
eu: '바스크어',
26+
fa: '페르시아어',
27+
fi: '핀란드어',
28+
fil: '필리핀어',
29+
fj: '피지어',
30+
fr: '프랑스어',
31+
fy: '프리지아어',
32+
ga: '아일랜드어',
33+
gd: '스코틀랜드 게일어',
34+
gl: '갈리시아어',
35+
gu: '구자라트어',
36+
ha: '하우사어',
37+
haw: '하와이어',
38+
he: '히브리어',
39+
hi: '힌디어',
40+
hmn: '몽어',
41+
hr: '크로아티아어',
42+
ht: '아이티 크레올어',
43+
hu: '헝가리어',
44+
hy: '아르메니아어',
45+
id: '인도네시아어',
46+
ig: '이보어',
47+
is: '아이슬란드어',
48+
it: '이탈리아어',
49+
ja: '일본어',
50+
jw: '자바어',
51+
ka: '조지아어',
52+
kk: '카자흐어',
53+
km: '크메르어',
54+
kn: '칸나다어',
55+
ko: '한국어',
56+
ku: '쿠르드어(쿠르만지)',
57+
ky: '키르기스어',
58+
la: '라틴어',
59+
lb: '룩셈부르크어',
60+
lo: '라오어',
61+
lt: '리투아니아어',
62+
lv: '라트비아어',
63+
mg: '말라가시어',
64+
mi: '마오리어',
65+
mk: '마케도니아어',
66+
ml: '말라얄람어',
67+
mn: '몽골어',
68+
mr: '마라티어',
69+
ms: '말레이어',
70+
mt: '몰타어',
71+
mww: '몽족어(백묘문)',
72+
my: '미얀마어(버마어)',
73+
ne: '네팔어',
74+
nl: '네덜란드어',
75+
no: '노르웨이어',
76+
ny: '니안자어(치체와어)',
77+
otq: '오토미어(케레타로)',
78+
pa: '펀자브어',
79+
pl: '폴란드어',
80+
ps: '파슈토어',
81+
pt: '포르투갈어(포르투갈, 브라질)',
82+
ro: '루마니아어',
83+
ru: '러시아어',
84+
sd: '신드어',
85+
si: '신할라어',
86+
sk: '슬로바키아어',
87+
sl: '슬로베니아어',
88+
sm: '사모아어',
89+
sn: '쇼나어',
90+
so: '소말리어',
91+
sq: '알바니아어',
92+
sr: '세르비아어',
93+
'sr-Cyrl': '세르비아어(키릴 문자)',
94+
'sr-Latn': '세르비아어(라틴 문자)',
95+
st: '세소토어',
96+
su: '순다어',
97+
sv: '스웨덴어',
98+
sw: '스와힐리어',
99+
ta: '타밀어',
100+
te: '텔루구어',
101+
tg: '타지크어',
102+
th: '태국어',
103+
tlh: '클링온어',
104+
'tlh-Qaak': '클링온어(피카드 문자)',
105+
to: '통가어',
106+
tr: '터키어',
107+
ty: '타히티어',
108+
ug: '위구르어',
109+
uk: '우크라이나어',
110+
ur: '우르두어',
111+
uz: '우즈베크어',
112+
vi: '베트남어',
113+
wyw: '문언문(고전 중국어)',
114+
xh: '코사어',
115+
yi: '이디시어',
116+
yo: '요루바어',
117+
yua: '유카탄 마야어',
118+
yue: '광둥어(번체)',
119+
'zh-CN': '중국어(간체)',
120+
'zh-TW': '중국어(번체)',
121+
zu: '줄루어',
122+
123+
default: '확장 프로그램 언어 따르기',
124+
ne_NP: '네팔어',
125+
ara: '아랍어',
126+
'bs-Latn': '보스니아어',
127+
bul: '불가리아어',
128+
cht: '중국어(번체)',
129+
dan: '덴마크어',
130+
est: '에스토니아어',
131+
fin: '핀란드어',
132+
fra: '프랑스어',
133+
iw: '히브리어',
134+
jp: '일본어',
135+
kor: '한국어',
136+
kr: '한국어',
137+
pt_BR: '브라질 포르투갈어',
138+
rom: '루마니아어',
139+
slo: '슬로베니아어',
140+
spa: '스페인어',
141+
swe: '스웨덴어',
142+
tl: '타갈로그어(필리핀어)',
143+
vie: '베트남어',
144+
zh: '중국어(간체)',
145+
'zh-CHS': '중국어(간체)',
146+
'zh-CHT': '중국어(번체)'
147+
}

src/_locales/ko/menus.ts

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
import { locale as _locale } from '../zh-CN/menus'
2+
3+
export const locale: typeof _locale = {
4+
baidu_search: '바이두 검색',
5+
bing_dict: 'Bing 사전',
6+
bing_search: 'Bing 검색',
7+
cambridge: '케임브리지 사전',
8+
copy_pdf_url: 'PDF 주소를 클립보드에 복사',
9+
dictcn: 'Dictcn',
10+
etymonline: 'Etymonline',
11+
google_search: 'Google 검색',
12+
google_translate: 'Google 번역',
13+
google_cn_translate: 'Google.cn 번역',
14+
guoyu: '國語辭典',
15+
history_title: '검색 기록',
16+
iciba: 'iciba',
17+
liangan: '兩岸詞典',
18+
longman_business: 'Longman 비즈니스',
19+
manual_title: '설명서',
20+
merriam_webster: 'Merriam-Webster',
21+
notebook_title: '새 단어 목록',
22+
oxford: 'Oxford',
23+
saladict: 'Saladict',
24+
saladict_standalone: 'Saladict 독립 실행 패널',
25+
termonline: 'Termonline',
26+
view_as_pdf: 'PDF 뷰어로 열기',
27+
youdao: '유다오(有道)',
28+
youglish: 'YouGlish'
29+
}

0 commit comments

Comments
 (0)