################################################################################
##
##  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= \u4e0d\u652f\u6301\u989c\u8272\u201c${color}\u201d\u3002
Descriptor.FunctionNotSupported= \u4e0d\u652f\u6301\u51fd\u6570\u201c${function}\u201d\u3002
Descriptor.InvalidFormat= \u683c\u5f0f\u65e0\u6548\u3002
Descriptor.ValueNotSupported= \u4e0d\u652f\u6301\u201c${value}\u201d\u7684 CSS \u503c\u3002
Descriptor.UnparsableCSS= \u65e0\u6cd5\u89e3\u6790 CSS \u4e2d\u7684\u5b57\u7b26\u3002
FontFaceRule.IgnoredDescriptor= \u5728 @font-face \u4e2d\u5ffd\u7565\u201c${descriptor}\u201d\u3002
FontFaceRule.UnicodeRangeNotSupported = \u65e0\u6cd5\u4e3a\u9884\u6784\u5efa\u7684 SWF \u5b57\u4f53\u6307\u5b9a unicode \u8303\u56f4\u3002
StyleParser.DeprecatedWarning=\u81ea ${since} \u4ee5\u6765\uff0c\u5df2\u5426\u51b3\u201c${var}\u201d\u3002\u8bf7\u4f7f\u7528\u201c${replacement}\u201d\u3002
StyleParser.StyleSheetInvalidCharset=@charset \u89c4\u5219\u5305\u542b\u65e0\u6548\u6216\u4e0d\u652f\u6301\u7684\u5b57\u7b26\u96c6\u7f16\u7801 ${charsetName}\u3002\u5728\u6837\u5f0f\u8868 ${stylePath} \u4e2d\u53d1\u73b0\u95ee\u9898
StyleParserErrorTranslator.UnableToParse=\u65e0\u6cd5\u5206\u6790 CSS \u6587\u4ef6\u3002
StyleParserErrorTranslator.InvalidIdentifierStartChar=CSS \u4e2d\u6709\u65e0\u6548\u5b57\u7b26\u3002\u8bf7\u7528\u5f15\u53f7\u5f15\u4f4f\u5b57\u4f53\u7cfb\u5217\u540d\u79f0\uff0c\u5982\u201c_sans\u201d\u3002
StyleParserErrorTranslator.InvalidCSSSyntax=CSS \u8bed\u6cd5\u65e0\u6548\uff08\u610f\u5916\u7684 ${token}\uff09\u3002
StyleParserErrorTranslator.InvalidCSSSyntaxToken=CSS \u8bed\u6cd5\u65e0\u6548\uff08\u610f\u5916\u7684\u6807\u8bb0:\u201c${token}\u201d\uff09\u3002
StyleParserErrorTranslator.InvalidCSSSyntaxUnits=CSS \u8bed\u6cd5\u65e0\u6548\uff08\u610f\u5916\u7684 ${token} \u5355\u5143\uff09\u3002
StyleParserErrorTranslator.InvalidCSSSyntaxArray=CSS \u8bed\u6cd5\u65e0\u6548\uff08\u610f\u5916\u7684\u6807\u8bb0:\u201c${token}\u201d\uff09\u3002\u8981\u8bbe\u7f6e\u7c7b\u578b Array \u7684\u6837\u5f0f\uff0c\u8bf7\u4f7f\u7528\u9017\u53f7\u5206\u9694\u5217\u8868\u3002\u4f8b\u5982: { foo: red, blue, green }\u3002



