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

report.category.column.description = \u63CF\u8FF0
report.category.column.document    = \u6587\u6863
report.category.sectionTitle       = \u6982\u8FF0
report.information.description1    = \u672C\u6587\u6863\u63D0\u4F9B\u4E86\u4E0E\u672C\u9879\u76EE\u76F8\u5173\u4FE1\u606F\u7684\u5404\u79CD\u6587\u6863\u548C\u94FE\u63A5\u7684\u6982\u8FF0\u3002\u8FD9\u91CC\u7684\u6240\u6709\u5185\u5BB9\u90FD\u662F\u6839\u636E\u672C\u9879\u76EE\u4FE1\u606F\u751F\u6210\u7684\uFF0C\u81EA\u52A8\u751F\u6210\u8FC7\u7A0B\u4F9D\u9760
report.information.description2    = \u3002
report.information.title           = \u9879\u76EE\u603B\u4F53\u4FE1\u606F
report.menu.parentproject          = \u7236\u9879\u76EE
report.menu.projectdocumentation   = \u9879\u76EE\u6587\u6863
report.menu.projectinformation     = \u9879\u76EE\u4FE1\u606F
report.menu.projectmodules         = \u6A21\u5757
report.menu.projectreports         = \u9879\u76EE\u62A5\u8868
report.project.description1        = \u672C\u6587\u6863\u63D0\u4F9B\u4E86\u5BF9\u9879\u76EE\u4E2D\u5404\u79CD\u62A5\u8868\u7684\u6982\u8FF0\uFF0C\u8FD9\u4E9B\u62A5\u8868\u751F\u6210\u81EA
report.project.description2        = \u6BCF\u4E00\u4E2A\u62A5\u8868\u5728\u4EE5\u4E0B\u7B80\u8981\u4ECB\u7ECD\u3002
report.project.title               = \u751F\u6210\u62A5\u8868
