################################################################################
##
##  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.
##
################################################################################

Descriptor.ColorNotSupported= ${color}' \uc0c9\uc0c1\uc740 \uc9c0\uc6d0\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
Descriptor.FunctionNotSupported= ${function}' \ud568\uc218\ub294 \uc9c0\uc6d0\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
Descriptor.InvalidFormat= \uc798\ubabb\ub41c \ud615\uc2dd\uc785\ub2c8\ub2e4.
Descriptor.ValueNotSupported= ${value}'\uc5d0 \ub300\ud55c CSS \uac12\uc740 \uc9c0\uc6d0\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
Descriptor.UnparsableCSS= CSS\uc5d0 \uc788\ub294 \ubb38\uc790\ub97c \uad6c\ubb38 \ubd84\uc11d\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
FontFaceRule.IgnoredDescriptor= ${descriptor}'\uc740(\ub294) @font-face \ub0b4\uc5d0\uc11c \ubb34\uc2dc\ub429\ub2c8\ub2e4.
FontFaceRule.UnicodeRangeNotSupported = \ubbf8\ub9ac \uad6c\uc131\ub41c SWF \uae00\uaf34\uc5d0 \ub300\ud574 \uc720\ub2c8\ucf54\ub4dc \ubc94\uc704\ub97c \uc9c0\uc815\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
StyleParser.DeprecatedWarning=${var}'\uc740(\ub294) ${since} \uc774\ud6c4\ub85c \uc0ac\uc6a9\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. '${replacement}'\uc744(\ub97c) \uc0ac\uc6a9\ud558\uc2ed\uc2dc\uc624.
StyleParser.StyleSheetInvalidCharset=@charset \uaddc\uce59\uc5d0 \uc62c\ubc14\ub974\uc9c0 \uc54a\uac70\ub098 \uc9c0\uc6d0\ub418\uc9c0 \uc54a\ub294 \ubb38\uc790 \uc138\ud2b8 \uc778\ucf54\ub529 ${charsetName}\uc774(\uac00) \ud3ec\ud568\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4. \uc2a4\ud0c0\uc77c\uc2dc\ud2b8 ${stylePath}\uc5d0\uc11c \ubb38\uc81c\uc810\uc774 \ubc1c\uacac\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
StyleParserErrorTranslator.UnableToParse=CSS \ud30c\uc77c\uc744 \uad6c\ubb38 \ubd84\uc11d\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
StyleParserErrorTranslator.InvalidIdentifierStartChar=CSS\uc5d0 \uc798\ubabb\ub41c \ubb38\uc790\uac00 \uc788\uc2b5\ub2c8\ub2e4. '_sans'\uc640 \uac19\uc774 \uae00\uaf34 \ud328\ubc00\ub9ac \uc774\ub984\uc744 \ub530\uc634\ud45c\ub85c \uac10\uc2f8\uc2ed\uc2dc\uc624.
StyleParserErrorTranslator.InvalidCSSSyntax=\uc798\ubabb\ub41c CSS \uad6c\ubb38(\uc608\uae30\uce58 \uc54a\uc740 ${token})\uc785\ub2c8\ub2e4.
StyleParserErrorTranslator.InvalidCSSSyntaxToken=\uc798\ubabb\ub41c CSS \uad6c\ubb38(\uc608\uae30\uce58 \uc54a\uc740 \ud1a0\ud070: '${token}')\uc785\ub2c8\ub2e4.
StyleParserErrorTranslator.InvalidCSSSyntaxUnits=\uc798\ubabb\ub41c CSS \uad6c\ubb38(\uc608\uae30\uce58 \uc54a\uc740 ${token} \ub2e8\uc704)\uc785\ub2c8\ub2e4.
StyleParserErrorTranslator.InvalidCSSSyntaxArray=\uc798\ubabb\ub41c CSS \uad6c\ubb38(\uc608\uae30\uce58 \uc54a\uc740 \ud1a0\ud070: '${token}')\uc785\ub2c8\ub2e4. Array \uc720\ud615\uc758 \uc2a4\ud0c0\uc77c\uc744 \uc124\uc815\ud558\ub824\uba74 { foo: red, blue, green }\uacfc \uac19\uc774 \uc27c\ud45c\ub85c \uad6c\ubd84\ub41c \ubaa9\ub85d\uc744 \uc0ac\uc6a9\ud558\uc2ed\uc2dc\uc624.



