# 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=Nome
any.edit=Modifica ${name}
any.new=Nuova App Client
any.finish=Invia ${name}
any.cancel=Annulla ${name}
clientId=Client Id
entityId=Entity Id
serviceId=Service Id
clientAppId=Id
redirectUris=URI di Redirect
logout=Logout
signAssertions=Firma Assertion
signResponses=Firma Response
encryptionOptional=Cifratura Opzionale
encryptAssertions=Cifratura Assertion
requiredNameIdFormat=Formato NameId
clientSecret=Client Secret
signIdToken=Firma IdToken
jwtAccessToken=JWT Access Token
subjectType=Tipo Subject
supportedGrantTypes=Grant Type Supportati
supportedResponseTypes=Reponse Type Supportati
logoutUri=URI di Logout
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=Descrizione
theme=Tema
authPolicy=Politica Autenticazione
accessPolicy=Politica Accesso
attrReleasePolicy=Politica Rilascio Attributi
properties.title=Propriet\u00e0 di ${name}
type_extensions.title=propriet\u00e0
