################################################################################
##
##  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= \u30ab\u30e9\u30fc '${color}' \u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002
Descriptor.FunctionNotSupported= \u95a2\u6570 '${function}' \u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002
Descriptor.InvalidFormat= \u7121\u52b9\u306a\u5f62\u5f0f\u3067\u3059\u3002
Descriptor.ValueNotSupported= '{cssValue}' \u306e CSS \u5024\u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002
Descriptor.UnparsableCSS= CSS \u5185\u306e\u6587\u5b57\u3092\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002
FontFaceRule.IgnoredDescriptor= '${descriptor}' \u306f @font-face \u5185\u3067\u306f\u7121\u8996\u3055\u308c\u307e\u3059\u3002
FontFaceRule.UnicodeRangeNotSupported = \u4f5c\u6210\u6e08\u307f\u306e SWF \u30d5\u30a9\u30f3\u30c8\u306b\u5bfe\u3057\u3066 Unicode \u7bc4\u56f2\u306f\u6307\u5b9a\u3067\u304d\u307e\u305b\u3093\u3002
StyleParser.DeprecatedWarning='${var}' \u306e\u4f7f\u7528\u306f ${since} \u4ee5\u964d\u63a8\u5968\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002'${replacement}' \u3092\u4f7f\u7528\u3057\u3066\u304f\u3060\u3055\u3044\u3002
StyleParser.StyleSheetInvalidCharset=@charset \u30eb\u30fc\u30eb\u306b\u3001\u7121\u52b9\u304b\u307e\u305f\u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u306a\u3044\u6587\u5b57\u30bb\u30c3\u30c8\u30a8\u30f3\u30b3\u30fc\u30c9 ${charsetName} \u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3059\u3002\u30b9\u30bf\u30a4\u30eb\u30b7\u30fc\u30c8 ${stylePath} \u3067\u554f\u984c\u304c\u898b\u3064\u304b\u308a\u307e\u3057\u305f
StyleParserErrorTranslator.UnableToParse=CSS \u30d5\u30a1\u30a4\u30eb\u3092\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3002
StyleParserErrorTranslator.InvalidIdentifierStartChar=CSS \u3067\u7121\u52b9\u306a\u6587\u5b57\u304c\u898b\u3064\u304b\u308a\u307e\u3057\u305f\u3002\u30d5\u30a9\u30f3\u30c8\u30d5\u30a1\u30df\u30ea\u540d\u306f '_sans' \u306e\u3088\u3046\u306b\u5f15\u7528\u7b26\u3067\u56f2\u3093\u3067\u304f\u3060\u3055\u3044\u3002
StyleParserErrorTranslator.InvalidCSSSyntax=\u7121\u52b9\u306a CSS \u69cb\u6587\u3067\u3059 (\u4e88\u671f\u3057\u306a\u3044 ${token})\u3002
StyleParserErrorTranslator.InvalidCSSSyntaxToken=\u7121\u52b9\u306a CSS \u69cb\u6587\u3067\u3059 (\u4e88\u671f\u3057\u306a\u3044\u30c8\u30fc\u30af\u30f3 : "${token}")\u3002
StyleParserErrorTranslator.InvalidCSSSyntaxUnits=\u7121\u52b9\u306a CSS \u69cb\u6587\u3067\u3059 (\u4e88\u671f\u3057\u306a\u3044 ${token} \u5358\u4f4d)\u3002
StyleParserErrorTranslator.InvalidCSSSyntaxArray=\u7121\u52b9\u306a CSS \u69cb\u6587\u3067\u3059 (\u4e88\u671f\u3057\u306a\u3044\u30c8\u30fc\u30af\u30f3 : "${token}")\u3002Array \u578b\u306e\u30b9\u30bf\u30a4\u30eb\u3092\u8a2d\u5b9a\u3059\u308b\u306b\u306f\u3001\u30ab\u30f3\u30de\u533a\u5207\u308a\u30ea\u30b9\u30c8\u3092\u4f7f\u7528\u3057\u307e\u3059\u3002\u4f8b : { foo: red, blue, green }\u3002



