################################################################################
##
##  Licensed to the Apache Software Foundation (ASF) under one or more
##  contributor license agreements.  See the NOTICE file distributed with
##  this work for additional information regarding copyright ownership.
##  The ASF licenses this file to You under the Apache License, Version 2.0
##  (the "License"); you may not use this file except in compliance with
##  the License.  You may obtain a copy of the License at
##
##      http://www.apache.org/licenses/LICENSE-2.0
##
##  Unless required by applicable law or agreed to in writing, software
##  distributed under the License is distributed on an "AS IS" BASIS,
##  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
##  See the License for the specific language governing permissions and
##  limitations under the License.
##
################################################################################

# Symbols

# CreditCardValidator
creditCardValidatorAllowedFormatChars=\ -

# Currency/Number Validator
allowNegative=true
decimalSeparator=.
maxValue=NaN
minValue=NaN
thousandsSeparator=,
groupingSeparator=,

# CurrencyValidator
currencyValidatorPrecision=2

# DateValidator
dateValidatorAllowedFormatChars=/- \\.
validateAsString=true

# NumberValidator
numberValidatorDomain=real
numberValidatorPrecision=-1

# PhoneNumberValidator
phoneNumberValidatorAllowedFormatChars=-()+ .

# SocialSecurityValidator
socialSecurityValidatorAllowedFormatChars=\ -

# ZipCodeValidator
zipCodeValidatorAllowedFormatChars=\ -
zipCodeValidatorDomain=US Only


# Tooltip errors

# CurrencyValidator, NumberValidator

decimalPointCountError=소수 구분 기호는 한 번만 사용해야 합니다.
invalidCharError=입력한 내용에 잘못된 문자가 들어 있습니다.
invalidFormatCharsError=형식 매개 변수 중 하나가 잘못되었습니다.
lowerThanMinError=입력한 양이 너무 작습니다.
negativeError=값은 음수일 수 없습니다.
negativeNumberFormatError=입력 숫자의 음수 형식이 잘못되었습니다.
negativeCurrencyFormatError=입력 화폐의 음수 형식이 잘못되었습니다.
positiveCurrencyFormatError=입력 화폐의 양수 형식이 잘못되었습니다.
parseError=입력 문자열을 구문 분석할 수 없습니다.
negativeSymbolError=음수 기호가 반복되었거나 적절한 위치에 있지 않습니다.
precisionError=입력한 값에 소수점 이하 자릿수가 너무 많습니다.
fractionalDigitsError=입력한 값에 소수점 이하 자릿수가 너무 많습니다.
separationError=1000단위 구분 기호 다음에는 3자리가 와야 합니다.
currencyStringError=화폐 이름이 반복되거나 올바르지 않습니다.
localeUndefinedError=로케일이 정의되지 않았습니다.

# CreditCardValidator

invalidCharErrorCCV=신용카드 번호에 잘못된 문자가 들어 있습니다. 숫자만 입력해야 합니다.
invalidNumberError=신용카드 번호가 잘못되었습니다.
noNumError=신용카드 번호를 지정하지 않았습니다.
noTypeError=신용카드 유형이 지정되지 않았거나 잘못되었습니다.
wrongLengthErrorCCV=신용카드 번호의 자릿수가 잘못되었습니다.
wrongTypeError=잘못된 카드 유형이 지정되었습니다.

# CurrencyValidator

currencySymbolError=화폐 기호가 잘못된 위치에 있습니다.
exceedsMaxErrorCV=입력한 양이 너무 큽니다.

# DateValidator

wrongLengthErrorDV=해당 형식으로 날짜를 입력해야 합니다.
invalidCharErrorDV=날짜에 잘못된 문자가 들어 있습니다.
wrongMonthError=월에는 1에서 12 사이의 숫자를 입력해야 합니다.
wrongDayError=해당 달에 유효한 날짜를 입력하십시오.
wrongYearError=년에는 0에서 9999 사이의 숫자를 입력해야 합니다.
formatError=구성 오류: 잘못된 형식 문자열입니다.

# EmailValidator

