# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
#
# Copyright 2015 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]"
#
# 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.
#
# Contributor(s):
#
# Portions Copyrighted 2015 Sun Microsystems, Inc.

GoToBindingSourceAction.name=\u30bd\u30fc\u30b9\u3078\u79fb\u52d5
ShowInDOMAction.name=\u30d6\u30e9\u30a6\u30b6DOM\u3067\u8868\u793a
UnusedBindings.comment=\u30b3\u30e1\u30f3\u30c8
UnusedBindings.removedNode=<i>(\u524a\u9664\u6e08)</i>
UnusedBindingsPanel.findLabel.text=(\u30da\u30fc\u30b8\u306e\u518d\u30ed\u30fc\u30c9\u304c\u5fc5\u8981\u3067\u3059)
UnusedBindingsPanel.noUnusedBindings=<\u4f7f\u7528\u3055\u308c\u3066\u3044\u306a\u3044\u30d0\u30a4\u30f3\u30c9\u306f\u3042\u308a\u307e\u305b\u3093>
UnusedBindingsPanel.refreshButton.text=\u30ea\u30d5\u30ec\u30c3\u30b7\u30e5
UnusedBindingsPanel.findButton.text=\u4f7f\u7528\u3055\u308c\u3066\u3044\u306a\u3044\u30d0\u30a4\u30f3\u30c9\u306e\u691c\u51fa
UnusedBindingsPanel.unsupportedBrowser=<html><center>\u4f7f\u7528\u3055\u308c\u3066\u3044\u306a\u3044\u30d0\u30a4\u30f3\u30c9\u306e\u691c\u51fa\u306f<br>\u3053\u306e\u30d6\u30e9\u30a6\u30b6\u3067\u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002<br>\u304b\u308f\u308a\u306bChrome\u307e\u305f\u306fChromium\u3092\u4f7f\u7528\u3057\u3066\u304f\u3060\u3055\u3044\u3002
# {0} - Knockout version
UnusedBindingsPanel.unsupportedVersion=<html><center>\u4f7f\u7528\u3055\u308c\u3066\u3044\u306a\u3044\u30d0\u30a4\u30f3\u30c9\u306e\u691c\u51fa\u306f<br>Knockout\u30d0\u30fc\u30b8\u30e7\u30f3{0}\u3067\u306f<br>\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002
UnusedRootNode.displayName=\u4f7f\u7528\u3055\u308c\u3066\u3044\u306a\u3044\u30d0\u30a4\u30f3\u30c9

