#
#  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
#
#    https://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.
#
OAuthCreateAccountCommand.password1.label=Password
OAuthCreateAccountCommand.password2.label=Password re-type
OAuthCreateAccountCommand.username.label=Username
OAuthLinkAccountCommand.password.label=Password
OAuthLinkAccountCommand.username.label=Username
springSecurity.oauth.registration.back=Back to login page
springSecurity.oauth.registration.create.button=Create
springSecurity.oauth.registration.create.legend=Create a new account
springSecurity.oauth.registration.link.not.exists=No user was found with this account.
springSecurity.oauth.registration.login.button=Login
springSecurity.oauth.registration.login.legend=Link to an existing account