Skip to content

Commit

Permalink
Merge pull request #83 from MinByeongDon/master
Browse files Browse the repository at this point in the history
feat(locales): add locale ko (Korean)
  • Loading branch information
LoicMahieu authored Oct 31, 2023
2 parents 895d10e + b76050f commit ae171f8
Show file tree
Hide file tree
Showing 3 changed files with 69 additions and 0 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ Locales implemented:
- `th`
- `ja`
- `zh-tw`
- `ko`

Please submit a PR with a new locale if you need it. In order to create a new locale, you could translate it automatically with `node scripts/create-locale` which will use google translate.

Expand Down
2 changes: 2 additions & 0 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import * as zh from './locales/zh';
import * as zhtw from './locales/zhtw';
import * as th from './locales/th';
import * as ja from './locales/ja';
import * as ko from './locales/ko';

export {
ar,
Expand All @@ -48,4 +49,5 @@ export {
th,
ja,
zhtw,
ko,
};
66 changes: 66 additions & 0 deletions src/locales/ko.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
import { printValue, LocaleObject } from 'yup';

export const mixed: LocaleObject['mixed'] = {
default: '항목이 올바르지 않습니다.',
required: '항목은 필수입니다.',
defined: '항목 값이 정의되어야 합니다.',
notNull: '항목은 null일수 없습니다.',
oneOf: '항목은 다음 값중 하나여야 합니다: ${values}',
notOneOf: '항목은 다음 값이 아니여야 합니다: ${values}',
notType: ({ path, type, value, originalValue }) => {
const castMsg =
originalValue != null && originalValue !== value
? ` (\`${printValue(originalValue, true)}\` 값에서 캐스팅).`
: '.';

return type !== 'mixed'
? `${path} 항목은 \`${type}\` 타입이 필요한데, ` +
`최종 값은: \`${printValue(value, true)}\`` +
castMsg
: `${path} 항목은 구성된 타입과 일치해야 합니다. ` +
`검증 값은: \`${printValue(value, true)}\`` +
castMsg;
},
};

export const string: LocaleObject['string'] = {
length: '${path} 항목은 ${length} 글자여야 합니다.',
min: '${path} 항목은 ${min} 글자이상이여야 합니다.',
max: '${path} 항목은 ${max} 글자이하여야 합니다.',
matches: '${path} 항목의 형식이 올바르지 않습니다: "${regex}"',
email: '${path} 항목은 이메일형식이여야 합니다.',
url: '${path} 항목은 URL형식이여야 합니다.',
uuid: '${path} 항목은 UUID형식이여야 합니다.',
trim: '${path} 항목은 압뒤공백이 없어야 합니다',
lowercase: '${path} 항목은 소문자여야 합니다.',
uppercase: '${path} 항목은 대문자여야 합니다.',
};

export const number: LocaleObject['number'] = {
min: '${path} 항목은 ${min} 이상이여야 합니다.',
max: '${path} 항목은 ${max} 이하여야 합니다.',
lessThan: '${path} 항목은 ${less} 미만이여야 합니다.',
moreThan: '${path} 항목은 ${more} 초과여야 합니다.',
positive: '${path} 항목은 양수여야 합니다.',
negative: '${path} 항목은 음수여야 합니다.',
integer: '${path} 항목은 정수여야 합니다.',
};

export const date: LocaleObject['date'] = {
min: '${path} 항목은 ${min} 이후여야 합니다.',
max: '${path} 항목은 ${max} 이전이여야 합니다.',
};

export const boolean: LocaleObject['boolean'] = {
isValue: '${path} 항목은 ${value}여야 합니다.',
};

export const object: LocaleObject['object'] = {
noUnknown: '${path} 항목에 지정되지 않은 키가 있습니다: ${unknown}',
};

export const array: LocaleObject['array'] = {
min: '${path} 항목의 아이템은 ${min}개 이상이여야 합니다.',
max: '${path} 항목의 아이템은 ${max}개 이하여야 합니다.',
length: '${path} 항목의 아이템은 ${length}개여야 합니다.',
};

0 comments on commit ae171f8

Please sign in to comment.