# 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.
#
name=Name
any.edit=\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c ${name}
any.new=New Client App
any.finish=\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c ${name}
any.cancel=\u041e\u0442\u043c\u0435\u043d\u0438\u0442\u044c ${name}
clientId=Client Id
entityId=Entity Id
serviceId=Service Id
clientAppId=Id
redirectUris=Redirect URIs
logout=Logout
signAssertions=Sign Assertions
signResponses=Sign Responses
encryptionOptional=Encryption Optional
encryptAssertions=Encrypt Assertions
requiredNameIdFormat=NameId Format
clientSecret=Client Secret
signIdToken=Sign IdToken
jwtAccessToken=JWT Access Token
subjectType=Subject Type
supportedGrantTypes=Supported Grant Types
supportedResponseTypes=Supported Response Types
logoutUri=Logout URI
metadataLocation=Metadata Location
metadataSignatureLocation=Metadata Signature Location
requiredAuthenticationContextClass=Authentication Context Class
skewAllowance=Skew Allowance
nameIdQualifier=NameId Qualifier
assertionAudiences=Assertion Audiences
serviceProviderNameIdQualifier=Service Provider NameId Qualifier
signingSignatureAlgorithms=Signing Signature Algorithms
signingSignatureReferenceDigestMethods=Signing Signature Reference Digest Methods
encryptionDataAlgorithms=Encryption Data Algorithms
encryptionKeyAlgorithms=Encryption Key Algorithms
signingSignatureBlackListedAlgorithms=Signing Signature BlackListed Algorithms
encryptionBlackListedAlgorithms=Encryption BlackListed Algorithms
description=Description
theme=Theme
authPolicy=Authentication Policy
accessPolicy=Access Policy
attrReleasePolicy=Attribute Release Policy
properties.title=Properties for ${name}
type_extensions.title=properties
