# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
#
# Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
#
# Oracle and Java are registered trademarks of Oracle and/or its affiliates.
# Other names may be trademarks of their respective owners.
#
# The contents of this file are subject to the terms of either the GNU
# General Public License Version 2 only ("GPL") or the Common
# Development and Distribution License("CDDL") (collectively, the
# "License"). You may not use this file except in compliance with the
# License. You can obtain a copy of the License at
# http://www.netbeans.org/cddl-gplv2.html
# or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
# specific language governing permissions and limitations under the
# License.  When distributing the software, include this License Header
# Notice in each file and include the License file at
# nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the GPL Version 2 section of the License file that
# accompanied this code. If applicable, add the following below the
# License Header, with the fields enclosed by brackets [] replaced by
# your own identifying information:
# "Portions Copyrighted [year] [name of copyright owner]"
#
# Contributor(s):
#
# The Original Software is NetBeans. The Initial Developer of the Original
# Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
# Microsystems, Inc. All Rights Reserved.
#
# If you wish your version of this file to be governed by only the CDDL
# or only the GPL Version 2, indicate your decision by adding
# "[Contributor] elects to include this software in this distribution
# under the [CDDL or GPL Version 2] license." If you do not indicate a
# single choice of license, a recipient has the option to distribute
# your version of this file under either the CDDL, the GPL Version 2 or
# to extend the choice of license to its licensees as provided above.
# However, if you add GPL Version 2 code and therefore, elected the GPL
# Version 2 license, then the option applies only if the new code is
# made subject to such option by the copyright holder.

OPTIONS_sql=SQL\u30a8\u30c7\u30a3\u30bf

#SQLEditorProviderImpl
#{0} = command number
#PARTI18N - only localize "SQL" and do not add anything after ".sql" - keep it short!


#options
NAME_coloring_sql-whitespace=\u7a7a\u767d
HINT_coloring_sql-whitespace=\u7a7a\u767d


NAME_coloring_sql-line-comment=\u884c\u30b3\u30e1\u30f3\u30c8
HINT_coloring_sql-line-comment=\u5358\u4e00\u884c\u30b3\u30e1\u30f3\u30c8


NAME_coloring_sql-block-comment=\u30d6\u30ed\u30c3\u30af\u30fb\u30b3\u30e1\u30f3\u30c8
HINT_coloring_sql-block-comment=\u30d6\u30ed\u30c3\u30af\u30fb\u30b3\u30e1\u30f3\u30c8


NAME_coloring_sql-string-literal=\u6587\u5b57\u5217\u30ea\u30c6\u30e9\u30eb
HINT_coloring_sql-string-literal=\u6587\u5b57\u5217\u30ea\u30c6\u30e9\u30eb


NAME_coloring_sql-identifier=\u8b58\u5225\u5b50
HINT_coloring_sql-identifier=\u8b58\u5225\u5b50


NAME_coloring_sql-operator=\u6f14\u7b97\u5b50
HINT_coloring_sql-operator=\u6f14\u7b97\u5b50


NAME_coloring_sql-int-literal=\u6574\u6570\u8868\u73fe
HINT_coloring_sql-int-literal=\u6574\u6570\u8868\u73fe


NAME_coloring_sql-double-literal=\u6d6e\u52d5\u5c0f\u6570\u70b9\u8868\u73fe
HINT_coloring_sql-double-literal=\u6d6e\u52d5\u5c0f\u6570\u70b9\u8868\u73fe


NAME_coloring_sql-dot=\u30d4\u30ea\u30aa\u30c9
HINT_coloring_sql-dot=\u30d4\u30ea\u30aa\u30c9


NAME_coloring_sql-keyword=SQL\u30ad\u30fc\u30ef\u30fc\u30c9
HINT_coloring_sql-keyword=SQL\u30ad\u30fc\u30ef\u30fc\u30c9


NAME_coloring_sql-errors=SQL\u30a8\u30e9\u30fc
HINT_coloring_sql-errors=SQL\u30a8\u30e9\u30fc


