# 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.
displayRows=\u8868\u793a\u884c\u6570

mustChangePassword=\u30d1\u30b9\u30ef\u30fc\u30c9\u5909\u66f4\u304c\u5fc5\u8981
edit=\u7de8\u96c6
delete=\u524a\u9664
status=\u30b9\u30c6\u30fc\u30bf\u30b9
token=\u30c8\u30fc\u30af\u30f3
username=\u30e6\u30fc\u30b6\u30fc\u540d
creationDate=\u4f5c\u6210\u65e5
tokenValued=\u691c\u8a3c\u6e08
tokenNotValued=\u672a\u691c\u8a3c
realm=\u30ec\u30eb\u30e0

subject=\u4ef6\u540d
recipients=\u53d7\u4fe1\u8005

any.edit=${anyTO.type} ${anyTO.name} \u3092\u7de8\u96c6
any.new=\u65b0\u3057\u3044 ${anyTO.type}
any.finish=${anyTO.type} \u3092\u5b9f\u884c
any.cancel=${anyTO.type} \u3092\u30ad\u30e3\u30f3\u30bb\u30eb
any.attr.display=\u8868\u793a\u3059\u308b\u5c5e\u6027
batch=\u30d0\u30c3\u30c1
any.propagation.tasks=${type} ${name} \u306e\u4f1d\u64ad\u30bf\u30b9\u30af
any.notification.tasks=${type} ${name} \u306e\u901a\u77e5\u30bf\u30b9\u30af
notification.tasks=\u901a\u77e5 ${key} \u306b\u95a2\u3059\u308b\u30bf\u30b9\u30af

typeExtensions=\u30b0\u30eb\u30fc\u30d7 ${name} \u306e\u30bf\u30a4\u30d7\u62e1\u5f35
creator=\u4f5c\u6210\u8005
creationContext=Creation Context
lastChangeContext=Last Change Context
lastChangeDate=\u6700\u7d42\u66f4\u65b0\u65e5
lastModifier=\u6700\u7d42\u66f4\u65b0\u8005
