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

DuplicateSymbolException=\u8907\u6570\u306e\u30b7\u30f3\u30dc\u30eb\u304c '${symbol}' \u3068\u3044\u3046\u540d\u524d\u3067\u3059\u3002
MultipleDefinitionsException=\u30b7\u30f3\u30dc\u30eb '${symbol}' \u306f ${location1} \u3068 ${location2} \u3067\u8907\u6570\u56de\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u307e\u3059\u3002
PartialExternsException=${script} \u5185\u306e\u30ea\u30f3\u30b1\u30fc\u30b8\u304c\u4e00\u8cab\u3057\u3066\u3044\u307e\u305b\u3093\u3002'${external}' \u306f extern \u3068\u3057\u3066\u30de\u30fc\u30af\u3055\u308c\u3066\u3044\u307e\u3059\u304c\u3001'${symbol}' \u306f\u30de\u30fc\u30af\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002
CircularReferenceException=${script} \u306e\u524d\u63d0\u6761\u4ef6\u306b\u5faa\u74b0\u53c2\u7167\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3059\u3002
UndefinedSymbolException='${symbol}' \u304c\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002
LinkingFailed=\u81f4\u547d\u7684\u306a\u30ea\u30f3\u30af\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002
UnableToWriteLinkReport=\u30ea\u30f3\u30af\u30ec\u30dd\u30fc\u30c8\u3092 ${filename} \u306b\u66f8\u304d\u8fbc\u3080\u3053\u3068\u304c\u3067\u304d\u307e\u305b\u3093\u3002
UnableToWriteResourceBundleList=\u30ea\u30bd\u30fc\u30b9\u30d0\u30f3\u30c9\u30eb\u30ea\u30b9\u30c8\u3092 "${filename}" \u306b\u66f8\u304d\u8fbc\u3080\u3053\u3068\u304c\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002.