invalidCharErrorEV=전자 메일 주소에 잘못된 문자가 들어 있습니다.
invalidDomainErrorEV=전자 메일 주소의 도메인 형식이 잘못되었습니다.
invalidIPDomainError=전자 메일 주소의 IP 도메인 형식이 잘못되었습니다.
invalidPeriodsInDomainError=전자 메일 주소의 도메인에 연속된 마침표가 들어 있습니다.
missingAtSignError=전자 메일 주소에 @ 기호가 빠졌습니다.
missingPeriodInDomainError=전자 메일 주소의 도메인에 마침표가 빠졌습니다.
missingUsernameError=전자 메일 주소에 사용자 이름이 빠졌습니다.
tooManyAtSignsError=전자 메일 주소에 @ 기호가 너무 많이 들어 있습니다.

# NumberValidator

exceedsMaxErrorNV=입력한 수가 너무 큽니다.
integerError=숫자가 정수여야 합니다.

# PhoneNumberValidator

invalidCharErrorPNV=전화번호에 잘못된 문자가 들어 있습니다.
minDigitsPNV=10
wrongLengthErrorPNV=전화 번호는 {0}자리 이상이어야 합니다.

# RegExValidator

noMatchError=필드가 잘못되었습니다.
noExpressionError=표현식이 빠졌습니다.

# SocialSecurityValidator

invalidCharErrorSSV=사회 보장 번호에 잘못된 문자를 입력했습니다.
wrongFormatError=사회 보장 번호는 9자리 또는 NNN-NN-NNNN 형식이어야 합니다.
zeroStartError=사회 보장 번호가 잘못되었습니다. 000으로 시작할 수 없습니다.

# StringValidator

tooLongError=이 문자열은 허용되는 최대 길이보다 깁니다. {0}자 미만이어야 합니다.
tooShortError=이 문자열은 허용되는 최소 길이보다 짧습니다. {0}자 이상이어야 합니다.
minLength=NaN
maxLength=NaN

# Validator

requiredFieldError=이 필드는 필수입니다.

# ZipCodeValidator

invalidCharErrorZCV=우편 번호에 잘못된 문자가 들어 있습니다.
invalidDomainErrorZCV=도메인 매개 변수가 잘못되었습니다. 'US Only', 'Canada Only' 또는 'US or Canada'여야 합니다.
wrongCAFormatError=캐나다 우편 번호는 'A1B 2C3' 형식이어야 합니다.
wrongLengthErrorZCV=우편 번호는 5자리 또는 5+4자리여야 합니다.
wrongUSFormatError=ZIP+4 코드는 '12345-6789' 형식이어야 합니다.
invalidFormatCharsZCV=allowedFormatChars 매개 변수가 잘못되었습니다. 영숫자 문자(a-z A-Z 0-9)는 사용할 수 없습니다.


# Developer RTE Section

# Shared

invalidFormatChars=allowedFormatChars 매개 변수가 잘못되었습니다. 숫자를 포함할 수 없습니다.

# CreditCardValidator

missingCardType=확인 중인 값에 cardType 속성이 없습니다.
missingCardNumber=확인 중인 값에 cardNumber 속성이 없습니다.
CNSAttribute=cardNumberSource 특성 '{0}'은(는) String 유형일 수 없습니다.
CTSAttribute=cardTypeSource 특성 '{0}'은(는) String 유형일 수 없습니다.

# DateValidator

DSAttribute=daySource 특성 '{0}'은(는) String 유형일 수 없습니다.
MSAttribute=monthSource 특성 '{0}'은(는) String 유형일 수 없습니다.
YSAttribute=yearSource 특성 '{0}'은(는) String 유형일 수 없습니다.

# Validator

fieldNotFound={0}' 필드를 찾을 수 없습니다.
SAttribute=소스 특성 '{0}'은(는) String 유형일 수 없습니다.
SAttributeMissing=속성 특성이 지정된 경우 소스 특성을 지정해야 합니다.
PAttributeMissing=소스 특성이 지정된 경우 속성 특성을 지정해야 합니다.
