feat: add theme
This commit is contained in:
parent
8c9a19c04e
commit
264abafa9c
1
.gitignore
vendored
1
.gitignore
vendored
@ -52,6 +52,5 @@ jspm_packages
|
||||
|
||||
/dist
|
||||
|
||||
/dist_keycloak
|
||||
/build
|
||||
/storybook-static
|
||||
|
1
dist_keycloak/.gitignore
vendored
Normal file
1
dist_keycloak/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
*
|
BIN
dist_keycloak/keycloak-theme-for-kc-22-to-25.jar
Normal file
BIN
dist_keycloak/keycloak-theme-for-kc-22-to-25.jar
Normal file
Binary file not shown.
BIN
dist_keycloak/keycloak-theme-for-kc-all-other-versions.jar
Normal file
BIN
dist_keycloak/keycloak-theme-for-kc-all-other-versions.jar
Normal file
Binary file not shown.
739
dist_keycloak/theme/keycloakify-starter/login/code.ftl
Normal file
739
dist_keycloak/theme/keycloakify-starter/login/code.ftl
Normal file
@ -0,0 +1,739 @@
|
||||
<!DOCTYPE html><html><head><script>
|
||||
<#assign xKeycloakify={
|
||||
"messages": {},
|
||||
"pageId": "code.ftl",
|
||||
"ftlTemplateFileName": "code.ftl",
|
||||
"themeType": "login",
|
||||
"themeName": "keycloakify-starter",
|
||||
"keycloakifyVersion": "11.4.4",
|
||||
"themeVersion": "0.0.0",
|
||||
"resourcesPath": ""
|
||||
}>
|
||||
|
||||
<#if url?? && url?is_hash && url.resourcesPath?? && url.resourcesPath?is_string>
|
||||
<#assign xKeycloakify = xKeycloakify + { "resourcesPath": url.resourcesPath }>
|
||||
</#if>
|
||||
<#if resourceUrl?? && resourceUrl?is_string>
|
||||
<#assign xKeycloakify = xKeycloakify + { "resourcesPath": resourceUrl }>
|
||||
</#if>
|
||||
|
||||
const kcContext = ${toJsDeclarationString(.data_model, [])?no_esc};
|
||||
kcContext.keycloakifyVersion = "${xKeycloakify.keycloakifyVersion}";
|
||||
kcContext.themeVersion = "${xKeycloakify.themeVersion}";
|
||||
kcContext.themeType = "${xKeycloakify.themeType}";
|
||||
kcContext.themeName = "${xKeycloakify.themeName}";
|
||||
kcContext.pageId = "${xKeycloakify.pageId}";
|
||||
kcContext.ftlTemplateFileName = "${xKeycloakify.ftlTemplateFileName}";
|
||||
|
||||
<@addNonAutomaticallyGatherableMessagesToXKeycloakifyMessages />
|
||||
|
||||
kcContext["x-keycloakify"] = {};
|
||||
|
||||
kcContext["x-keycloakify"].resourcesPath = "${xKeycloakify.resourcesPath}";
|
||||
|
||||
{
|
||||
var messages = {};
|
||||
<#list xKeycloakify.messages as key, resolvedMsg>
|
||||
messages["${key}"] = decodeHtmlEntities("${resolvedMsg?js_string}");
|
||||
</#list>
|
||||
kcContext["x-keycloakify"].messages = messages;
|
||||
}
|
||||
|
||||
if(
|
||||
kcContext.url instanceof Object &&
|
||||
typeof kcContext.url.resourcesPath === "string"
|
||||
){
|
||||
kcContext.url.resourcesCommonPath = kcContext.url.resourcesPath + "/resources-common";
|
||||
}
|
||||
|
||||
if( kcContext.messagesPerField ){
|
||||
var existsError_singleFieldName = kcContext.messagesPerField.existsError;
|
||||
kcContext.messagesPerField.existsError = function (){
|
||||
for( let i = 0; i < arguments.length; i++ ){
|
||||
if( existsError_singleFieldName(arguments[i]) ){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
};
|
||||
kcContext.messagesPerField.exists = function (fieldName) {
|
||||
return kcContext.messagesPerField.get(fieldName) !== "";
|
||||
};
|
||||
kcContext.messagesPerField.printIfExists = function (fieldName, text) {
|
||||
return kcContext.messagesPerField.exists(fieldName) ? text : undefined;
|
||||
};
|
||||
kcContext.messagesPerField.getFirstError = function () {
|
||||
for( let i = 0; i < arguments.length; i++ ){
|
||||
const fieldName = arguments[i];
|
||||
if( kcContext.messagesPerField.existsError(fieldName) ){
|
||||
return kcContext.messagesPerField.get(fieldName);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
attributes_to_attributesByName: {
|
||||
if( !kcContext.profile ){
|
||||
break attributes_to_attributesByName;
|
||||
}
|
||||
if( !kcContext.profile.attributes ){
|
||||
break attributes_to_attributesByName;
|
||||
}
|
||||
var attributes = kcContext.profile.attributes;
|
||||
delete kcContext.profile.attributes;
|
||||
kcContext.profile.attributesByName = {};
|
||||
attributes.forEach(function(attribute){
|
||||
kcContext.profile.attributesByName[attribute.name] = attribute;
|
||||
});
|
||||
}
|
||||
|
||||
redirect_to_dev_server: {
|
||||
|
||||
switch(kcContext.themeType){
|
||||
case "login":
|
||||
break redirect_to_dev_server;
|
||||
case "account":
|
||||
if( kcContext.pageId !== "index.ftl" ){
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
break;
|
||||
case "admin":
|
||||
break;
|
||||
default:
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
|
||||
const devSeverPort = kcContext.properties.KEYCLOAKIFY_SPA_DEV_SERVER_PORT;
|
||||
|
||||
if( !devSeverPort ){
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
|
||||
const redirectUrl = new URL(window.location.href);
|
||||
|
||||
redirectUrl.port = devSeverPort;
|
||||
|
||||
delete kcContext.msgJSON;
|
||||
|
||||
console.log(kcContext);
|
||||
|
||||
redirectUrl.searchParams.set("kcContext", encodeURIComponent(JSON.stringify(kcContext)));
|
||||
|
||||
window.location.href = redirectUrl.toString();
|
||||
|
||||
}
|
||||
|
||||
|
||||
window.kcContext = kcContext;
|
||||
|
||||
|
||||
<#if xKeycloakify.themeType == "login" >
|
||||
{
|
||||
const script = document.createElement("script");
|
||||
script.type = "importmap";
|
||||
script.textContent = JSON.stringify({
|
||||
imports: {
|
||||
"rfc4648": kcContext.url.resourcesCommonPath + "/node_modules/rfc4648/lib/rfc4648.js"
|
||||
}
|
||||
}, null, 2);
|
||||
|
||||
document.head.appendChild(script);
|
||||
}
|
||||
</#if>
|
||||
|
||||
function decodeHtmlEntities(htmlStr){
|
||||
var element = decodeHtmlEntities.element;
|
||||
if (!element) {
|
||||
element = document.createElement("textarea");
|
||||
decodeHtmlEntities.element = element;
|
||||
}
|
||||
element.innerHTML = htmlStr;
|
||||
return element.value;
|
||||
}
|
||||
|
||||
<#function toJsDeclarationString object path>
|
||||
<#local isHash = -1>
|
||||
<#attempt>
|
||||
<#local isHash = object?is_hash || object?is_hash_ex>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't evaluate if " + path?join(".") + " is a hash">
|
||||
</#attempt>
|
||||
|
||||
<#if isHash>
|
||||
<#if path?size gt 10>
|
||||
<#return "ABORT: Too many recursive calls, path: " + path?join(".")>
|
||||
</#if>
|
||||
<#local keys = -1>
|
||||
|
||||
<#attempt>
|
||||
<#local keys = object?keys>
|
||||
<#recover>
|
||||
<#return "ABORT: We can't list keys on object">
|
||||
</#attempt>
|
||||
|
||||
<#local outSeq = []>
|
||||
|
||||
<#list keys as key>
|
||||
<#if ["class","declaredConstructors","superclass","declaringClass" ]?seq_contains(key) >
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if (
|
||||
areSamePath(path, ["url"]) &&
|
||||
["loginUpdatePasswordUrl", "loginUpdateProfileUrl", "loginUsernameReminderUrl", "loginUpdateTotpUrl"]?seq_contains(key)
|
||||
) || (
|
||||
key == "updateProfileCtx" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
<#-- https://github.com/keycloakify/keycloakify/pull/65#issuecomment-991896344 (reports with saml-post-form.ftl) -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/91#issue-1212319466 (reports with error.ftl and Kc18) -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/109#issuecomment-1134610163 -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/357 -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/discussions/406#discussioncomment-7514787 -->
|
||||
key == "loginAction" &&
|
||||
areSamePath(path, ["url"]) &&
|
||||
["saml-post-form.ftl", "error.ftl", "info.ftl", "login-oauth-grant.ftl", "logout-confirm.ftl", "login-oauth2-device-verify-user-code.ftl"]?seq_contains(xKeycloakify.pageId) &&
|
||||
!(auth?has_content && auth.showTryAnotherWayLink())
|
||||
) || (
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/362 -->
|
||||
["secretData", "value"]?seq_contains(key) &&
|
||||
areSamePath(path, [ "totp", "otpCredentials", "*" ])
|
||||
) || (
|
||||
["contextData", "idpConfig", "idp", "authenticationSession"]?seq_contains(key) &&
|
||||
areSamePath(path, ["brokerContext"]) &&
|
||||
["login-idp-link-confirm.ftl", "login-idp-link-email.ftl" ]?seq_contains(xKeycloakify.pageId)
|
||||
) || (
|
||||
key == "identityProviderBrokerCtx" &&
|
||||
areSamePath(path, []) &&
|
||||
["login-idp-link-confirm.ftl", "login-idp-link-email.ftl" ]?seq_contains(xKeycloakify.pageId)
|
||||
) || (
|
||||
["masterAdminClient", "delegateForUpdate", "defaultRole", "smtpConfig"]?seq_contains(key) &&
|
||||
areSamePath(path, ["realm"])
|
||||
) || (
|
||||
xKeycloakify.pageId == "error.ftl" &&
|
||||
areSamePath(path, ["realm"]) &&
|
||||
!["name", "displayName", "displayNameHtml", "internationalizationEnabled", "registrationEmailAsUsername" ]?seq_contains(key)
|
||||
) || (
|
||||
xKeycloakify.pageId == "applications.ftl" &&
|
||||
(
|
||||
key == "realm" ||
|
||||
key == "container"
|
||||
) &&
|
||||
isSubpath(path, ["applications", "applications"])
|
||||
) || (
|
||||
key == "delegateForUpdate" &&
|
||||
areSamePath(path, ["user"])
|
||||
) || (
|
||||
<#-- Security audit forwarded by Garth (Gmail) -->
|
||||
key == "saml.signing.private.key" &&
|
||||
areSamePath(path, ["client", "attributes"])
|
||||
) || (
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/534 -->
|
||||
key == "password" &&
|
||||
areSamePath(path, ["login"])
|
||||
) || (
|
||||
<#-- Remove realmAttributes added by https://github.com/jcputney/keycloak-theme-additional-info-extension for peace of mind. -->
|
||||
key == "realmAttributes" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
<#-- attributesByName adds a lot of noise to the output and is not needed, we already have profile.attributes -->
|
||||
key == "attributesByName" &&
|
||||
areSamePath(path, ["profile"])
|
||||
) || (
|
||||
<#-- We already have the attributes in profile speedup the rendering by filtering it out from the register object -->
|
||||
(key == "attributes" || key == "attributesByName") &&
|
||||
areSamePath(path, ["register"])
|
||||
) || (
|
||||
areSamePath(path, ["properties"]) &&
|
||||
(
|
||||
key?starts_with("kc") ||
|
||||
key == "locales" ||
|
||||
key == "import" ||
|
||||
key == "parent" ||
|
||||
key == "meta" ||
|
||||
key == "stylesCommon" ||
|
||||
key == "styles" ||
|
||||
key == "accountResourceProvider"
|
||||
)
|
||||
) || (
|
||||
key == "execution" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
key == "entity" &&
|
||||
areSamePath(path, ["user"])
|
||||
) || (
|
||||
key == "attributes" &&
|
||||
areSamePath(path, ["realm"])
|
||||
) || (
|
||||
xKeycloakify.pageId == "index.ftl" &&
|
||||
xKeycloakify.themeType == "account" &&
|
||||
areSamePath(path, ["realm"]) &&
|
||||
![
|
||||
"name",
|
||||
"registrationEmailAsUsername",
|
||||
"editUsernameAllowed",
|
||||
"isInternationalizationEnabled",
|
||||
"identityFederationEnabled",
|
||||
"userManagedAccessAllowed"
|
||||
]?seq_contains(key)
|
||||
) || (
|
||||
["flowContext", "session", "realm"]?seq_contains(key) &&
|
||||
areSamePath(path, ["social"])
|
||||
)
|
||||
>
|
||||
<#-- <#local outSeq += ["/*" + path?join(".") + "." + key + " excluded*/"]> -->
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#-- https://github.com/keycloakify/keycloakify/discussions/406 -->
|
||||
<#if (
|
||||
key == "attemptedUsername" &&
|
||||
areSamePath(path, ["auth"]) &&
|
||||
[
|
||||
"register.ftl", "terms.ftl", "info.ftl", "login.ftl",
|
||||
"login-update-password.ftl", "login-oauth2-device-verify-user-code.ftl"
|
||||
]?seq_contains(xKeycloakify.pageId)
|
||||
)>
|
||||
<#attempt>
|
||||
<#-- https://github.com/keycloak/keycloak/blob/3a2bf0c04bcde185e497aaa32d0bb7ab7520cf4a/themes/src/main/resources/theme/base/login/template.ftl#L63 -->
|
||||
<#if !(auth?has_content && auth.showUsername() && !auth.showResetCredentials())>
|
||||
<#local outSeq += ["/*" + path?join(".") + "." + key + " excluded*/"]>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Accessing attemptedUsername throwed an exception */"]>
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
|
||||
|
||||
<#attempt>
|
||||
<#if !object[key]??>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Couldn't test if '" + key + "' is available on this object*/"]>
|
||||
<#continue>
|
||||
</#attempt>
|
||||
|
||||
<#local propertyValue = -1>
|
||||
|
||||
<#attempt>
|
||||
<#local propertyValue = object[key]>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Couldn't dereference '" + key + "' on this object*/"]>
|
||||
<#continue>
|
||||
</#attempt>
|
||||
|
||||
<#local recOut = toJsDeclarationString(propertyValue, path + [ key ])>
|
||||
|
||||
<#if recOut?starts_with("ABORT:")>
|
||||
|
||||
<#local errorMessage = recOut?remove_beginning("ABORT:")>
|
||||
|
||||
<#if errorMessage != " It's a method" >
|
||||
<#local outSeq += ["/*" + key + ": " + errorMessage + "*/"]>
|
||||
</#if>
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local outSeq += ['"' + key + '": ' + recOut + ","]>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return (["{"] + outSeq?map(str -> ""?right_pad(4 * (path?size + 1)) + str) + [ ""?right_pad(4 * path?size) + "}"])?join("\n")>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local isMethod = -1>
|
||||
<#attempt>
|
||||
<#local isMethod = object?is_method>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it'sa method.">
|
||||
</#attempt>
|
||||
|
||||
<#if isMethod>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showUsername"])>
|
||||
<#attempt>
|
||||
<#return auth.showUsername()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showUsername()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showResetCredentials"])>
|
||||
<#attempt>
|
||||
<#return auth.showResetCredentials()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showResetCredentials()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showTryAnotherWayLink"])>
|
||||
<#attempt>
|
||||
<#return auth.showTryAnotherWayLink()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showTryAnotherWayLink()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["url", "getLogoutUrl"])>
|
||||
<#local returnValue = -1>
|
||||
<#attempt>
|
||||
<#local returnValue = url.getLogoutUrl()>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate url.getLogoutUrl()">
|
||||
</#attempt>
|
||||
<#return 'function(){ return "' + returnValue + '"; }'>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["totp", "policy", "getAlgorithmKey"])>
|
||||
<#local returnValue = "error">
|
||||
<#if mode?? && mode = "manual">
|
||||
<#attempt>
|
||||
<#local returnValue = totp.policy.getAlgorithmKey()>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate totp.policy.getAlgorithmKey()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
<#return 'function(){ return "' + returnValue + '"; }'>
|
||||
</#if>
|
||||
|
||||
<#assign fieldNames = ["firstName", "lastName", "email", "username", "password", "password-confirm", "global", "totp", "userLabel", "recoveryCodeInput", "termsAccepted"]>
|
||||
<#if profile?? && profile.attributes??>
|
||||
<#list profile.attributes as attribute>
|
||||
<#if fieldNames?seq_contains(attribute.name)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#assign fieldNames += [attribute.name]>
|
||||
</#list>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["messagesPerField", "get"])>
|
||||
|
||||
<#local jsFunctionCode = "function (fieldName) { ">
|
||||
|
||||
<#list fieldNames as fieldName>
|
||||
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/217 -->
|
||||
<#if xKeycloakify.pageId == "login.ftl" >
|
||||
|
||||
<#if fieldName == "username">
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === 'username' || fieldName === 'password' ){ ">
|
||||
|
||||
<#if messagesPerField.exists('username') || messagesPerField.exists('password')>
|
||||
<#local jsFunctionCode += "return kcContext.message && kcContext.message.summary ? kcContext.message.summary : 'error'; ">
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return ''; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if fieldName == "password">
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === '" + fieldName + "'){ ">
|
||||
|
||||
<#if messagesPerField.exists('${fieldName}')>
|
||||
<#local jsFunctionCode += 'return decodeHtmlEntities("' + messagesPerField.get('${fieldName}')?js_string + '"); '>
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return ''; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
</#list>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
<#return jsFunctionCode>
|
||||
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["messagesPerField", "existsError"])>
|
||||
|
||||
<#local jsFunctionCode = "function (fieldName) { ">
|
||||
|
||||
<#list fieldNames as fieldName>
|
||||
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/217 -->
|
||||
<#if xKeycloakify.pageId == "login.ftl" >
|
||||
<#if fieldName == "username">
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === 'username' || fieldName === 'password' ){ ">
|
||||
|
||||
<#if messagesPerField.existsError('username') || messagesPerField.existsError('password')>
|
||||
<#local jsFunctionCode += "return true; ">
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return false; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if fieldName == "password">
|
||||
<#continue>
|
||||
</#if>
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === '" + fieldName + "' ){ ">
|
||||
|
||||
<#if messagesPerField.existsError('${fieldName}')>
|
||||
<#local jsFunctionCode += 'return true; '>
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return false; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
</#list>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
<#return jsFunctionCode>
|
||||
|
||||
</#if>
|
||||
|
||||
<#if xKeycloakify.themeType == "account" && areSamePath(path, ["realm", "isInternationalizationEnabled"])>
|
||||
<#attempt>
|
||||
<#return realm.isInternationalizationEnabled()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate realm.isInternationalizationEnabled()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#return "ABORT: It's a method">
|
||||
</#if>
|
||||
|
||||
<#local isBoolean = -1>
|
||||
<#attempt>
|
||||
<#local isBoolean = object?is_boolean>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a boolean">
|
||||
</#attempt>
|
||||
|
||||
<#if isBoolean>
|
||||
<#return object?c>
|
||||
</#if>
|
||||
|
||||
<#local isEnumerable = -1>
|
||||
<#attempt>
|
||||
<#local isEnumerable = object?is_enumerable>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's an enumerable">
|
||||
</#attempt>
|
||||
|
||||
|
||||
<#if isEnumerable>
|
||||
|
||||
<#local outSeq = []>
|
||||
|
||||
<#local i = 0>
|
||||
|
||||
<#list object as array_item>
|
||||
|
||||
<#if !array_item??>
|
||||
<#local outSeq += ["null,"]>
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local recOut = toJsDeclarationString(array_item, path + [ i ])>
|
||||
|
||||
<#local i = i + 1>
|
||||
|
||||
<#if recOut?starts_with("ABORT:")>
|
||||
|
||||
<#local errorMessage = recOut?remove_beginning("ABORT:")>
|
||||
|
||||
<#if errorMessage != " It's a method" >
|
||||
<#local outSeq += ["/*" + i?string + ": " + errorMessage + "*/"]>
|
||||
</#if>
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local outSeq += [recOut + ","]>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return (["["] + outSeq?map(str -> ""?right_pad(4 * (path?size + 1)) + str) + [ ""?right_pad(4 * path?size) + "]"])?join("\n")>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local isDate = -1>
|
||||
<#attempt>
|
||||
<#local isDate = object?is_date_like>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a date">
|
||||
</#attempt>
|
||||
|
||||
<#if isDate>
|
||||
<#return '"' + object?datetime?iso_utc + '"'>
|
||||
</#if>
|
||||
|
||||
<#local isNumber = -1>
|
||||
<#attempt>
|
||||
<#local isNumber = object?is_number>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a number">
|
||||
</#attempt>
|
||||
|
||||
<#if isNumber>
|
||||
<#return object?c>
|
||||
</#if>
|
||||
|
||||
<#local isString = -1>
|
||||
<#attempt>
|
||||
<#local isString = object?is_string>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a string">
|
||||
</#attempt>
|
||||
|
||||
<#if isString>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str=object />
|
||||
</#if>
|
||||
|
||||
<#attempt>
|
||||
<#return '"' + object?js_string + '"'>;
|
||||
<#recover>
|
||||
</#attempt>
|
||||
|
||||
<#return "ABORT: Couldn't convert into string non hash, non method, non boolean, non number, non enumerable object">
|
||||
|
||||
</#function>
|
||||
<#function isSubpath path searchedPath>
|
||||
|
||||
<#if path?size < searchedPath?size>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#local i=0>
|
||||
|
||||
<#list path as property>
|
||||
|
||||
<#if i == searchedPath?size >
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local searchedProperty=searchedPath[i]>
|
||||
|
||||
<#local i+= 1>
|
||||
|
||||
<#if searchedProperty?is_string && searchedProperty == "*">
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?is_string && !property?is_string>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?is_number && !property?is_number>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?string != property?string>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return true>
|
||||
|
||||
</#function>
|
||||
|
||||
<#function areSamePath path searchedPath>
|
||||
<#return path?size == searchedPath?size && isSubpath(path, searchedPath)>
|
||||
</#function>
|
||||
|
||||
<#macro addToXKeycloakifyMessagesIfMessageKey str>
|
||||
<#if !msg?? || !msg?is_method>
|
||||
<#return>
|
||||
</#if>
|
||||
<#if (str?length > 200)>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local key=removeBrackets(str)>
|
||||
<#if key?length==0>
|
||||
<#return>
|
||||
</#if>
|
||||
<#if !(key?matches(r"^[a-zA-Z0-9-_.]*$"))>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local resolvedMsg=msg(key)>
|
||||
<#if resolvedMsg==key>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local messages=xKeycloakify.messages>
|
||||
<#local messages = messages + { key: resolvedMsg }>
|
||||
<#assign xKeycloakify = xKeycloakify + { "messages": messages }>
|
||||
</#macro>
|
||||
|
||||
<#function removeBrackets str>
|
||||
<#if str?starts_with("${") && str?ends_with("}")>
|
||||
<#return str[2..(str?length-2)]>
|
||||
<#else>
|
||||
<#return str>
|
||||
</#if>
|
||||
</#function>
|
||||
|
||||
<#macro addNonAutomaticallyGatherableMessagesToXKeycloakifyMessages>
|
||||
<#if profile?? && profile?is_hash && profile.attributes?? && profile.attributes?is_enumerable>
|
||||
<#list profile.attributes as attribute>
|
||||
<#if !(
|
||||
attribute.annotations?? && attribute.annotations?is_hash &&
|
||||
attribute.annotations.inputOptionLabelsI18nPrefix?? && attribute.annotations.inputOptionLabelsI18nPrefix?is_string
|
||||
)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#local prefix=attribute.annotations.inputOptionLabelsI18nPrefix>
|
||||
<#if !(
|
||||
attribute.validators?? && attribute.validators?is_hash &&
|
||||
attribute.validators.options?? && attribute.validators.options?is_hash &&
|
||||
attribute.validators.options.options?? && attribute.validators.options.options?is_enumerable
|
||||
)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#list attribute.validators.options.options as option>
|
||||
<#if !option?is_string>
|
||||
<#continue>
|
||||
</#if>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="${prefix}.${option}" />
|
||||
</#list>
|
||||
</#list>
|
||||
</#if>
|
||||
<#if xKeycloakify.pageId == "terms.ftl" || termsAcceptanceRequired?? && termsAcceptanceRequired>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="termsText" />
|
||||
</#if>
|
||||
<#if requiredActions?? && requiredActions?is_enumerable>
|
||||
<#list requiredActions as requiredAction>
|
||||
<#if !requiredAction?is_string>
|
||||
<#continue>
|
||||
</#if>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="requiredAction.${requiredAction}" />
|
||||
</#list>
|
||||
</#if>
|
||||
</#macro>
|
||||
|
||||
</script>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="${xKeycloakify.resourcesPath}/dist/favicon-32x32.png">
|
||||
<script type="module" crossorigin="" src="${xKeycloakify.resourcesPath}/dist/assets/index-6-NnS-wp.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="root"></div>
|
||||
|
||||
|
||||
</body></html>
|
@ -0,0 +1,739 @@
|
||||
<!DOCTYPE html><html><head><script>
|
||||
<#assign xKeycloakify={
|
||||
"messages": {},
|
||||
"pageId": "delete-account-confirm.ftl",
|
||||
"ftlTemplateFileName": "delete-account-confirm.ftl",
|
||||
"themeType": "login",
|
||||
"themeName": "keycloakify-starter",
|
||||
"keycloakifyVersion": "11.4.4",
|
||||
"themeVersion": "0.0.0",
|
||||
"resourcesPath": ""
|
||||
}>
|
||||
|
||||
<#if url?? && url?is_hash && url.resourcesPath?? && url.resourcesPath?is_string>
|
||||
<#assign xKeycloakify = xKeycloakify + { "resourcesPath": url.resourcesPath }>
|
||||
</#if>
|
||||
<#if resourceUrl?? && resourceUrl?is_string>
|
||||
<#assign xKeycloakify = xKeycloakify + { "resourcesPath": resourceUrl }>
|
||||
</#if>
|
||||
|
||||
const kcContext = ${toJsDeclarationString(.data_model, [])?no_esc};
|
||||
kcContext.keycloakifyVersion = "${xKeycloakify.keycloakifyVersion}";
|
||||
kcContext.themeVersion = "${xKeycloakify.themeVersion}";
|
||||
kcContext.themeType = "${xKeycloakify.themeType}";
|
||||
kcContext.themeName = "${xKeycloakify.themeName}";
|
||||
kcContext.pageId = "${xKeycloakify.pageId}";
|
||||
kcContext.ftlTemplateFileName = "${xKeycloakify.ftlTemplateFileName}";
|
||||
|
||||
<@addNonAutomaticallyGatherableMessagesToXKeycloakifyMessages />
|
||||
|
||||
kcContext["x-keycloakify"] = {};
|
||||
|
||||
kcContext["x-keycloakify"].resourcesPath = "${xKeycloakify.resourcesPath}";
|
||||
|
||||
{
|
||||
var messages = {};
|
||||
<#list xKeycloakify.messages as key, resolvedMsg>
|
||||
messages["${key}"] = decodeHtmlEntities("${resolvedMsg?js_string}");
|
||||
</#list>
|
||||
kcContext["x-keycloakify"].messages = messages;
|
||||
}
|
||||
|
||||
if(
|
||||
kcContext.url instanceof Object &&
|
||||
typeof kcContext.url.resourcesPath === "string"
|
||||
){
|
||||
kcContext.url.resourcesCommonPath = kcContext.url.resourcesPath + "/resources-common";
|
||||
}
|
||||
|
||||
if( kcContext.messagesPerField ){
|
||||
var existsError_singleFieldName = kcContext.messagesPerField.existsError;
|
||||
kcContext.messagesPerField.existsError = function (){
|
||||
for( let i = 0; i < arguments.length; i++ ){
|
||||
if( existsError_singleFieldName(arguments[i]) ){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
};
|
||||
kcContext.messagesPerField.exists = function (fieldName) {
|
||||
return kcContext.messagesPerField.get(fieldName) !== "";
|
||||
};
|
||||
kcContext.messagesPerField.printIfExists = function (fieldName, text) {
|
||||
return kcContext.messagesPerField.exists(fieldName) ? text : undefined;
|
||||
};
|
||||
kcContext.messagesPerField.getFirstError = function () {
|
||||
for( let i = 0; i < arguments.length; i++ ){
|
||||
const fieldName = arguments[i];
|
||||
if( kcContext.messagesPerField.existsError(fieldName) ){
|
||||
return kcContext.messagesPerField.get(fieldName);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
attributes_to_attributesByName: {
|
||||
if( !kcContext.profile ){
|
||||
break attributes_to_attributesByName;
|
||||
}
|
||||
if( !kcContext.profile.attributes ){
|
||||
break attributes_to_attributesByName;
|
||||
}
|
||||
var attributes = kcContext.profile.attributes;
|
||||
delete kcContext.profile.attributes;
|
||||
kcContext.profile.attributesByName = {};
|
||||
attributes.forEach(function(attribute){
|
||||
kcContext.profile.attributesByName[attribute.name] = attribute;
|
||||
});
|
||||
}
|
||||
|
||||
redirect_to_dev_server: {
|
||||
|
||||
switch(kcContext.themeType){
|
||||
case "login":
|
||||
break redirect_to_dev_server;
|
||||
case "account":
|
||||
if( kcContext.pageId !== "index.ftl" ){
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
break;
|
||||
case "admin":
|
||||
break;
|
||||
default:
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
|
||||
const devSeverPort = kcContext.properties.KEYCLOAKIFY_SPA_DEV_SERVER_PORT;
|
||||
|
||||
if( !devSeverPort ){
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
|
||||
const redirectUrl = new URL(window.location.href);
|
||||
|
||||
redirectUrl.port = devSeverPort;
|
||||
|
||||
delete kcContext.msgJSON;
|
||||
|
||||
console.log(kcContext);
|
||||
|
||||
redirectUrl.searchParams.set("kcContext", encodeURIComponent(JSON.stringify(kcContext)));
|
||||
|
||||
window.location.href = redirectUrl.toString();
|
||||
|
||||
}
|
||||
|
||||
|
||||
window.kcContext = kcContext;
|
||||
|
||||
|
||||
<#if xKeycloakify.themeType == "login" >
|
||||
{
|
||||
const script = document.createElement("script");
|
||||
script.type = "importmap";
|
||||
script.textContent = JSON.stringify({
|
||||
imports: {
|
||||
"rfc4648": kcContext.url.resourcesCommonPath + "/node_modules/rfc4648/lib/rfc4648.js"
|
||||
}
|
||||
}, null, 2);
|
||||
|
||||
document.head.appendChild(script);
|
||||
}
|
||||
</#if>
|
||||
|
||||
function decodeHtmlEntities(htmlStr){
|
||||
var element = decodeHtmlEntities.element;
|
||||
if (!element) {
|
||||
element = document.createElement("textarea");
|
||||
decodeHtmlEntities.element = element;
|
||||
}
|
||||
element.innerHTML = htmlStr;
|
||||
return element.value;
|
||||
}
|
||||
|
||||
<#function toJsDeclarationString object path>
|
||||
<#local isHash = -1>
|
||||
<#attempt>
|
||||
<#local isHash = object?is_hash || object?is_hash_ex>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't evaluate if " + path?join(".") + " is a hash">
|
||||
</#attempt>
|
||||
|
||||
<#if isHash>
|
||||
<#if path?size gt 10>
|
||||
<#return "ABORT: Too many recursive calls, path: " + path?join(".")>
|
||||
</#if>
|
||||
<#local keys = -1>
|
||||
|
||||
<#attempt>
|
||||
<#local keys = object?keys>
|
||||
<#recover>
|
||||
<#return "ABORT: We can't list keys on object">
|
||||
</#attempt>
|
||||
|
||||
<#local outSeq = []>
|
||||
|
||||
<#list keys as key>
|
||||
<#if ["class","declaredConstructors","superclass","declaringClass" ]?seq_contains(key) >
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if (
|
||||
areSamePath(path, ["url"]) &&
|
||||
["loginUpdatePasswordUrl", "loginUpdateProfileUrl", "loginUsernameReminderUrl", "loginUpdateTotpUrl"]?seq_contains(key)
|
||||
) || (
|
||||
key == "updateProfileCtx" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
<#-- https://github.com/keycloakify/keycloakify/pull/65#issuecomment-991896344 (reports with saml-post-form.ftl) -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/91#issue-1212319466 (reports with error.ftl and Kc18) -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/109#issuecomment-1134610163 -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/357 -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/discussions/406#discussioncomment-7514787 -->
|
||||
key == "loginAction" &&
|
||||
areSamePath(path, ["url"]) &&
|
||||
["saml-post-form.ftl", "error.ftl", "info.ftl", "login-oauth-grant.ftl", "logout-confirm.ftl", "login-oauth2-device-verify-user-code.ftl"]?seq_contains(xKeycloakify.pageId) &&
|
||||
!(auth?has_content && auth.showTryAnotherWayLink())
|
||||
) || (
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/362 -->
|
||||
["secretData", "value"]?seq_contains(key) &&
|
||||
areSamePath(path, [ "totp", "otpCredentials", "*" ])
|
||||
) || (
|
||||
["contextData", "idpConfig", "idp", "authenticationSession"]?seq_contains(key) &&
|
||||
areSamePath(path, ["brokerContext"]) &&
|
||||
["login-idp-link-confirm.ftl", "login-idp-link-email.ftl" ]?seq_contains(xKeycloakify.pageId)
|
||||
) || (
|
||||
key == "identityProviderBrokerCtx" &&
|
||||
areSamePath(path, []) &&
|
||||
["login-idp-link-confirm.ftl", "login-idp-link-email.ftl" ]?seq_contains(xKeycloakify.pageId)
|
||||
) || (
|
||||
["masterAdminClient", "delegateForUpdate", "defaultRole", "smtpConfig"]?seq_contains(key) &&
|
||||
areSamePath(path, ["realm"])
|
||||
) || (
|
||||
xKeycloakify.pageId == "error.ftl" &&
|
||||
areSamePath(path, ["realm"]) &&
|
||||
!["name", "displayName", "displayNameHtml", "internationalizationEnabled", "registrationEmailAsUsername" ]?seq_contains(key)
|
||||
) || (
|
||||
xKeycloakify.pageId == "applications.ftl" &&
|
||||
(
|
||||
key == "realm" ||
|
||||
key == "container"
|
||||
) &&
|
||||
isSubpath(path, ["applications", "applications"])
|
||||
) || (
|
||||
key == "delegateForUpdate" &&
|
||||
areSamePath(path, ["user"])
|
||||
) || (
|
||||
<#-- Security audit forwarded by Garth (Gmail) -->
|
||||
key == "saml.signing.private.key" &&
|
||||
areSamePath(path, ["client", "attributes"])
|
||||
) || (
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/534 -->
|
||||
key == "password" &&
|
||||
areSamePath(path, ["login"])
|
||||
) || (
|
||||
<#-- Remove realmAttributes added by https://github.com/jcputney/keycloak-theme-additional-info-extension for peace of mind. -->
|
||||
key == "realmAttributes" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
<#-- attributesByName adds a lot of noise to the output and is not needed, we already have profile.attributes -->
|
||||
key == "attributesByName" &&
|
||||
areSamePath(path, ["profile"])
|
||||
) || (
|
||||
<#-- We already have the attributes in profile speedup the rendering by filtering it out from the register object -->
|
||||
(key == "attributes" || key == "attributesByName") &&
|
||||
areSamePath(path, ["register"])
|
||||
) || (
|
||||
areSamePath(path, ["properties"]) &&
|
||||
(
|
||||
key?starts_with("kc") ||
|
||||
key == "locales" ||
|
||||
key == "import" ||
|
||||
key == "parent" ||
|
||||
key == "meta" ||
|
||||
key == "stylesCommon" ||
|
||||
key == "styles" ||
|
||||
key == "accountResourceProvider"
|
||||
)
|
||||
) || (
|
||||
key == "execution" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
key == "entity" &&
|
||||
areSamePath(path, ["user"])
|
||||
) || (
|
||||
key == "attributes" &&
|
||||
areSamePath(path, ["realm"])
|
||||
) || (
|
||||
xKeycloakify.pageId == "index.ftl" &&
|
||||
xKeycloakify.themeType == "account" &&
|
||||
areSamePath(path, ["realm"]) &&
|
||||
![
|
||||
"name",
|
||||
"registrationEmailAsUsername",
|
||||
"editUsernameAllowed",
|
||||
"isInternationalizationEnabled",
|
||||
"identityFederationEnabled",
|
||||
"userManagedAccessAllowed"
|
||||
]?seq_contains(key)
|
||||
) || (
|
||||
["flowContext", "session", "realm"]?seq_contains(key) &&
|
||||
areSamePath(path, ["social"])
|
||||
)
|
||||
>
|
||||
<#-- <#local outSeq += ["/*" + path?join(".") + "." + key + " excluded*/"]> -->
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#-- https://github.com/keycloakify/keycloakify/discussions/406 -->
|
||||
<#if (
|
||||
key == "attemptedUsername" &&
|
||||
areSamePath(path, ["auth"]) &&
|
||||
[
|
||||
"register.ftl", "terms.ftl", "info.ftl", "login.ftl",
|
||||
"login-update-password.ftl", "login-oauth2-device-verify-user-code.ftl"
|
||||
]?seq_contains(xKeycloakify.pageId)
|
||||
)>
|
||||
<#attempt>
|
||||
<#-- https://github.com/keycloak/keycloak/blob/3a2bf0c04bcde185e497aaa32d0bb7ab7520cf4a/themes/src/main/resources/theme/base/login/template.ftl#L63 -->
|
||||
<#if !(auth?has_content && auth.showUsername() && !auth.showResetCredentials())>
|
||||
<#local outSeq += ["/*" + path?join(".") + "." + key + " excluded*/"]>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Accessing attemptedUsername throwed an exception */"]>
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
|
||||
|
||||
<#attempt>
|
||||
<#if !object[key]??>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Couldn't test if '" + key + "' is available on this object*/"]>
|
||||
<#continue>
|
||||
</#attempt>
|
||||
|
||||
<#local propertyValue = -1>
|
||||
|
||||
<#attempt>
|
||||
<#local propertyValue = object[key]>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Couldn't dereference '" + key + "' on this object*/"]>
|
||||
<#continue>
|
||||
</#attempt>
|
||||
|
||||
<#local recOut = toJsDeclarationString(propertyValue, path + [ key ])>
|
||||
|
||||
<#if recOut?starts_with("ABORT:")>
|
||||
|
||||
<#local errorMessage = recOut?remove_beginning("ABORT:")>
|
||||
|
||||
<#if errorMessage != " It's a method" >
|
||||
<#local outSeq += ["/*" + key + ": " + errorMessage + "*/"]>
|
||||
</#if>
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local outSeq += ['"' + key + '": ' + recOut + ","]>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return (["{"] + outSeq?map(str -> ""?right_pad(4 * (path?size + 1)) + str) + [ ""?right_pad(4 * path?size) + "}"])?join("\n")>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local isMethod = -1>
|
||||
<#attempt>
|
||||
<#local isMethod = object?is_method>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it'sa method.">
|
||||
</#attempt>
|
||||
|
||||
<#if isMethod>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showUsername"])>
|
||||
<#attempt>
|
||||
<#return auth.showUsername()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showUsername()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showResetCredentials"])>
|
||||
<#attempt>
|
||||
<#return auth.showResetCredentials()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showResetCredentials()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showTryAnotherWayLink"])>
|
||||
<#attempt>
|
||||
<#return auth.showTryAnotherWayLink()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showTryAnotherWayLink()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["url", "getLogoutUrl"])>
|
||||
<#local returnValue = -1>
|
||||
<#attempt>
|
||||
<#local returnValue = url.getLogoutUrl()>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate url.getLogoutUrl()">
|
||||
</#attempt>
|
||||
<#return 'function(){ return "' + returnValue + '"; }'>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["totp", "policy", "getAlgorithmKey"])>
|
||||
<#local returnValue = "error">
|
||||
<#if mode?? && mode = "manual">
|
||||
<#attempt>
|
||||
<#local returnValue = totp.policy.getAlgorithmKey()>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate totp.policy.getAlgorithmKey()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
<#return 'function(){ return "' + returnValue + '"; }'>
|
||||
</#if>
|
||||
|
||||
<#assign fieldNames = ["firstName", "lastName", "email", "username", "password", "password-confirm", "global", "totp", "userLabel", "recoveryCodeInput", "termsAccepted"]>
|
||||
<#if profile?? && profile.attributes??>
|
||||
<#list profile.attributes as attribute>
|
||||
<#if fieldNames?seq_contains(attribute.name)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#assign fieldNames += [attribute.name]>
|
||||
</#list>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["messagesPerField", "get"])>
|
||||
|
||||
<#local jsFunctionCode = "function (fieldName) { ">
|
||||
|
||||
<#list fieldNames as fieldName>
|
||||
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/217 -->
|
||||
<#if xKeycloakify.pageId == "login.ftl" >
|
||||
|
||||
<#if fieldName == "username">
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === 'username' || fieldName === 'password' ){ ">
|
||||
|
||||
<#if messagesPerField.exists('username') || messagesPerField.exists('password')>
|
||||
<#local jsFunctionCode += "return kcContext.message && kcContext.message.summary ? kcContext.message.summary : 'error'; ">
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return ''; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if fieldName == "password">
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === '" + fieldName + "'){ ">
|
||||
|
||||
<#if messagesPerField.exists('${fieldName}')>
|
||||
<#local jsFunctionCode += 'return decodeHtmlEntities("' + messagesPerField.get('${fieldName}')?js_string + '"); '>
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return ''; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
</#list>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
<#return jsFunctionCode>
|
||||
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["messagesPerField", "existsError"])>
|
||||
|
||||
<#local jsFunctionCode = "function (fieldName) { ">
|
||||
|
||||
<#list fieldNames as fieldName>
|
||||
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/217 -->
|
||||
<#if xKeycloakify.pageId == "login.ftl" >
|
||||
<#if fieldName == "username">
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === 'username' || fieldName === 'password' ){ ">
|
||||
|
||||
<#if messagesPerField.existsError('username') || messagesPerField.existsError('password')>
|
||||
<#local jsFunctionCode += "return true; ">
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return false; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if fieldName == "password">
|
||||
<#continue>
|
||||
</#if>
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === '" + fieldName + "' ){ ">
|
||||
|
||||
<#if messagesPerField.existsError('${fieldName}')>
|
||||
<#local jsFunctionCode += 'return true; '>
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return false; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
</#list>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
<#return jsFunctionCode>
|
||||
|
||||
</#if>
|
||||
|
||||
<#if xKeycloakify.themeType == "account" && areSamePath(path, ["realm", "isInternationalizationEnabled"])>
|
||||
<#attempt>
|
||||
<#return realm.isInternationalizationEnabled()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate realm.isInternationalizationEnabled()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#return "ABORT: It's a method">
|
||||
</#if>
|
||||
|
||||
<#local isBoolean = -1>
|
||||
<#attempt>
|
||||
<#local isBoolean = object?is_boolean>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a boolean">
|
||||
</#attempt>
|
||||
|
||||
<#if isBoolean>
|
||||
<#return object?c>
|
||||
</#if>
|
||||
|
||||
<#local isEnumerable = -1>
|
||||
<#attempt>
|
||||
<#local isEnumerable = object?is_enumerable>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's an enumerable">
|
||||
</#attempt>
|
||||
|
||||
|
||||
<#if isEnumerable>
|
||||
|
||||
<#local outSeq = []>
|
||||
|
||||
<#local i = 0>
|
||||
|
||||
<#list object as array_item>
|
||||
|
||||
<#if !array_item??>
|
||||
<#local outSeq += ["null,"]>
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local recOut = toJsDeclarationString(array_item, path + [ i ])>
|
||||
|
||||
<#local i = i + 1>
|
||||
|
||||
<#if recOut?starts_with("ABORT:")>
|
||||
|
||||
<#local errorMessage = recOut?remove_beginning("ABORT:")>
|
||||
|
||||
<#if errorMessage != " It's a method" >
|
||||
<#local outSeq += ["/*" + i?string + ": " + errorMessage + "*/"]>
|
||||
</#if>
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local outSeq += [recOut + ","]>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return (["["] + outSeq?map(str -> ""?right_pad(4 * (path?size + 1)) + str) + [ ""?right_pad(4 * path?size) + "]"])?join("\n")>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local isDate = -1>
|
||||
<#attempt>
|
||||
<#local isDate = object?is_date_like>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a date">
|
||||
</#attempt>
|
||||
|
||||
<#if isDate>
|
||||
<#return '"' + object?datetime?iso_utc + '"'>
|
||||
</#if>
|
||||
|
||||
<#local isNumber = -1>
|
||||
<#attempt>
|
||||
<#local isNumber = object?is_number>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a number">
|
||||
</#attempt>
|
||||
|
||||
<#if isNumber>
|
||||
<#return object?c>
|
||||
</#if>
|
||||
|
||||
<#local isString = -1>
|
||||
<#attempt>
|
||||
<#local isString = object?is_string>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a string">
|
||||
</#attempt>
|
||||
|
||||
<#if isString>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str=object />
|
||||
</#if>
|
||||
|
||||
<#attempt>
|
||||
<#return '"' + object?js_string + '"'>;
|
||||
<#recover>
|
||||
</#attempt>
|
||||
|
||||
<#return "ABORT: Couldn't convert into string non hash, non method, non boolean, non number, non enumerable object">
|
||||
|
||||
</#function>
|
||||
<#function isSubpath path searchedPath>
|
||||
|
||||
<#if path?size < searchedPath?size>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#local i=0>
|
||||
|
||||
<#list path as property>
|
||||
|
||||
<#if i == searchedPath?size >
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local searchedProperty=searchedPath[i]>
|
||||
|
||||
<#local i+= 1>
|
||||
|
||||
<#if searchedProperty?is_string && searchedProperty == "*">
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?is_string && !property?is_string>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?is_number && !property?is_number>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?string != property?string>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return true>
|
||||
|
||||
</#function>
|
||||
|
||||
<#function areSamePath path searchedPath>
|
||||
<#return path?size == searchedPath?size && isSubpath(path, searchedPath)>
|
||||
</#function>
|
||||
|
||||
<#macro addToXKeycloakifyMessagesIfMessageKey str>
|
||||
<#if !msg?? || !msg?is_method>
|
||||
<#return>
|
||||
</#if>
|
||||
<#if (str?length > 200)>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local key=removeBrackets(str)>
|
||||
<#if key?length==0>
|
||||
<#return>
|
||||
</#if>
|
||||
<#if !(key?matches(r"^[a-zA-Z0-9-_.]*$"))>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local resolvedMsg=msg(key)>
|
||||
<#if resolvedMsg==key>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local messages=xKeycloakify.messages>
|
||||
<#local messages = messages + { key: resolvedMsg }>
|
||||
<#assign xKeycloakify = xKeycloakify + { "messages": messages }>
|
||||
</#macro>
|
||||
|
||||
<#function removeBrackets str>
|
||||
<#if str?starts_with("${") && str?ends_with("}")>
|
||||
<#return str[2..(str?length-2)]>
|
||||
<#else>
|
||||
<#return str>
|
||||
</#if>
|
||||
</#function>
|
||||
|
||||
<#macro addNonAutomaticallyGatherableMessagesToXKeycloakifyMessages>
|
||||
<#if profile?? && profile?is_hash && profile.attributes?? && profile.attributes?is_enumerable>
|
||||
<#list profile.attributes as attribute>
|
||||
<#if !(
|
||||
attribute.annotations?? && attribute.annotations?is_hash &&
|
||||
attribute.annotations.inputOptionLabelsI18nPrefix?? && attribute.annotations.inputOptionLabelsI18nPrefix?is_string
|
||||
)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#local prefix=attribute.annotations.inputOptionLabelsI18nPrefix>
|
||||
<#if !(
|
||||
attribute.validators?? && attribute.validators?is_hash &&
|
||||
attribute.validators.options?? && attribute.validators.options?is_hash &&
|
||||
attribute.validators.options.options?? && attribute.validators.options.options?is_enumerable
|
||||
)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#list attribute.validators.options.options as option>
|
||||
<#if !option?is_string>
|
||||
<#continue>
|
||||
</#if>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="${prefix}.${option}" />
|
||||
</#list>
|
||||
</#list>
|
||||
</#if>
|
||||
<#if xKeycloakify.pageId == "terms.ftl" || termsAcceptanceRequired?? && termsAcceptanceRequired>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="termsText" />
|
||||
</#if>
|
||||
<#if requiredActions?? && requiredActions?is_enumerable>
|
||||
<#list requiredActions as requiredAction>
|
||||
<#if !requiredAction?is_string>
|
||||
<#continue>
|
||||
</#if>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="requiredAction.${requiredAction}" />
|
||||
</#list>
|
||||
</#if>
|
||||
</#macro>
|
||||
|
||||
</script>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="${xKeycloakify.resourcesPath}/dist/favicon-32x32.png">
|
||||
<script type="module" crossorigin="" src="${xKeycloakify.resourcesPath}/dist/assets/index-6-NnS-wp.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="root"></div>
|
||||
|
||||
|
||||
</body></html>
|
@ -0,0 +1,739 @@
|
||||
<!DOCTYPE html><html><head><script>
|
||||
<#assign xKeycloakify={
|
||||
"messages": {},
|
||||
"pageId": "delete-credential.ftl",
|
||||
"ftlTemplateFileName": "delete-credential.ftl",
|
||||
"themeType": "login",
|
||||
"themeName": "keycloakify-starter",
|
||||
"keycloakifyVersion": "11.4.4",
|
||||
"themeVersion": "0.0.0",
|
||||
"resourcesPath": ""
|
||||
}>
|
||||
|
||||
<#if url?? && url?is_hash && url.resourcesPath?? && url.resourcesPath?is_string>
|
||||
<#assign xKeycloakify = xKeycloakify + { "resourcesPath": url.resourcesPath }>
|
||||
</#if>
|
||||
<#if resourceUrl?? && resourceUrl?is_string>
|
||||
<#assign xKeycloakify = xKeycloakify + { "resourcesPath": resourceUrl }>
|
||||
</#if>
|
||||
|
||||
const kcContext = ${toJsDeclarationString(.data_model, [])?no_esc};
|
||||
kcContext.keycloakifyVersion = "${xKeycloakify.keycloakifyVersion}";
|
||||
kcContext.themeVersion = "${xKeycloakify.themeVersion}";
|
||||
kcContext.themeType = "${xKeycloakify.themeType}";
|
||||
kcContext.themeName = "${xKeycloakify.themeName}";
|
||||
kcContext.pageId = "${xKeycloakify.pageId}";
|
||||
kcContext.ftlTemplateFileName = "${xKeycloakify.ftlTemplateFileName}";
|
||||
|
||||
<@addNonAutomaticallyGatherableMessagesToXKeycloakifyMessages />
|
||||
|
||||
kcContext["x-keycloakify"] = {};
|
||||
|
||||
kcContext["x-keycloakify"].resourcesPath = "${xKeycloakify.resourcesPath}";
|
||||
|
||||
{
|
||||
var messages = {};
|
||||
<#list xKeycloakify.messages as key, resolvedMsg>
|
||||
messages["${key}"] = decodeHtmlEntities("${resolvedMsg?js_string}");
|
||||
</#list>
|
||||
kcContext["x-keycloakify"].messages = messages;
|
||||
}
|
||||
|
||||
if(
|
||||
kcContext.url instanceof Object &&
|
||||
typeof kcContext.url.resourcesPath === "string"
|
||||
){
|
||||
kcContext.url.resourcesCommonPath = kcContext.url.resourcesPath + "/resources-common";
|
||||
}
|
||||
|
||||
if( kcContext.messagesPerField ){
|
||||
var existsError_singleFieldName = kcContext.messagesPerField.existsError;
|
||||
kcContext.messagesPerField.existsError = function (){
|
||||
for( let i = 0; i < arguments.length; i++ ){
|
||||
if( existsError_singleFieldName(arguments[i]) ){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
};
|
||||
kcContext.messagesPerField.exists = function (fieldName) {
|
||||
return kcContext.messagesPerField.get(fieldName) !== "";
|
||||
};
|
||||
kcContext.messagesPerField.printIfExists = function (fieldName, text) {
|
||||
return kcContext.messagesPerField.exists(fieldName) ? text : undefined;
|
||||
};
|
||||
kcContext.messagesPerField.getFirstError = function () {
|
||||
for( let i = 0; i < arguments.length; i++ ){
|
||||
const fieldName = arguments[i];
|
||||
if( kcContext.messagesPerField.existsError(fieldName) ){
|
||||
return kcContext.messagesPerField.get(fieldName);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
attributes_to_attributesByName: {
|
||||
if( !kcContext.profile ){
|
||||
break attributes_to_attributesByName;
|
||||
}
|
||||
if( !kcContext.profile.attributes ){
|
||||
break attributes_to_attributesByName;
|
||||
}
|
||||
var attributes = kcContext.profile.attributes;
|
||||
delete kcContext.profile.attributes;
|
||||
kcContext.profile.attributesByName = {};
|
||||
attributes.forEach(function(attribute){
|
||||
kcContext.profile.attributesByName[attribute.name] = attribute;
|
||||
});
|
||||
}
|
||||
|
||||
redirect_to_dev_server: {
|
||||
|
||||
switch(kcContext.themeType){
|
||||
case "login":
|
||||
break redirect_to_dev_server;
|
||||
case "account":
|
||||
if( kcContext.pageId !== "index.ftl" ){
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
break;
|
||||
case "admin":
|
||||
break;
|
||||
default:
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
|
||||
const devSeverPort = kcContext.properties.KEYCLOAKIFY_SPA_DEV_SERVER_PORT;
|
||||
|
||||
if( !devSeverPort ){
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
|
||||
const redirectUrl = new URL(window.location.href);
|
||||
|
||||
redirectUrl.port = devSeverPort;
|
||||
|
||||
delete kcContext.msgJSON;
|
||||
|
||||
console.log(kcContext);
|
||||
|
||||
redirectUrl.searchParams.set("kcContext", encodeURIComponent(JSON.stringify(kcContext)));
|
||||
|
||||
window.location.href = redirectUrl.toString();
|
||||
|
||||
}
|
||||
|
||||
|
||||
window.kcContext = kcContext;
|
||||
|
||||
|
||||
<#if xKeycloakify.themeType == "login" >
|
||||
{
|
||||
const script = document.createElement("script");
|
||||
script.type = "importmap";
|
||||
script.textContent = JSON.stringify({
|
||||
imports: {
|
||||
"rfc4648": kcContext.url.resourcesCommonPath + "/node_modules/rfc4648/lib/rfc4648.js"
|
||||
}
|
||||
}, null, 2);
|
||||
|
||||
document.head.appendChild(script);
|
||||
}
|
||||
</#if>
|
||||
|
||||
function decodeHtmlEntities(htmlStr){
|
||||
var element = decodeHtmlEntities.element;
|
||||
if (!element) {
|
||||
element = document.createElement("textarea");
|
||||
decodeHtmlEntities.element = element;
|
||||
}
|
||||
element.innerHTML = htmlStr;
|
||||
return element.value;
|
||||
}
|
||||
|
||||
<#function toJsDeclarationString object path>
|
||||
<#local isHash = -1>
|
||||
<#attempt>
|
||||
<#local isHash = object?is_hash || object?is_hash_ex>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't evaluate if " + path?join(".") + " is a hash">
|
||||
</#attempt>
|
||||
|
||||
<#if isHash>
|
||||
<#if path?size gt 10>
|
||||
<#return "ABORT: Too many recursive calls, path: " + path?join(".")>
|
||||
</#if>
|
||||
<#local keys = -1>
|
||||
|
||||
<#attempt>
|
||||
<#local keys = object?keys>
|
||||
<#recover>
|
||||
<#return "ABORT: We can't list keys on object">
|
||||
</#attempt>
|
||||
|
||||
<#local outSeq = []>
|
||||
|
||||
<#list keys as key>
|
||||
<#if ["class","declaredConstructors","superclass","declaringClass" ]?seq_contains(key) >
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if (
|
||||
areSamePath(path, ["url"]) &&
|
||||
["loginUpdatePasswordUrl", "loginUpdateProfileUrl", "loginUsernameReminderUrl", "loginUpdateTotpUrl"]?seq_contains(key)
|
||||
) || (
|
||||
key == "updateProfileCtx" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
<#-- https://github.com/keycloakify/keycloakify/pull/65#issuecomment-991896344 (reports with saml-post-form.ftl) -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/91#issue-1212319466 (reports with error.ftl and Kc18) -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/109#issuecomment-1134610163 -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/357 -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/discussions/406#discussioncomment-7514787 -->
|
||||
key == "loginAction" &&
|
||||
areSamePath(path, ["url"]) &&
|
||||
["saml-post-form.ftl", "error.ftl", "info.ftl", "login-oauth-grant.ftl", "logout-confirm.ftl", "login-oauth2-device-verify-user-code.ftl"]?seq_contains(xKeycloakify.pageId) &&
|
||||
!(auth?has_content && auth.showTryAnotherWayLink())
|
||||
) || (
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/362 -->
|
||||
["secretData", "value"]?seq_contains(key) &&
|
||||
areSamePath(path, [ "totp", "otpCredentials", "*" ])
|
||||
) || (
|
||||
["contextData", "idpConfig", "idp", "authenticationSession"]?seq_contains(key) &&
|
||||
areSamePath(path, ["brokerContext"]) &&
|
||||
["login-idp-link-confirm.ftl", "login-idp-link-email.ftl" ]?seq_contains(xKeycloakify.pageId)
|
||||
) || (
|
||||
key == "identityProviderBrokerCtx" &&
|
||||
areSamePath(path, []) &&
|
||||
["login-idp-link-confirm.ftl", "login-idp-link-email.ftl" ]?seq_contains(xKeycloakify.pageId)
|
||||
) || (
|
||||
["masterAdminClient", "delegateForUpdate", "defaultRole", "smtpConfig"]?seq_contains(key) &&
|
||||
areSamePath(path, ["realm"])
|
||||
) || (
|
||||
xKeycloakify.pageId == "error.ftl" &&
|
||||
areSamePath(path, ["realm"]) &&
|
||||
!["name", "displayName", "displayNameHtml", "internationalizationEnabled", "registrationEmailAsUsername" ]?seq_contains(key)
|
||||
) || (
|
||||
xKeycloakify.pageId == "applications.ftl" &&
|
||||
(
|
||||
key == "realm" ||
|
||||
key == "container"
|
||||
) &&
|
||||
isSubpath(path, ["applications", "applications"])
|
||||
) || (
|
||||
key == "delegateForUpdate" &&
|
||||
areSamePath(path, ["user"])
|
||||
) || (
|
||||
<#-- Security audit forwarded by Garth (Gmail) -->
|
||||
key == "saml.signing.private.key" &&
|
||||
areSamePath(path, ["client", "attributes"])
|
||||
) || (
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/534 -->
|
||||
key == "password" &&
|
||||
areSamePath(path, ["login"])
|
||||
) || (
|
||||
<#-- Remove realmAttributes added by https://github.com/jcputney/keycloak-theme-additional-info-extension for peace of mind. -->
|
||||
key == "realmAttributes" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
<#-- attributesByName adds a lot of noise to the output and is not needed, we already have profile.attributes -->
|
||||
key == "attributesByName" &&
|
||||
areSamePath(path, ["profile"])
|
||||
) || (
|
||||
<#-- We already have the attributes in profile speedup the rendering by filtering it out from the register object -->
|
||||
(key == "attributes" || key == "attributesByName") &&
|
||||
areSamePath(path, ["register"])
|
||||
) || (
|
||||
areSamePath(path, ["properties"]) &&
|
||||
(
|
||||
key?starts_with("kc") ||
|
||||
key == "locales" ||
|
||||
key == "import" ||
|
||||
key == "parent" ||
|
||||
key == "meta" ||
|
||||
key == "stylesCommon" ||
|
||||
key == "styles" ||
|
||||
key == "accountResourceProvider"
|
||||
)
|
||||
) || (
|
||||
key == "execution" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
key == "entity" &&
|
||||
areSamePath(path, ["user"])
|
||||
) || (
|
||||
key == "attributes" &&
|
||||
areSamePath(path, ["realm"])
|
||||
) || (
|
||||
xKeycloakify.pageId == "index.ftl" &&
|
||||
xKeycloakify.themeType == "account" &&
|
||||
areSamePath(path, ["realm"]) &&
|
||||
![
|
||||
"name",
|
||||
"registrationEmailAsUsername",
|
||||
"editUsernameAllowed",
|
||||
"isInternationalizationEnabled",
|
||||
"identityFederationEnabled",
|
||||
"userManagedAccessAllowed"
|
||||
]?seq_contains(key)
|
||||
) || (
|
||||
["flowContext", "session", "realm"]?seq_contains(key) &&
|
||||
areSamePath(path, ["social"])
|
||||
)
|
||||
>
|
||||
<#-- <#local outSeq += ["/*" + path?join(".") + "." + key + " excluded*/"]> -->
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#-- https://github.com/keycloakify/keycloakify/discussions/406 -->
|
||||
<#if (
|
||||
key == "attemptedUsername" &&
|
||||
areSamePath(path, ["auth"]) &&
|
||||
[
|
||||
"register.ftl", "terms.ftl", "info.ftl", "login.ftl",
|
||||
"login-update-password.ftl", "login-oauth2-device-verify-user-code.ftl"
|
||||
]?seq_contains(xKeycloakify.pageId)
|
||||
)>
|
||||
<#attempt>
|
||||
<#-- https://github.com/keycloak/keycloak/blob/3a2bf0c04bcde185e497aaa32d0bb7ab7520cf4a/themes/src/main/resources/theme/base/login/template.ftl#L63 -->
|
||||
<#if !(auth?has_content && auth.showUsername() && !auth.showResetCredentials())>
|
||||
<#local outSeq += ["/*" + path?join(".") + "." + key + " excluded*/"]>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Accessing attemptedUsername throwed an exception */"]>
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
|
||||
|
||||
<#attempt>
|
||||
<#if !object[key]??>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Couldn't test if '" + key + "' is available on this object*/"]>
|
||||
<#continue>
|
||||
</#attempt>
|
||||
|
||||
<#local propertyValue = -1>
|
||||
|
||||
<#attempt>
|
||||
<#local propertyValue = object[key]>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Couldn't dereference '" + key + "' on this object*/"]>
|
||||
<#continue>
|
||||
</#attempt>
|
||||
|
||||
<#local recOut = toJsDeclarationString(propertyValue, path + [ key ])>
|
||||
|
||||
<#if recOut?starts_with("ABORT:")>
|
||||
|
||||
<#local errorMessage = recOut?remove_beginning("ABORT:")>
|
||||
|
||||
<#if errorMessage != " It's a method" >
|
||||
<#local outSeq += ["/*" + key + ": " + errorMessage + "*/"]>
|
||||
</#if>
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local outSeq += ['"' + key + '": ' + recOut + ","]>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return (["{"] + outSeq?map(str -> ""?right_pad(4 * (path?size + 1)) + str) + [ ""?right_pad(4 * path?size) + "}"])?join("\n")>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local isMethod = -1>
|
||||
<#attempt>
|
||||
<#local isMethod = object?is_method>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it'sa method.">
|
||||
</#attempt>
|
||||
|
||||
<#if isMethod>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showUsername"])>
|
||||
<#attempt>
|
||||
<#return auth.showUsername()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showUsername()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showResetCredentials"])>
|
||||
<#attempt>
|
||||
<#return auth.showResetCredentials()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showResetCredentials()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showTryAnotherWayLink"])>
|
||||
<#attempt>
|
||||
<#return auth.showTryAnotherWayLink()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showTryAnotherWayLink()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["url", "getLogoutUrl"])>
|
||||
<#local returnValue = -1>
|
||||
<#attempt>
|
||||
<#local returnValue = url.getLogoutUrl()>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate url.getLogoutUrl()">
|
||||
</#attempt>
|
||||
<#return 'function(){ return "' + returnValue + '"; }'>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["totp", "policy", "getAlgorithmKey"])>
|
||||
<#local returnValue = "error">
|
||||
<#if mode?? && mode = "manual">
|
||||
<#attempt>
|
||||
<#local returnValue = totp.policy.getAlgorithmKey()>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate totp.policy.getAlgorithmKey()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
<#return 'function(){ return "' + returnValue + '"; }'>
|
||||
</#if>
|
||||
|
||||
<#assign fieldNames = ["firstName", "lastName", "email", "username", "password", "password-confirm", "global", "totp", "userLabel", "recoveryCodeInput", "termsAccepted"]>
|
||||
<#if profile?? && profile.attributes??>
|
||||
<#list profile.attributes as attribute>
|
||||
<#if fieldNames?seq_contains(attribute.name)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#assign fieldNames += [attribute.name]>
|
||||
</#list>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["messagesPerField", "get"])>
|
||||
|
||||
<#local jsFunctionCode = "function (fieldName) { ">
|
||||
|
||||
<#list fieldNames as fieldName>
|
||||
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/217 -->
|
||||
<#if xKeycloakify.pageId == "login.ftl" >
|
||||
|
||||
<#if fieldName == "username">
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === 'username' || fieldName === 'password' ){ ">
|
||||
|
||||
<#if messagesPerField.exists('username') || messagesPerField.exists('password')>
|
||||
<#local jsFunctionCode += "return kcContext.message && kcContext.message.summary ? kcContext.message.summary : 'error'; ">
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return ''; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if fieldName == "password">
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === '" + fieldName + "'){ ">
|
||||
|
||||
<#if messagesPerField.exists('${fieldName}')>
|
||||
<#local jsFunctionCode += 'return decodeHtmlEntities("' + messagesPerField.get('${fieldName}')?js_string + '"); '>
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return ''; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
</#list>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
<#return jsFunctionCode>
|
||||
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["messagesPerField", "existsError"])>
|
||||
|
||||
<#local jsFunctionCode = "function (fieldName) { ">
|
||||
|
||||
<#list fieldNames as fieldName>
|
||||
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/217 -->
|
||||
<#if xKeycloakify.pageId == "login.ftl" >
|
||||
<#if fieldName == "username">
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === 'username' || fieldName === 'password' ){ ">
|
||||
|
||||
<#if messagesPerField.existsError('username') || messagesPerField.existsError('password')>
|
||||
<#local jsFunctionCode += "return true; ">
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return false; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if fieldName == "password">
|
||||
<#continue>
|
||||
</#if>
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === '" + fieldName + "' ){ ">
|
||||
|
||||
<#if messagesPerField.existsError('${fieldName}')>
|
||||
<#local jsFunctionCode += 'return true; '>
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return false; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
</#list>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
<#return jsFunctionCode>
|
||||
|
||||
</#if>
|
||||
|
||||
<#if xKeycloakify.themeType == "account" && areSamePath(path, ["realm", "isInternationalizationEnabled"])>
|
||||
<#attempt>
|
||||
<#return realm.isInternationalizationEnabled()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate realm.isInternationalizationEnabled()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#return "ABORT: It's a method">
|
||||
</#if>
|
||||
|
||||
<#local isBoolean = -1>
|
||||
<#attempt>
|
||||
<#local isBoolean = object?is_boolean>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a boolean">
|
||||
</#attempt>
|
||||
|
||||
<#if isBoolean>
|
||||
<#return object?c>
|
||||
</#if>
|
||||
|
||||
<#local isEnumerable = -1>
|
||||
<#attempt>
|
||||
<#local isEnumerable = object?is_enumerable>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's an enumerable">
|
||||
</#attempt>
|
||||
|
||||
|
||||
<#if isEnumerable>
|
||||
|
||||
<#local outSeq = []>
|
||||
|
||||
<#local i = 0>
|
||||
|
||||
<#list object as array_item>
|
||||
|
||||
<#if !array_item??>
|
||||
<#local outSeq += ["null,"]>
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local recOut = toJsDeclarationString(array_item, path + [ i ])>
|
||||
|
||||
<#local i = i + 1>
|
||||
|
||||
<#if recOut?starts_with("ABORT:")>
|
||||
|
||||
<#local errorMessage = recOut?remove_beginning("ABORT:")>
|
||||
|
||||
<#if errorMessage != " It's a method" >
|
||||
<#local outSeq += ["/*" + i?string + ": " + errorMessage + "*/"]>
|
||||
</#if>
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local outSeq += [recOut + ","]>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return (["["] + outSeq?map(str -> ""?right_pad(4 * (path?size + 1)) + str) + [ ""?right_pad(4 * path?size) + "]"])?join("\n")>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local isDate = -1>
|
||||
<#attempt>
|
||||
<#local isDate = object?is_date_like>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a date">
|
||||
</#attempt>
|
||||
|
||||
<#if isDate>
|
||||
<#return '"' + object?datetime?iso_utc + '"'>
|
||||
</#if>
|
||||
|
||||
<#local isNumber = -1>
|
||||
<#attempt>
|
||||
<#local isNumber = object?is_number>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a number">
|
||||
</#attempt>
|
||||
|
||||
<#if isNumber>
|
||||
<#return object?c>
|
||||
</#if>
|
||||
|
||||
<#local isString = -1>
|
||||
<#attempt>
|
||||
<#local isString = object?is_string>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a string">
|
||||
</#attempt>
|
||||
|
||||
<#if isString>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str=object />
|
||||
</#if>
|
||||
|
||||
<#attempt>
|
||||
<#return '"' + object?js_string + '"'>;
|
||||
<#recover>
|
||||
</#attempt>
|
||||
|
||||
<#return "ABORT: Couldn't convert into string non hash, non method, non boolean, non number, non enumerable object">
|
||||
|
||||
</#function>
|
||||
<#function isSubpath path searchedPath>
|
||||
|
||||
<#if path?size < searchedPath?size>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#local i=0>
|
||||
|
||||
<#list path as property>
|
||||
|
||||
<#if i == searchedPath?size >
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local searchedProperty=searchedPath[i]>
|
||||
|
||||
<#local i+= 1>
|
||||
|
||||
<#if searchedProperty?is_string && searchedProperty == "*">
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?is_string && !property?is_string>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?is_number && !property?is_number>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?string != property?string>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return true>
|
||||
|
||||
</#function>
|
||||
|
||||
<#function areSamePath path searchedPath>
|
||||
<#return path?size == searchedPath?size && isSubpath(path, searchedPath)>
|
||||
</#function>
|
||||
|
||||
<#macro addToXKeycloakifyMessagesIfMessageKey str>
|
||||
<#if !msg?? || !msg?is_method>
|
||||
<#return>
|
||||
</#if>
|
||||
<#if (str?length > 200)>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local key=removeBrackets(str)>
|
||||
<#if key?length==0>
|
||||
<#return>
|
||||
</#if>
|
||||
<#if !(key?matches(r"^[a-zA-Z0-9-_.]*$"))>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local resolvedMsg=msg(key)>
|
||||
<#if resolvedMsg==key>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local messages=xKeycloakify.messages>
|
||||
<#local messages = messages + { key: resolvedMsg }>
|
||||
<#assign xKeycloakify = xKeycloakify + { "messages": messages }>
|
||||
</#macro>
|
||||
|
||||
<#function removeBrackets str>
|
||||
<#if str?starts_with("${") && str?ends_with("}")>
|
||||
<#return str[2..(str?length-2)]>
|
||||
<#else>
|
||||
<#return str>
|
||||
</#if>
|
||||
</#function>
|
||||
|
||||
<#macro addNonAutomaticallyGatherableMessagesToXKeycloakifyMessages>
|
||||
<#if profile?? && profile?is_hash && profile.attributes?? && profile.attributes?is_enumerable>
|
||||
<#list profile.attributes as attribute>
|
||||
<#if !(
|
||||
attribute.annotations?? && attribute.annotations?is_hash &&
|
||||
attribute.annotations.inputOptionLabelsI18nPrefix?? && attribute.annotations.inputOptionLabelsI18nPrefix?is_string
|
||||
)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#local prefix=attribute.annotations.inputOptionLabelsI18nPrefix>
|
||||
<#if !(
|
||||
attribute.validators?? && attribute.validators?is_hash &&
|
||||
attribute.validators.options?? && attribute.validators.options?is_hash &&
|
||||
attribute.validators.options.options?? && attribute.validators.options.options?is_enumerable
|
||||
)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#list attribute.validators.options.options as option>
|
||||
<#if !option?is_string>
|
||||
<#continue>
|
||||
</#if>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="${prefix}.${option}" />
|
||||
</#list>
|
||||
</#list>
|
||||
</#if>
|
||||
<#if xKeycloakify.pageId == "terms.ftl" || termsAcceptanceRequired?? && termsAcceptanceRequired>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="termsText" />
|
||||
</#if>
|
||||
<#if requiredActions?? && requiredActions?is_enumerable>
|
||||
<#list requiredActions as requiredAction>
|
||||
<#if !requiredAction?is_string>
|
||||
<#continue>
|
||||
</#if>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="requiredAction.${requiredAction}" />
|
||||
</#list>
|
||||
</#if>
|
||||
</#macro>
|
||||
|
||||
</script>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="${xKeycloakify.resourcesPath}/dist/favicon-32x32.png">
|
||||
<script type="module" crossorigin="" src="${xKeycloakify.resourcesPath}/dist/assets/index-6-NnS-wp.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="root"></div>
|
||||
|
||||
|
||||
</body></html>
|
739
dist_keycloak/theme/keycloakify-starter/login/error.ftl
Normal file
739
dist_keycloak/theme/keycloakify-starter/login/error.ftl
Normal file
@ -0,0 +1,739 @@
|
||||
<!DOCTYPE html><html><head><script>
|
||||
<#assign xKeycloakify={
|
||||
"messages": {},
|
||||
"pageId": "error.ftl",
|
||||
"ftlTemplateFileName": "error.ftl",
|
||||
"themeType": "login",
|
||||
"themeName": "keycloakify-starter",
|
||||
"keycloakifyVersion": "11.4.4",
|
||||
"themeVersion": "0.0.0",
|
||||
"resourcesPath": ""
|
||||
}>
|
||||
|
||||
<#if url?? && url?is_hash && url.resourcesPath?? && url.resourcesPath?is_string>
|
||||
<#assign xKeycloakify = xKeycloakify + { "resourcesPath": url.resourcesPath }>
|
||||
</#if>
|
||||
<#if resourceUrl?? && resourceUrl?is_string>
|
||||
<#assign xKeycloakify = xKeycloakify + { "resourcesPath": resourceUrl }>
|
||||
</#if>
|
||||
|
||||
const kcContext = ${toJsDeclarationString(.data_model, [])?no_esc};
|
||||
kcContext.keycloakifyVersion = "${xKeycloakify.keycloakifyVersion}";
|
||||
kcContext.themeVersion = "${xKeycloakify.themeVersion}";
|
||||
kcContext.themeType = "${xKeycloakify.themeType}";
|
||||
kcContext.themeName = "${xKeycloakify.themeName}";
|
||||
kcContext.pageId = "${xKeycloakify.pageId}";
|
||||
kcContext.ftlTemplateFileName = "${xKeycloakify.ftlTemplateFileName}";
|
||||
|
||||
<@addNonAutomaticallyGatherableMessagesToXKeycloakifyMessages />
|
||||
|
||||
kcContext["x-keycloakify"] = {};
|
||||
|
||||
kcContext["x-keycloakify"].resourcesPath = "${xKeycloakify.resourcesPath}";
|
||||
|
||||
{
|
||||
var messages = {};
|
||||
<#list xKeycloakify.messages as key, resolvedMsg>
|
||||
messages["${key}"] = decodeHtmlEntities("${resolvedMsg?js_string}");
|
||||
</#list>
|
||||
kcContext["x-keycloakify"].messages = messages;
|
||||
}
|
||||
|
||||
if(
|
||||
kcContext.url instanceof Object &&
|
||||
typeof kcContext.url.resourcesPath === "string"
|
||||
){
|
||||
kcContext.url.resourcesCommonPath = kcContext.url.resourcesPath + "/resources-common";
|
||||
}
|
||||
|
||||
if( kcContext.messagesPerField ){
|
||||
var existsError_singleFieldName = kcContext.messagesPerField.existsError;
|
||||
kcContext.messagesPerField.existsError = function (){
|
||||
for( let i = 0; i < arguments.length; i++ ){
|
||||
if( existsError_singleFieldName(arguments[i]) ){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
};
|
||||
kcContext.messagesPerField.exists = function (fieldName) {
|
||||
return kcContext.messagesPerField.get(fieldName) !== "";
|
||||
};
|
||||
kcContext.messagesPerField.printIfExists = function (fieldName, text) {
|
||||
return kcContext.messagesPerField.exists(fieldName) ? text : undefined;
|
||||
};
|
||||
kcContext.messagesPerField.getFirstError = function () {
|
||||
for( let i = 0; i < arguments.length; i++ ){
|
||||
const fieldName = arguments[i];
|
||||
if( kcContext.messagesPerField.existsError(fieldName) ){
|
||||
return kcContext.messagesPerField.get(fieldName);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
attributes_to_attributesByName: {
|
||||
if( !kcContext.profile ){
|
||||
break attributes_to_attributesByName;
|
||||
}
|
||||
if( !kcContext.profile.attributes ){
|
||||
break attributes_to_attributesByName;
|
||||
}
|
||||
var attributes = kcContext.profile.attributes;
|
||||
delete kcContext.profile.attributes;
|
||||
kcContext.profile.attributesByName = {};
|
||||
attributes.forEach(function(attribute){
|
||||
kcContext.profile.attributesByName[attribute.name] = attribute;
|
||||
});
|
||||
}
|
||||
|
||||
redirect_to_dev_server: {
|
||||
|
||||
switch(kcContext.themeType){
|
||||
case "login":
|
||||
break redirect_to_dev_server;
|
||||
case "account":
|
||||
if( kcContext.pageId !== "index.ftl" ){
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
break;
|
||||
case "admin":
|
||||
break;
|
||||
default:
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
|
||||
const devSeverPort = kcContext.properties.KEYCLOAKIFY_SPA_DEV_SERVER_PORT;
|
||||
|
||||
if( !devSeverPort ){
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
|
||||
const redirectUrl = new URL(window.location.href);
|
||||
|
||||
redirectUrl.port = devSeverPort;
|
||||
|
||||
delete kcContext.msgJSON;
|
||||
|
||||
console.log(kcContext);
|
||||
|
||||
redirectUrl.searchParams.set("kcContext", encodeURIComponent(JSON.stringify(kcContext)));
|
||||
|
||||
window.location.href = redirectUrl.toString();
|
||||
|
||||
}
|
||||
|
||||
|
||||
window.kcContext = kcContext;
|
||||
|
||||
|
||||
<#if xKeycloakify.themeType == "login" >
|
||||
{
|
||||
const script = document.createElement("script");
|
||||
script.type = "importmap";
|
||||
script.textContent = JSON.stringify({
|
||||
imports: {
|
||||
"rfc4648": kcContext.url.resourcesCommonPath + "/node_modules/rfc4648/lib/rfc4648.js"
|
||||
}
|
||||
}, null, 2);
|
||||
|
||||
document.head.appendChild(script);
|
||||
}
|
||||
</#if>
|
||||
|
||||
function decodeHtmlEntities(htmlStr){
|
||||
var element = decodeHtmlEntities.element;
|
||||
if (!element) {
|
||||
element = document.createElement("textarea");
|
||||
decodeHtmlEntities.element = element;
|
||||
}
|
||||
element.innerHTML = htmlStr;
|
||||
return element.value;
|
||||
}
|
||||
|
||||
<#function toJsDeclarationString object path>
|
||||
<#local isHash = -1>
|
||||
<#attempt>
|
||||
<#local isHash = object?is_hash || object?is_hash_ex>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't evaluate if " + path?join(".") + " is a hash">
|
||||
</#attempt>
|
||||
|
||||
<#if isHash>
|
||||
<#if path?size gt 10>
|
||||
<#return "ABORT: Too many recursive calls, path: " + path?join(".")>
|
||||
</#if>
|
||||
<#local keys = -1>
|
||||
|
||||
<#attempt>
|
||||
<#local keys = object?keys>
|
||||
<#recover>
|
||||
<#return "ABORT: We can't list keys on object">
|
||||
</#attempt>
|
||||
|
||||
<#local outSeq = []>
|
||||
|
||||
<#list keys as key>
|
||||
<#if ["class","declaredConstructors","superclass","declaringClass" ]?seq_contains(key) >
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if (
|
||||
areSamePath(path, ["url"]) &&
|
||||
["loginUpdatePasswordUrl", "loginUpdateProfileUrl", "loginUsernameReminderUrl", "loginUpdateTotpUrl"]?seq_contains(key)
|
||||
) || (
|
||||
key == "updateProfileCtx" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
<#-- https://github.com/keycloakify/keycloakify/pull/65#issuecomment-991896344 (reports with saml-post-form.ftl) -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/91#issue-1212319466 (reports with error.ftl and Kc18) -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/109#issuecomment-1134610163 -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/357 -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/discussions/406#discussioncomment-7514787 -->
|
||||
key == "loginAction" &&
|
||||
areSamePath(path, ["url"]) &&
|
||||
["saml-post-form.ftl", "error.ftl", "info.ftl", "login-oauth-grant.ftl", "logout-confirm.ftl", "login-oauth2-device-verify-user-code.ftl"]?seq_contains(xKeycloakify.pageId) &&
|
||||
!(auth?has_content && auth.showTryAnotherWayLink())
|
||||
) || (
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/362 -->
|
||||
["secretData", "value"]?seq_contains(key) &&
|
||||
areSamePath(path, [ "totp", "otpCredentials", "*" ])
|
||||
) || (
|
||||
["contextData", "idpConfig", "idp", "authenticationSession"]?seq_contains(key) &&
|
||||
areSamePath(path, ["brokerContext"]) &&
|
||||
["login-idp-link-confirm.ftl", "login-idp-link-email.ftl" ]?seq_contains(xKeycloakify.pageId)
|
||||
) || (
|
||||
key == "identityProviderBrokerCtx" &&
|
||||
areSamePath(path, []) &&
|
||||
["login-idp-link-confirm.ftl", "login-idp-link-email.ftl" ]?seq_contains(xKeycloakify.pageId)
|
||||
) || (
|
||||
["masterAdminClient", "delegateForUpdate", "defaultRole", "smtpConfig"]?seq_contains(key) &&
|
||||
areSamePath(path, ["realm"])
|
||||
) || (
|
||||
xKeycloakify.pageId == "error.ftl" &&
|
||||
areSamePath(path, ["realm"]) &&
|
||||
!["name", "displayName", "displayNameHtml", "internationalizationEnabled", "registrationEmailAsUsername" ]?seq_contains(key)
|
||||
) || (
|
||||
xKeycloakify.pageId == "applications.ftl" &&
|
||||
(
|
||||
key == "realm" ||
|
||||
key == "container"
|
||||
) &&
|
||||
isSubpath(path, ["applications", "applications"])
|
||||
) || (
|
||||
key == "delegateForUpdate" &&
|
||||
areSamePath(path, ["user"])
|
||||
) || (
|
||||
<#-- Security audit forwarded by Garth (Gmail) -->
|
||||
key == "saml.signing.private.key" &&
|
||||
areSamePath(path, ["client", "attributes"])
|
||||
) || (
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/534 -->
|
||||
key == "password" &&
|
||||
areSamePath(path, ["login"])
|
||||
) || (
|
||||
<#-- Remove realmAttributes added by https://github.com/jcputney/keycloak-theme-additional-info-extension for peace of mind. -->
|
||||
key == "realmAttributes" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
<#-- attributesByName adds a lot of noise to the output and is not needed, we already have profile.attributes -->
|
||||
key == "attributesByName" &&
|
||||
areSamePath(path, ["profile"])
|
||||
) || (
|
||||
<#-- We already have the attributes in profile speedup the rendering by filtering it out from the register object -->
|
||||
(key == "attributes" || key == "attributesByName") &&
|
||||
areSamePath(path, ["register"])
|
||||
) || (
|
||||
areSamePath(path, ["properties"]) &&
|
||||
(
|
||||
key?starts_with("kc") ||
|
||||
key == "locales" ||
|
||||
key == "import" ||
|
||||
key == "parent" ||
|
||||
key == "meta" ||
|
||||
key == "stylesCommon" ||
|
||||
key == "styles" ||
|
||||
key == "accountResourceProvider"
|
||||
)
|
||||
) || (
|
||||
key == "execution" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
key == "entity" &&
|
||||
areSamePath(path, ["user"])
|
||||
) || (
|
||||
key == "attributes" &&
|
||||
areSamePath(path, ["realm"])
|
||||
) || (
|
||||
xKeycloakify.pageId == "index.ftl" &&
|
||||
xKeycloakify.themeType == "account" &&
|
||||
areSamePath(path, ["realm"]) &&
|
||||
![
|
||||
"name",
|
||||
"registrationEmailAsUsername",
|
||||
"editUsernameAllowed",
|
||||
"isInternationalizationEnabled",
|
||||
"identityFederationEnabled",
|
||||
"userManagedAccessAllowed"
|
||||
]?seq_contains(key)
|
||||
) || (
|
||||
["flowContext", "session", "realm"]?seq_contains(key) &&
|
||||
areSamePath(path, ["social"])
|
||||
)
|
||||
>
|
||||
<#-- <#local outSeq += ["/*" + path?join(".") + "." + key + " excluded*/"]> -->
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#-- https://github.com/keycloakify/keycloakify/discussions/406 -->
|
||||
<#if (
|
||||
key == "attemptedUsername" &&
|
||||
areSamePath(path, ["auth"]) &&
|
||||
[
|
||||
"register.ftl", "terms.ftl", "info.ftl", "login.ftl",
|
||||
"login-update-password.ftl", "login-oauth2-device-verify-user-code.ftl"
|
||||
]?seq_contains(xKeycloakify.pageId)
|
||||
)>
|
||||
<#attempt>
|
||||
<#-- https://github.com/keycloak/keycloak/blob/3a2bf0c04bcde185e497aaa32d0bb7ab7520cf4a/themes/src/main/resources/theme/base/login/template.ftl#L63 -->
|
||||
<#if !(auth?has_content && auth.showUsername() && !auth.showResetCredentials())>
|
||||
<#local outSeq += ["/*" + path?join(".") + "." + key + " excluded*/"]>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Accessing attemptedUsername throwed an exception */"]>
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
|
||||
|
||||
<#attempt>
|
||||
<#if !object[key]??>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Couldn't test if '" + key + "' is available on this object*/"]>
|
||||
<#continue>
|
||||
</#attempt>
|
||||
|
||||
<#local propertyValue = -1>
|
||||
|
||||
<#attempt>
|
||||
<#local propertyValue = object[key]>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Couldn't dereference '" + key + "' on this object*/"]>
|
||||
<#continue>
|
||||
</#attempt>
|
||||
|
||||
<#local recOut = toJsDeclarationString(propertyValue, path + [ key ])>
|
||||
|
||||
<#if recOut?starts_with("ABORT:")>
|
||||
|
||||
<#local errorMessage = recOut?remove_beginning("ABORT:")>
|
||||
|
||||
<#if errorMessage != " It's a method" >
|
||||
<#local outSeq += ["/*" + key + ": " + errorMessage + "*/"]>
|
||||
</#if>
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local outSeq += ['"' + key + '": ' + recOut + ","]>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return (["{"] + outSeq?map(str -> ""?right_pad(4 * (path?size + 1)) + str) + [ ""?right_pad(4 * path?size) + "}"])?join("\n")>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local isMethod = -1>
|
||||
<#attempt>
|
||||
<#local isMethod = object?is_method>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it'sa method.">
|
||||
</#attempt>
|
||||
|
||||
<#if isMethod>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showUsername"])>
|
||||
<#attempt>
|
||||
<#return auth.showUsername()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showUsername()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showResetCredentials"])>
|
||||
<#attempt>
|
||||
<#return auth.showResetCredentials()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showResetCredentials()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showTryAnotherWayLink"])>
|
||||
<#attempt>
|
||||
<#return auth.showTryAnotherWayLink()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showTryAnotherWayLink()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["url", "getLogoutUrl"])>
|
||||
<#local returnValue = -1>
|
||||
<#attempt>
|
||||
<#local returnValue = url.getLogoutUrl()>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate url.getLogoutUrl()">
|
||||
</#attempt>
|
||||
<#return 'function(){ return "' + returnValue + '"; }'>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["totp", "policy", "getAlgorithmKey"])>
|
||||
<#local returnValue = "error">
|
||||
<#if mode?? && mode = "manual">
|
||||
<#attempt>
|
||||
<#local returnValue = totp.policy.getAlgorithmKey()>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate totp.policy.getAlgorithmKey()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
<#return 'function(){ return "' + returnValue + '"; }'>
|
||||
</#if>
|
||||
|
||||
<#assign fieldNames = ["firstName", "lastName", "email", "username", "password", "password-confirm", "global", "totp", "userLabel", "recoveryCodeInput", "termsAccepted"]>
|
||||
<#if profile?? && profile.attributes??>
|
||||
<#list profile.attributes as attribute>
|
||||
<#if fieldNames?seq_contains(attribute.name)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#assign fieldNames += [attribute.name]>
|
||||
</#list>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["messagesPerField", "get"])>
|
||||
|
||||
<#local jsFunctionCode = "function (fieldName) { ">
|
||||
|
||||
<#list fieldNames as fieldName>
|
||||
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/217 -->
|
||||
<#if xKeycloakify.pageId == "login.ftl" >
|
||||
|
||||
<#if fieldName == "username">
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === 'username' || fieldName === 'password' ){ ">
|
||||
|
||||
<#if messagesPerField.exists('username') || messagesPerField.exists('password')>
|
||||
<#local jsFunctionCode += "return kcContext.message && kcContext.message.summary ? kcContext.message.summary : 'error'; ">
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return ''; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if fieldName == "password">
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === '" + fieldName + "'){ ">
|
||||
|
||||
<#if messagesPerField.exists('${fieldName}')>
|
||||
<#local jsFunctionCode += 'return decodeHtmlEntities("' + messagesPerField.get('${fieldName}')?js_string + '"); '>
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return ''; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
</#list>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
<#return jsFunctionCode>
|
||||
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["messagesPerField", "existsError"])>
|
||||
|
||||
<#local jsFunctionCode = "function (fieldName) { ">
|
||||
|
||||
<#list fieldNames as fieldName>
|
||||
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/217 -->
|
||||
<#if xKeycloakify.pageId == "login.ftl" >
|
||||
<#if fieldName == "username">
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === 'username' || fieldName === 'password' ){ ">
|
||||
|
||||
<#if messagesPerField.existsError('username') || messagesPerField.existsError('password')>
|
||||
<#local jsFunctionCode += "return true; ">
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return false; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if fieldName == "password">
|
||||
<#continue>
|
||||
</#if>
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === '" + fieldName + "' ){ ">
|
||||
|
||||
<#if messagesPerField.existsError('${fieldName}')>
|
||||
<#local jsFunctionCode += 'return true; '>
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return false; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
</#list>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
<#return jsFunctionCode>
|
||||
|
||||
</#if>
|
||||
|
||||
<#if xKeycloakify.themeType == "account" && areSamePath(path, ["realm", "isInternationalizationEnabled"])>
|
||||
<#attempt>
|
||||
<#return realm.isInternationalizationEnabled()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate realm.isInternationalizationEnabled()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#return "ABORT: It's a method">
|
||||
</#if>
|
||||
|
||||
<#local isBoolean = -1>
|
||||
<#attempt>
|
||||
<#local isBoolean = object?is_boolean>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a boolean">
|
||||
</#attempt>
|
||||
|
||||
<#if isBoolean>
|
||||
<#return object?c>
|
||||
</#if>
|
||||
|
||||
<#local isEnumerable = -1>
|
||||
<#attempt>
|
||||
<#local isEnumerable = object?is_enumerable>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's an enumerable">
|
||||
</#attempt>
|
||||
|
||||
|
||||
<#if isEnumerable>
|
||||
|
||||
<#local outSeq = []>
|
||||
|
||||
<#local i = 0>
|
||||
|
||||
<#list object as array_item>
|
||||
|
||||
<#if !array_item??>
|
||||
<#local outSeq += ["null,"]>
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local recOut = toJsDeclarationString(array_item, path + [ i ])>
|
||||
|
||||
<#local i = i + 1>
|
||||
|
||||
<#if recOut?starts_with("ABORT:")>
|
||||
|
||||
<#local errorMessage = recOut?remove_beginning("ABORT:")>
|
||||
|
||||
<#if errorMessage != " It's a method" >
|
||||
<#local outSeq += ["/*" + i?string + ": " + errorMessage + "*/"]>
|
||||
</#if>
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local outSeq += [recOut + ","]>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return (["["] + outSeq?map(str -> ""?right_pad(4 * (path?size + 1)) + str) + [ ""?right_pad(4 * path?size) + "]"])?join("\n")>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local isDate = -1>
|
||||
<#attempt>
|
||||
<#local isDate = object?is_date_like>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a date">
|
||||
</#attempt>
|
||||
|
||||
<#if isDate>
|
||||
<#return '"' + object?datetime?iso_utc + '"'>
|
||||
</#if>
|
||||
|
||||
<#local isNumber = -1>
|
||||
<#attempt>
|
||||
<#local isNumber = object?is_number>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a number">
|
||||
</#attempt>
|
||||
|
||||
<#if isNumber>
|
||||
<#return object?c>
|
||||
</#if>
|
||||
|
||||
<#local isString = -1>
|
||||
<#attempt>
|
||||
<#local isString = object?is_string>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a string">
|
||||
</#attempt>
|
||||
|
||||
<#if isString>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str=object />
|
||||
</#if>
|
||||
|
||||
<#attempt>
|
||||
<#return '"' + object?js_string + '"'>;
|
||||
<#recover>
|
||||
</#attempt>
|
||||
|
||||
<#return "ABORT: Couldn't convert into string non hash, non method, non boolean, non number, non enumerable object">
|
||||
|
||||
</#function>
|
||||
<#function isSubpath path searchedPath>
|
||||
|
||||
<#if path?size < searchedPath?size>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#local i=0>
|
||||
|
||||
<#list path as property>
|
||||
|
||||
<#if i == searchedPath?size >
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local searchedProperty=searchedPath[i]>
|
||||
|
||||
<#local i+= 1>
|
||||
|
||||
<#if searchedProperty?is_string && searchedProperty == "*">
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?is_string && !property?is_string>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?is_number && !property?is_number>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?string != property?string>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return true>
|
||||
|
||||
</#function>
|
||||
|
||||
<#function areSamePath path searchedPath>
|
||||
<#return path?size == searchedPath?size && isSubpath(path, searchedPath)>
|
||||
</#function>
|
||||
|
||||
<#macro addToXKeycloakifyMessagesIfMessageKey str>
|
||||
<#if !msg?? || !msg?is_method>
|
||||
<#return>
|
||||
</#if>
|
||||
<#if (str?length > 200)>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local key=removeBrackets(str)>
|
||||
<#if key?length==0>
|
||||
<#return>
|
||||
</#if>
|
||||
<#if !(key?matches(r"^[a-zA-Z0-9-_.]*$"))>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local resolvedMsg=msg(key)>
|
||||
<#if resolvedMsg==key>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local messages=xKeycloakify.messages>
|
||||
<#local messages = messages + { key: resolvedMsg }>
|
||||
<#assign xKeycloakify = xKeycloakify + { "messages": messages }>
|
||||
</#macro>
|
||||
|
||||
<#function removeBrackets str>
|
||||
<#if str?starts_with("${") && str?ends_with("}")>
|
||||
<#return str[2..(str?length-2)]>
|
||||
<#else>
|
||||
<#return str>
|
||||
</#if>
|
||||
</#function>
|
||||
|
||||
<#macro addNonAutomaticallyGatherableMessagesToXKeycloakifyMessages>
|
||||
<#if profile?? && profile?is_hash && profile.attributes?? && profile.attributes?is_enumerable>
|
||||
<#list profile.attributes as attribute>
|
||||
<#if !(
|
||||
attribute.annotations?? && attribute.annotations?is_hash &&
|
||||
attribute.annotations.inputOptionLabelsI18nPrefix?? && attribute.annotations.inputOptionLabelsI18nPrefix?is_string
|
||||
)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#local prefix=attribute.annotations.inputOptionLabelsI18nPrefix>
|
||||
<#if !(
|
||||
attribute.validators?? && attribute.validators?is_hash &&
|
||||
attribute.validators.options?? && attribute.validators.options?is_hash &&
|
||||
attribute.validators.options.options?? && attribute.validators.options.options?is_enumerable
|
||||
)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#list attribute.validators.options.options as option>
|
||||
<#if !option?is_string>
|
||||
<#continue>
|
||||
</#if>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="${prefix}.${option}" />
|
||||
</#list>
|
||||
</#list>
|
||||
</#if>
|
||||
<#if xKeycloakify.pageId == "terms.ftl" || termsAcceptanceRequired?? && termsAcceptanceRequired>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="termsText" />
|
||||
</#if>
|
||||
<#if requiredActions?? && requiredActions?is_enumerable>
|
||||
<#list requiredActions as requiredAction>
|
||||
<#if !requiredAction?is_string>
|
||||
<#continue>
|
||||
</#if>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="requiredAction.${requiredAction}" />
|
||||
</#list>
|
||||
</#if>
|
||||
</#macro>
|
||||
|
||||
</script>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="${xKeycloakify.resourcesPath}/dist/favicon-32x32.png">
|
||||
<script type="module" crossorigin="" src="${xKeycloakify.resourcesPath}/dist/assets/index-6-NnS-wp.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="root"></div>
|
||||
|
||||
|
||||
</body></html>
|
@ -0,0 +1,739 @@
|
||||
<!DOCTYPE html><html><head><script>
|
||||
<#assign xKeycloakify={
|
||||
"messages": {},
|
||||
"pageId": "frontchannel-logout.ftl",
|
||||
"ftlTemplateFileName": "frontchannel-logout.ftl",
|
||||
"themeType": "login",
|
||||
"themeName": "keycloakify-starter",
|
||||
"keycloakifyVersion": "11.4.4",
|
||||
"themeVersion": "0.0.0",
|
||||
"resourcesPath": ""
|
||||
}>
|
||||
|
||||
<#if url?? && url?is_hash && url.resourcesPath?? && url.resourcesPath?is_string>
|
||||
<#assign xKeycloakify = xKeycloakify + { "resourcesPath": url.resourcesPath }>
|
||||
</#if>
|
||||
<#if resourceUrl?? && resourceUrl?is_string>
|
||||
<#assign xKeycloakify = xKeycloakify + { "resourcesPath": resourceUrl }>
|
||||
</#if>
|
||||
|
||||
const kcContext = ${toJsDeclarationString(.data_model, [])?no_esc};
|
||||
kcContext.keycloakifyVersion = "${xKeycloakify.keycloakifyVersion}";
|
||||
kcContext.themeVersion = "${xKeycloakify.themeVersion}";
|
||||
kcContext.themeType = "${xKeycloakify.themeType}";
|
||||
kcContext.themeName = "${xKeycloakify.themeName}";
|
||||
kcContext.pageId = "${xKeycloakify.pageId}";
|
||||
kcContext.ftlTemplateFileName = "${xKeycloakify.ftlTemplateFileName}";
|
||||
|
||||
<@addNonAutomaticallyGatherableMessagesToXKeycloakifyMessages />
|
||||
|
||||
kcContext["x-keycloakify"] = {};
|
||||
|
||||
kcContext["x-keycloakify"].resourcesPath = "${xKeycloakify.resourcesPath}";
|
||||
|
||||
{
|
||||
var messages = {};
|
||||
<#list xKeycloakify.messages as key, resolvedMsg>
|
||||
messages["${key}"] = decodeHtmlEntities("${resolvedMsg?js_string}");
|
||||
</#list>
|
||||
kcContext["x-keycloakify"].messages = messages;
|
||||
}
|
||||
|
||||
if(
|
||||
kcContext.url instanceof Object &&
|
||||
typeof kcContext.url.resourcesPath === "string"
|
||||
){
|
||||
kcContext.url.resourcesCommonPath = kcContext.url.resourcesPath + "/resources-common";
|
||||
}
|
||||
|
||||
if( kcContext.messagesPerField ){
|
||||
var existsError_singleFieldName = kcContext.messagesPerField.existsError;
|
||||
kcContext.messagesPerField.existsError = function (){
|
||||
for( let i = 0; i < arguments.length; i++ ){
|
||||
if( existsError_singleFieldName(arguments[i]) ){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
};
|
||||
kcContext.messagesPerField.exists = function (fieldName) {
|
||||
return kcContext.messagesPerField.get(fieldName) !== "";
|
||||
};
|
||||
kcContext.messagesPerField.printIfExists = function (fieldName, text) {
|
||||
return kcContext.messagesPerField.exists(fieldName) ? text : undefined;
|
||||
};
|
||||
kcContext.messagesPerField.getFirstError = function () {
|
||||
for( let i = 0; i < arguments.length; i++ ){
|
||||
const fieldName = arguments[i];
|
||||
if( kcContext.messagesPerField.existsError(fieldName) ){
|
||||
return kcContext.messagesPerField.get(fieldName);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
attributes_to_attributesByName: {
|
||||
if( !kcContext.profile ){
|
||||
break attributes_to_attributesByName;
|
||||
}
|
||||
if( !kcContext.profile.attributes ){
|
||||
break attributes_to_attributesByName;
|
||||
}
|
||||
var attributes = kcContext.profile.attributes;
|
||||
delete kcContext.profile.attributes;
|
||||
kcContext.profile.attributesByName = {};
|
||||
attributes.forEach(function(attribute){
|
||||
kcContext.profile.attributesByName[attribute.name] = attribute;
|
||||
});
|
||||
}
|
||||
|
||||
redirect_to_dev_server: {
|
||||
|
||||
switch(kcContext.themeType){
|
||||
case "login":
|
||||
break redirect_to_dev_server;
|
||||
case "account":
|
||||
if( kcContext.pageId !== "index.ftl" ){
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
break;
|
||||
case "admin":
|
||||
break;
|
||||
default:
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
|
||||
const devSeverPort = kcContext.properties.KEYCLOAKIFY_SPA_DEV_SERVER_PORT;
|
||||
|
||||
if( !devSeverPort ){
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
|
||||
const redirectUrl = new URL(window.location.href);
|
||||
|
||||
redirectUrl.port = devSeverPort;
|
||||
|
||||
delete kcContext.msgJSON;
|
||||
|
||||
console.log(kcContext);
|
||||
|
||||
redirectUrl.searchParams.set("kcContext", encodeURIComponent(JSON.stringify(kcContext)));
|
||||
|
||||
window.location.href = redirectUrl.toString();
|
||||
|
||||
}
|
||||
|
||||
|
||||
window.kcContext = kcContext;
|
||||
|
||||
|
||||
<#if xKeycloakify.themeType == "login" >
|
||||
{
|
||||
const script = document.createElement("script");
|
||||
script.type = "importmap";
|
||||
script.textContent = JSON.stringify({
|
||||
imports: {
|
||||
"rfc4648": kcContext.url.resourcesCommonPath + "/node_modules/rfc4648/lib/rfc4648.js"
|
||||
}
|
||||
}, null, 2);
|
||||
|
||||
document.head.appendChild(script);
|
||||
}
|
||||
</#if>
|
||||
|
||||
function decodeHtmlEntities(htmlStr){
|
||||
var element = decodeHtmlEntities.element;
|
||||
if (!element) {
|
||||
element = document.createElement("textarea");
|
||||
decodeHtmlEntities.element = element;
|
||||
}
|
||||
element.innerHTML = htmlStr;
|
||||
return element.value;
|
||||
}
|
||||
|
||||
<#function toJsDeclarationString object path>
|
||||
<#local isHash = -1>
|
||||
<#attempt>
|
||||
<#local isHash = object?is_hash || object?is_hash_ex>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't evaluate if " + path?join(".") + " is a hash">
|
||||
</#attempt>
|
||||
|
||||
<#if isHash>
|
||||
<#if path?size gt 10>
|
||||
<#return "ABORT: Too many recursive calls, path: " + path?join(".")>
|
||||
</#if>
|
||||
<#local keys = -1>
|
||||
|
||||
<#attempt>
|
||||
<#local keys = object?keys>
|
||||
<#recover>
|
||||
<#return "ABORT: We can't list keys on object">
|
||||
</#attempt>
|
||||
|
||||
<#local outSeq = []>
|
||||
|
||||
<#list keys as key>
|
||||
<#if ["class","declaredConstructors","superclass","declaringClass" ]?seq_contains(key) >
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if (
|
||||
areSamePath(path, ["url"]) &&
|
||||
["loginUpdatePasswordUrl", "loginUpdateProfileUrl", "loginUsernameReminderUrl", "loginUpdateTotpUrl"]?seq_contains(key)
|
||||
) || (
|
||||
key == "updateProfileCtx" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
<#-- https://github.com/keycloakify/keycloakify/pull/65#issuecomment-991896344 (reports with saml-post-form.ftl) -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/91#issue-1212319466 (reports with error.ftl and Kc18) -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/109#issuecomment-1134610163 -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/357 -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/discussions/406#discussioncomment-7514787 -->
|
||||
key == "loginAction" &&
|
||||
areSamePath(path, ["url"]) &&
|
||||
["saml-post-form.ftl", "error.ftl", "info.ftl", "login-oauth-grant.ftl", "logout-confirm.ftl", "login-oauth2-device-verify-user-code.ftl"]?seq_contains(xKeycloakify.pageId) &&
|
||||
!(auth?has_content && auth.showTryAnotherWayLink())
|
||||
) || (
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/362 -->
|
||||
["secretData", "value"]?seq_contains(key) &&
|
||||
areSamePath(path, [ "totp", "otpCredentials", "*" ])
|
||||
) || (
|
||||
["contextData", "idpConfig", "idp", "authenticationSession"]?seq_contains(key) &&
|
||||
areSamePath(path, ["brokerContext"]) &&
|
||||
["login-idp-link-confirm.ftl", "login-idp-link-email.ftl" ]?seq_contains(xKeycloakify.pageId)
|
||||
) || (
|
||||
key == "identityProviderBrokerCtx" &&
|
||||
areSamePath(path, []) &&
|
||||
["login-idp-link-confirm.ftl", "login-idp-link-email.ftl" ]?seq_contains(xKeycloakify.pageId)
|
||||
) || (
|
||||
["masterAdminClient", "delegateForUpdate", "defaultRole", "smtpConfig"]?seq_contains(key) &&
|
||||
areSamePath(path, ["realm"])
|
||||
) || (
|
||||
xKeycloakify.pageId == "error.ftl" &&
|
||||
areSamePath(path, ["realm"]) &&
|
||||
!["name", "displayName", "displayNameHtml", "internationalizationEnabled", "registrationEmailAsUsername" ]?seq_contains(key)
|
||||
) || (
|
||||
xKeycloakify.pageId == "applications.ftl" &&
|
||||
(
|
||||
key == "realm" ||
|
||||
key == "container"
|
||||
) &&
|
||||
isSubpath(path, ["applications", "applications"])
|
||||
) || (
|
||||
key == "delegateForUpdate" &&
|
||||
areSamePath(path, ["user"])
|
||||
) || (
|
||||
<#-- Security audit forwarded by Garth (Gmail) -->
|
||||
key == "saml.signing.private.key" &&
|
||||
areSamePath(path, ["client", "attributes"])
|
||||
) || (
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/534 -->
|
||||
key == "password" &&
|
||||
areSamePath(path, ["login"])
|
||||
) || (
|
||||
<#-- Remove realmAttributes added by https://github.com/jcputney/keycloak-theme-additional-info-extension for peace of mind. -->
|
||||
key == "realmAttributes" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
<#-- attributesByName adds a lot of noise to the output and is not needed, we already have profile.attributes -->
|
||||
key == "attributesByName" &&
|
||||
areSamePath(path, ["profile"])
|
||||
) || (
|
||||
<#-- We already have the attributes in profile speedup the rendering by filtering it out from the register object -->
|
||||
(key == "attributes" || key == "attributesByName") &&
|
||||
areSamePath(path, ["register"])
|
||||
) || (
|
||||
areSamePath(path, ["properties"]) &&
|
||||
(
|
||||
key?starts_with("kc") ||
|
||||
key == "locales" ||
|
||||
key == "import" ||
|
||||
key == "parent" ||
|
||||
key == "meta" ||
|
||||
key == "stylesCommon" ||
|
||||
key == "styles" ||
|
||||
key == "accountResourceProvider"
|
||||
)
|
||||
) || (
|
||||
key == "execution" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
key == "entity" &&
|
||||
areSamePath(path, ["user"])
|
||||
) || (
|
||||
key == "attributes" &&
|
||||
areSamePath(path, ["realm"])
|
||||
) || (
|
||||
xKeycloakify.pageId == "index.ftl" &&
|
||||
xKeycloakify.themeType == "account" &&
|
||||
areSamePath(path, ["realm"]) &&
|
||||
![
|
||||
"name",
|
||||
"registrationEmailAsUsername",
|
||||
"editUsernameAllowed",
|
||||
"isInternationalizationEnabled",
|
||||
"identityFederationEnabled",
|
||||
"userManagedAccessAllowed"
|
||||
]?seq_contains(key)
|
||||
) || (
|
||||
["flowContext", "session", "realm"]?seq_contains(key) &&
|
||||
areSamePath(path, ["social"])
|
||||
)
|
||||
>
|
||||
<#-- <#local outSeq += ["/*" + path?join(".") + "." + key + " excluded*/"]> -->
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#-- https://github.com/keycloakify/keycloakify/discussions/406 -->
|
||||
<#if (
|
||||
key == "attemptedUsername" &&
|
||||
areSamePath(path, ["auth"]) &&
|
||||
[
|
||||
"register.ftl", "terms.ftl", "info.ftl", "login.ftl",
|
||||
"login-update-password.ftl", "login-oauth2-device-verify-user-code.ftl"
|
||||
]?seq_contains(xKeycloakify.pageId)
|
||||
)>
|
||||
<#attempt>
|
||||
<#-- https://github.com/keycloak/keycloak/blob/3a2bf0c04bcde185e497aaa32d0bb7ab7520cf4a/themes/src/main/resources/theme/base/login/template.ftl#L63 -->
|
||||
<#if !(auth?has_content && auth.showUsername() && !auth.showResetCredentials())>
|
||||
<#local outSeq += ["/*" + path?join(".") + "." + key + " excluded*/"]>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Accessing attemptedUsername throwed an exception */"]>
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
|
||||
|
||||
<#attempt>
|
||||
<#if !object[key]??>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Couldn't test if '" + key + "' is available on this object*/"]>
|
||||
<#continue>
|
||||
</#attempt>
|
||||
|
||||
<#local propertyValue = -1>
|
||||
|
||||
<#attempt>
|
||||
<#local propertyValue = object[key]>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Couldn't dereference '" + key + "' on this object*/"]>
|
||||
<#continue>
|
||||
</#attempt>
|
||||
|
||||
<#local recOut = toJsDeclarationString(propertyValue, path + [ key ])>
|
||||
|
||||
<#if recOut?starts_with("ABORT:")>
|
||||
|
||||
<#local errorMessage = recOut?remove_beginning("ABORT:")>
|
||||
|
||||
<#if errorMessage != " It's a method" >
|
||||
<#local outSeq += ["/*" + key + ": " + errorMessage + "*/"]>
|
||||
</#if>
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local outSeq += ['"' + key + '": ' + recOut + ","]>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return (["{"] + outSeq?map(str -> ""?right_pad(4 * (path?size + 1)) + str) + [ ""?right_pad(4 * path?size) + "}"])?join("\n")>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local isMethod = -1>
|
||||
<#attempt>
|
||||
<#local isMethod = object?is_method>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it'sa method.">
|
||||
</#attempt>
|
||||
|
||||
<#if isMethod>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showUsername"])>
|
||||
<#attempt>
|
||||
<#return auth.showUsername()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showUsername()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showResetCredentials"])>
|
||||
<#attempt>
|
||||
<#return auth.showResetCredentials()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showResetCredentials()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showTryAnotherWayLink"])>
|
||||
<#attempt>
|
||||
<#return auth.showTryAnotherWayLink()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showTryAnotherWayLink()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["url", "getLogoutUrl"])>
|
||||
<#local returnValue = -1>
|
||||
<#attempt>
|
||||
<#local returnValue = url.getLogoutUrl()>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate url.getLogoutUrl()">
|
||||
</#attempt>
|
||||
<#return 'function(){ return "' + returnValue + '"; }'>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["totp", "policy", "getAlgorithmKey"])>
|
||||
<#local returnValue = "error">
|
||||
<#if mode?? && mode = "manual">
|
||||
<#attempt>
|
||||
<#local returnValue = totp.policy.getAlgorithmKey()>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate totp.policy.getAlgorithmKey()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
<#return 'function(){ return "' + returnValue + '"; }'>
|
||||
</#if>
|
||||
|
||||
<#assign fieldNames = ["firstName", "lastName", "email", "username", "password", "password-confirm", "global", "totp", "userLabel", "recoveryCodeInput", "termsAccepted"]>
|
||||
<#if profile?? && profile.attributes??>
|
||||
<#list profile.attributes as attribute>
|
||||
<#if fieldNames?seq_contains(attribute.name)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#assign fieldNames += [attribute.name]>
|
||||
</#list>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["messagesPerField", "get"])>
|
||||
|
||||
<#local jsFunctionCode = "function (fieldName) { ">
|
||||
|
||||
<#list fieldNames as fieldName>
|
||||
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/217 -->
|
||||
<#if xKeycloakify.pageId == "login.ftl" >
|
||||
|
||||
<#if fieldName == "username">
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === 'username' || fieldName === 'password' ){ ">
|
||||
|
||||
<#if messagesPerField.exists('username') || messagesPerField.exists('password')>
|
||||
<#local jsFunctionCode += "return kcContext.message && kcContext.message.summary ? kcContext.message.summary : 'error'; ">
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return ''; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if fieldName == "password">
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === '" + fieldName + "'){ ">
|
||||
|
||||
<#if messagesPerField.exists('${fieldName}')>
|
||||
<#local jsFunctionCode += 'return decodeHtmlEntities("' + messagesPerField.get('${fieldName}')?js_string + '"); '>
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return ''; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
</#list>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
<#return jsFunctionCode>
|
||||
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["messagesPerField", "existsError"])>
|
||||
|
||||
<#local jsFunctionCode = "function (fieldName) { ">
|
||||
|
||||
<#list fieldNames as fieldName>
|
||||
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/217 -->
|
||||
<#if xKeycloakify.pageId == "login.ftl" >
|
||||
<#if fieldName == "username">
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === 'username' || fieldName === 'password' ){ ">
|
||||
|
||||
<#if messagesPerField.existsError('username') || messagesPerField.existsError('password')>
|
||||
<#local jsFunctionCode += "return true; ">
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return false; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if fieldName == "password">
|
||||
<#continue>
|
||||
</#if>
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === '" + fieldName + "' ){ ">
|
||||
|
||||
<#if messagesPerField.existsError('${fieldName}')>
|
||||
<#local jsFunctionCode += 'return true; '>
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return false; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
</#list>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
<#return jsFunctionCode>
|
||||
|
||||
</#if>
|
||||
|
||||
<#if xKeycloakify.themeType == "account" && areSamePath(path, ["realm", "isInternationalizationEnabled"])>
|
||||
<#attempt>
|
||||
<#return realm.isInternationalizationEnabled()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate realm.isInternationalizationEnabled()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#return "ABORT: It's a method">
|
||||
</#if>
|
||||
|
||||
<#local isBoolean = -1>
|
||||
<#attempt>
|
||||
<#local isBoolean = object?is_boolean>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a boolean">
|
||||
</#attempt>
|
||||
|
||||
<#if isBoolean>
|
||||
<#return object?c>
|
||||
</#if>
|
||||
|
||||
<#local isEnumerable = -1>
|
||||
<#attempt>
|
||||
<#local isEnumerable = object?is_enumerable>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's an enumerable">
|
||||
</#attempt>
|
||||
|
||||
|
||||
<#if isEnumerable>
|
||||
|
||||
<#local outSeq = []>
|
||||
|
||||
<#local i = 0>
|
||||
|
||||
<#list object as array_item>
|
||||
|
||||
<#if !array_item??>
|
||||
<#local outSeq += ["null,"]>
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local recOut = toJsDeclarationString(array_item, path + [ i ])>
|
||||
|
||||
<#local i = i + 1>
|
||||
|
||||
<#if recOut?starts_with("ABORT:")>
|
||||
|
||||
<#local errorMessage = recOut?remove_beginning("ABORT:")>
|
||||
|
||||
<#if errorMessage != " It's a method" >
|
||||
<#local outSeq += ["/*" + i?string + ": " + errorMessage + "*/"]>
|
||||
</#if>
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local outSeq += [recOut + ","]>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return (["["] + outSeq?map(str -> ""?right_pad(4 * (path?size + 1)) + str) + [ ""?right_pad(4 * path?size) + "]"])?join("\n")>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local isDate = -1>
|
||||
<#attempt>
|
||||
<#local isDate = object?is_date_like>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a date">
|
||||
</#attempt>
|
||||
|
||||
<#if isDate>
|
||||
<#return '"' + object?datetime?iso_utc + '"'>
|
||||
</#if>
|
||||
|
||||
<#local isNumber = -1>
|
||||
<#attempt>
|
||||
<#local isNumber = object?is_number>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a number">
|
||||
</#attempt>
|
||||
|
||||
<#if isNumber>
|
||||
<#return object?c>
|
||||
</#if>
|
||||
|
||||
<#local isString = -1>
|
||||
<#attempt>
|
||||
<#local isString = object?is_string>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a string">
|
||||
</#attempt>
|
||||
|
||||
<#if isString>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str=object />
|
||||
</#if>
|
||||
|
||||
<#attempt>
|
||||
<#return '"' + object?js_string + '"'>;
|
||||
<#recover>
|
||||
</#attempt>
|
||||
|
||||
<#return "ABORT: Couldn't convert into string non hash, non method, non boolean, non number, non enumerable object">
|
||||
|
||||
</#function>
|
||||
<#function isSubpath path searchedPath>
|
||||
|
||||
<#if path?size < searchedPath?size>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#local i=0>
|
||||
|
||||
<#list path as property>
|
||||
|
||||
<#if i == searchedPath?size >
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local searchedProperty=searchedPath[i]>
|
||||
|
||||
<#local i+= 1>
|
||||
|
||||
<#if searchedProperty?is_string && searchedProperty == "*">
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?is_string && !property?is_string>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?is_number && !property?is_number>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?string != property?string>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return true>
|
||||
|
||||
</#function>
|
||||
|
||||
<#function areSamePath path searchedPath>
|
||||
<#return path?size == searchedPath?size && isSubpath(path, searchedPath)>
|
||||
</#function>
|
||||
|
||||
<#macro addToXKeycloakifyMessagesIfMessageKey str>
|
||||
<#if !msg?? || !msg?is_method>
|
||||
<#return>
|
||||
</#if>
|
||||
<#if (str?length > 200)>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local key=removeBrackets(str)>
|
||||
<#if key?length==0>
|
||||
<#return>
|
||||
</#if>
|
||||
<#if !(key?matches(r"^[a-zA-Z0-9-_.]*$"))>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local resolvedMsg=msg(key)>
|
||||
<#if resolvedMsg==key>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local messages=xKeycloakify.messages>
|
||||
<#local messages = messages + { key: resolvedMsg }>
|
||||
<#assign xKeycloakify = xKeycloakify + { "messages": messages }>
|
||||
</#macro>
|
||||
|
||||
<#function removeBrackets str>
|
||||
<#if str?starts_with("${") && str?ends_with("}")>
|
||||
<#return str[2..(str?length-2)]>
|
||||
<#else>
|
||||
<#return str>
|
||||
</#if>
|
||||
</#function>
|
||||
|
||||
<#macro addNonAutomaticallyGatherableMessagesToXKeycloakifyMessages>
|
||||
<#if profile?? && profile?is_hash && profile.attributes?? && profile.attributes?is_enumerable>
|
||||
<#list profile.attributes as attribute>
|
||||
<#if !(
|
||||
attribute.annotations?? && attribute.annotations?is_hash &&
|
||||
attribute.annotations.inputOptionLabelsI18nPrefix?? && attribute.annotations.inputOptionLabelsI18nPrefix?is_string
|
||||
)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#local prefix=attribute.annotations.inputOptionLabelsI18nPrefix>
|
||||
<#if !(
|
||||
attribute.validators?? && attribute.validators?is_hash &&
|
||||
attribute.validators.options?? && attribute.validators.options?is_hash &&
|
||||
attribute.validators.options.options?? && attribute.validators.options.options?is_enumerable
|
||||
)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#list attribute.validators.options.options as option>
|
||||
<#if !option?is_string>
|
||||
<#continue>
|
||||
</#if>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="${prefix}.${option}" />
|
||||
</#list>
|
||||
</#list>
|
||||
</#if>
|
||||
<#if xKeycloakify.pageId == "terms.ftl" || termsAcceptanceRequired?? && termsAcceptanceRequired>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="termsText" />
|
||||
</#if>
|
||||
<#if requiredActions?? && requiredActions?is_enumerable>
|
||||
<#list requiredActions as requiredAction>
|
||||
<#if !requiredAction?is_string>
|
||||
<#continue>
|
||||
</#if>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="requiredAction.${requiredAction}" />
|
||||
</#list>
|
||||
</#if>
|
||||
</#macro>
|
||||
|
||||
</script>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="${xKeycloakify.resourcesPath}/dist/favicon-32x32.png">
|
||||
<script type="module" crossorigin="" src="${xKeycloakify.resourcesPath}/dist/assets/index-6-NnS-wp.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="root"></div>
|
||||
|
||||
|
||||
</body></html>
|
@ -0,0 +1,739 @@
|
||||
<!DOCTYPE html><html><head><script>
|
||||
<#assign xKeycloakify={
|
||||
"messages": {},
|
||||
"pageId": "idp-review-user-profile.ftl",
|
||||
"ftlTemplateFileName": "idp-review-user-profile.ftl",
|
||||
"themeType": "login",
|
||||
"themeName": "keycloakify-starter",
|
||||
"keycloakifyVersion": "11.4.4",
|
||||
"themeVersion": "0.0.0",
|
||||
"resourcesPath": ""
|
||||
}>
|
||||
|
||||
<#if url?? && url?is_hash && url.resourcesPath?? && url.resourcesPath?is_string>
|
||||
<#assign xKeycloakify = xKeycloakify + { "resourcesPath": url.resourcesPath }>
|
||||
</#if>
|
||||
<#if resourceUrl?? && resourceUrl?is_string>
|
||||
<#assign xKeycloakify = xKeycloakify + { "resourcesPath": resourceUrl }>
|
||||
</#if>
|
||||
|
||||
const kcContext = ${toJsDeclarationString(.data_model, [])?no_esc};
|
||||
kcContext.keycloakifyVersion = "${xKeycloakify.keycloakifyVersion}";
|
||||
kcContext.themeVersion = "${xKeycloakify.themeVersion}";
|
||||
kcContext.themeType = "${xKeycloakify.themeType}";
|
||||
kcContext.themeName = "${xKeycloakify.themeName}";
|
||||
kcContext.pageId = "${xKeycloakify.pageId}";
|
||||
kcContext.ftlTemplateFileName = "${xKeycloakify.ftlTemplateFileName}";
|
||||
|
||||
<@addNonAutomaticallyGatherableMessagesToXKeycloakifyMessages />
|
||||
|
||||
kcContext["x-keycloakify"] = {};
|
||||
|
||||
kcContext["x-keycloakify"].resourcesPath = "${xKeycloakify.resourcesPath}";
|
||||
|
||||
{
|
||||
var messages = {};
|
||||
<#list xKeycloakify.messages as key, resolvedMsg>
|
||||
messages["${key}"] = decodeHtmlEntities("${resolvedMsg?js_string}");
|
||||
</#list>
|
||||
kcContext["x-keycloakify"].messages = messages;
|
||||
}
|
||||
|
||||
if(
|
||||
kcContext.url instanceof Object &&
|
||||
typeof kcContext.url.resourcesPath === "string"
|
||||
){
|
||||
kcContext.url.resourcesCommonPath = kcContext.url.resourcesPath + "/resources-common";
|
||||
}
|
||||
|
||||
if( kcContext.messagesPerField ){
|
||||
var existsError_singleFieldName = kcContext.messagesPerField.existsError;
|
||||
kcContext.messagesPerField.existsError = function (){
|
||||
for( let i = 0; i < arguments.length; i++ ){
|
||||
if( existsError_singleFieldName(arguments[i]) ){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
};
|
||||
kcContext.messagesPerField.exists = function (fieldName) {
|
||||
return kcContext.messagesPerField.get(fieldName) !== "";
|
||||
};
|
||||
kcContext.messagesPerField.printIfExists = function (fieldName, text) {
|
||||
return kcContext.messagesPerField.exists(fieldName) ? text : undefined;
|
||||
};
|
||||
kcContext.messagesPerField.getFirstError = function () {
|
||||
for( let i = 0; i < arguments.length; i++ ){
|
||||
const fieldName = arguments[i];
|
||||
if( kcContext.messagesPerField.existsError(fieldName) ){
|
||||
return kcContext.messagesPerField.get(fieldName);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
attributes_to_attributesByName: {
|
||||
if( !kcContext.profile ){
|
||||
break attributes_to_attributesByName;
|
||||
}
|
||||
if( !kcContext.profile.attributes ){
|
||||
break attributes_to_attributesByName;
|
||||
}
|
||||
var attributes = kcContext.profile.attributes;
|
||||
delete kcContext.profile.attributes;
|
||||
kcContext.profile.attributesByName = {};
|
||||
attributes.forEach(function(attribute){
|
||||
kcContext.profile.attributesByName[attribute.name] = attribute;
|
||||
});
|
||||
}
|
||||
|
||||
redirect_to_dev_server: {
|
||||
|
||||
switch(kcContext.themeType){
|
||||
case "login":
|
||||
break redirect_to_dev_server;
|
||||
case "account":
|
||||
if( kcContext.pageId !== "index.ftl" ){
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
break;
|
||||
case "admin":
|
||||
break;
|
||||
default:
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
|
||||
const devSeverPort = kcContext.properties.KEYCLOAKIFY_SPA_DEV_SERVER_PORT;
|
||||
|
||||
if( !devSeverPort ){
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
|
||||
const redirectUrl = new URL(window.location.href);
|
||||
|
||||
redirectUrl.port = devSeverPort;
|
||||
|
||||
delete kcContext.msgJSON;
|
||||
|
||||
console.log(kcContext);
|
||||
|
||||
redirectUrl.searchParams.set("kcContext", encodeURIComponent(JSON.stringify(kcContext)));
|
||||
|
||||
window.location.href = redirectUrl.toString();
|
||||
|
||||
}
|
||||
|
||||
|
||||
window.kcContext = kcContext;
|
||||
|
||||
|
||||
<#if xKeycloakify.themeType == "login" >
|
||||
{
|
||||
const script = document.createElement("script");
|
||||
script.type = "importmap";
|
||||
script.textContent = JSON.stringify({
|
||||
imports: {
|
||||
"rfc4648": kcContext.url.resourcesCommonPath + "/node_modules/rfc4648/lib/rfc4648.js"
|
||||
}
|
||||
}, null, 2);
|
||||
|
||||
document.head.appendChild(script);
|
||||
}
|
||||
</#if>
|
||||
|
||||
function decodeHtmlEntities(htmlStr){
|
||||
var element = decodeHtmlEntities.element;
|
||||
if (!element) {
|
||||
element = document.createElement("textarea");
|
||||
decodeHtmlEntities.element = element;
|
||||
}
|
||||
element.innerHTML = htmlStr;
|
||||
return element.value;
|
||||
}
|
||||
|
||||
<#function toJsDeclarationString object path>
|
||||
<#local isHash = -1>
|
||||
<#attempt>
|
||||
<#local isHash = object?is_hash || object?is_hash_ex>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't evaluate if " + path?join(".") + " is a hash">
|
||||
</#attempt>
|
||||
|
||||
<#if isHash>
|
||||
<#if path?size gt 10>
|
||||
<#return "ABORT: Too many recursive calls, path: " + path?join(".")>
|
||||
</#if>
|
||||
<#local keys = -1>
|
||||
|
||||
<#attempt>
|
||||
<#local keys = object?keys>
|
||||
<#recover>
|
||||
<#return "ABORT: We can't list keys on object">
|
||||
</#attempt>
|
||||
|
||||
<#local outSeq = []>
|
||||
|
||||
<#list keys as key>
|
||||
<#if ["class","declaredConstructors","superclass","declaringClass" ]?seq_contains(key) >
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if (
|
||||
areSamePath(path, ["url"]) &&
|
||||
["loginUpdatePasswordUrl", "loginUpdateProfileUrl", "loginUsernameReminderUrl", "loginUpdateTotpUrl"]?seq_contains(key)
|
||||
) || (
|
||||
key == "updateProfileCtx" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
<#-- https://github.com/keycloakify/keycloakify/pull/65#issuecomment-991896344 (reports with saml-post-form.ftl) -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/91#issue-1212319466 (reports with error.ftl and Kc18) -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/109#issuecomment-1134610163 -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/357 -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/discussions/406#discussioncomment-7514787 -->
|
||||
key == "loginAction" &&
|
||||
areSamePath(path, ["url"]) &&
|
||||
["saml-post-form.ftl", "error.ftl", "info.ftl", "login-oauth-grant.ftl", "logout-confirm.ftl", "login-oauth2-device-verify-user-code.ftl"]?seq_contains(xKeycloakify.pageId) &&
|
||||
!(auth?has_content && auth.showTryAnotherWayLink())
|
||||
) || (
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/362 -->
|
||||
["secretData", "value"]?seq_contains(key) &&
|
||||
areSamePath(path, [ "totp", "otpCredentials", "*" ])
|
||||
) || (
|
||||
["contextData", "idpConfig", "idp", "authenticationSession"]?seq_contains(key) &&
|
||||
areSamePath(path, ["brokerContext"]) &&
|
||||
["login-idp-link-confirm.ftl", "login-idp-link-email.ftl" ]?seq_contains(xKeycloakify.pageId)
|
||||
) || (
|
||||
key == "identityProviderBrokerCtx" &&
|
||||
areSamePath(path, []) &&
|
||||
["login-idp-link-confirm.ftl", "login-idp-link-email.ftl" ]?seq_contains(xKeycloakify.pageId)
|
||||
) || (
|
||||
["masterAdminClient", "delegateForUpdate", "defaultRole", "smtpConfig"]?seq_contains(key) &&
|
||||
areSamePath(path, ["realm"])
|
||||
) || (
|
||||
xKeycloakify.pageId == "error.ftl" &&
|
||||
areSamePath(path, ["realm"]) &&
|
||||
!["name", "displayName", "displayNameHtml", "internationalizationEnabled", "registrationEmailAsUsername" ]?seq_contains(key)
|
||||
) || (
|
||||
xKeycloakify.pageId == "applications.ftl" &&
|
||||
(
|
||||
key == "realm" ||
|
||||
key == "container"
|
||||
) &&
|
||||
isSubpath(path, ["applications", "applications"])
|
||||
) || (
|
||||
key == "delegateForUpdate" &&
|
||||
areSamePath(path, ["user"])
|
||||
) || (
|
||||
<#-- Security audit forwarded by Garth (Gmail) -->
|
||||
key == "saml.signing.private.key" &&
|
||||
areSamePath(path, ["client", "attributes"])
|
||||
) || (
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/534 -->
|
||||
key == "password" &&
|
||||
areSamePath(path, ["login"])
|
||||
) || (
|
||||
<#-- Remove realmAttributes added by https://github.com/jcputney/keycloak-theme-additional-info-extension for peace of mind. -->
|
||||
key == "realmAttributes" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
<#-- attributesByName adds a lot of noise to the output and is not needed, we already have profile.attributes -->
|
||||
key == "attributesByName" &&
|
||||
areSamePath(path, ["profile"])
|
||||
) || (
|
||||
<#-- We already have the attributes in profile speedup the rendering by filtering it out from the register object -->
|
||||
(key == "attributes" || key == "attributesByName") &&
|
||||
areSamePath(path, ["register"])
|
||||
) || (
|
||||
areSamePath(path, ["properties"]) &&
|
||||
(
|
||||
key?starts_with("kc") ||
|
||||
key == "locales" ||
|
||||
key == "import" ||
|
||||
key == "parent" ||
|
||||
key == "meta" ||
|
||||
key == "stylesCommon" ||
|
||||
key == "styles" ||
|
||||
key == "accountResourceProvider"
|
||||
)
|
||||
) || (
|
||||
key == "execution" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
key == "entity" &&
|
||||
areSamePath(path, ["user"])
|
||||
) || (
|
||||
key == "attributes" &&
|
||||
areSamePath(path, ["realm"])
|
||||
) || (
|
||||
xKeycloakify.pageId == "index.ftl" &&
|
||||
xKeycloakify.themeType == "account" &&
|
||||
areSamePath(path, ["realm"]) &&
|
||||
![
|
||||
"name",
|
||||
"registrationEmailAsUsername",
|
||||
"editUsernameAllowed",
|
||||
"isInternationalizationEnabled",
|
||||
"identityFederationEnabled",
|
||||
"userManagedAccessAllowed"
|
||||
]?seq_contains(key)
|
||||
) || (
|
||||
["flowContext", "session", "realm"]?seq_contains(key) &&
|
||||
areSamePath(path, ["social"])
|
||||
)
|
||||
>
|
||||
<#-- <#local outSeq += ["/*" + path?join(".") + "." + key + " excluded*/"]> -->
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#-- https://github.com/keycloakify/keycloakify/discussions/406 -->
|
||||
<#if (
|
||||
key == "attemptedUsername" &&
|
||||
areSamePath(path, ["auth"]) &&
|
||||
[
|
||||
"register.ftl", "terms.ftl", "info.ftl", "login.ftl",
|
||||
"login-update-password.ftl", "login-oauth2-device-verify-user-code.ftl"
|
||||
]?seq_contains(xKeycloakify.pageId)
|
||||
)>
|
||||
<#attempt>
|
||||
<#-- https://github.com/keycloak/keycloak/blob/3a2bf0c04bcde185e497aaa32d0bb7ab7520cf4a/themes/src/main/resources/theme/base/login/template.ftl#L63 -->
|
||||
<#if !(auth?has_content && auth.showUsername() && !auth.showResetCredentials())>
|
||||
<#local outSeq += ["/*" + path?join(".") + "." + key + " excluded*/"]>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Accessing attemptedUsername throwed an exception */"]>
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
|
||||
|
||||
<#attempt>
|
||||
<#if !object[key]??>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Couldn't test if '" + key + "' is available on this object*/"]>
|
||||
<#continue>
|
||||
</#attempt>
|
||||
|
||||
<#local propertyValue = -1>
|
||||
|
||||
<#attempt>
|
||||
<#local propertyValue = object[key]>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Couldn't dereference '" + key + "' on this object*/"]>
|
||||
<#continue>
|
||||
</#attempt>
|
||||
|
||||
<#local recOut = toJsDeclarationString(propertyValue, path + [ key ])>
|
||||
|
||||
<#if recOut?starts_with("ABORT:")>
|
||||
|
||||
<#local errorMessage = recOut?remove_beginning("ABORT:")>
|
||||
|
||||
<#if errorMessage != " It's a method" >
|
||||
<#local outSeq += ["/*" + key + ": " + errorMessage + "*/"]>
|
||||
</#if>
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local outSeq += ['"' + key + '": ' + recOut + ","]>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return (["{"] + outSeq?map(str -> ""?right_pad(4 * (path?size + 1)) + str) + [ ""?right_pad(4 * path?size) + "}"])?join("\n")>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local isMethod = -1>
|
||||
<#attempt>
|
||||
<#local isMethod = object?is_method>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it'sa method.">
|
||||
</#attempt>
|
||||
|
||||
<#if isMethod>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showUsername"])>
|
||||
<#attempt>
|
||||
<#return auth.showUsername()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showUsername()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showResetCredentials"])>
|
||||
<#attempt>
|
||||
<#return auth.showResetCredentials()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showResetCredentials()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showTryAnotherWayLink"])>
|
||||
<#attempt>
|
||||
<#return auth.showTryAnotherWayLink()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showTryAnotherWayLink()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["url", "getLogoutUrl"])>
|
||||
<#local returnValue = -1>
|
||||
<#attempt>
|
||||
<#local returnValue = url.getLogoutUrl()>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate url.getLogoutUrl()">
|
||||
</#attempt>
|
||||
<#return 'function(){ return "' + returnValue + '"; }'>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["totp", "policy", "getAlgorithmKey"])>
|
||||
<#local returnValue = "error">
|
||||
<#if mode?? && mode = "manual">
|
||||
<#attempt>
|
||||
<#local returnValue = totp.policy.getAlgorithmKey()>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate totp.policy.getAlgorithmKey()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
<#return 'function(){ return "' + returnValue + '"; }'>
|
||||
</#if>
|
||||
|
||||
<#assign fieldNames = ["firstName", "lastName", "email", "username", "password", "password-confirm", "global", "totp", "userLabel", "recoveryCodeInput", "termsAccepted"]>
|
||||
<#if profile?? && profile.attributes??>
|
||||
<#list profile.attributes as attribute>
|
||||
<#if fieldNames?seq_contains(attribute.name)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#assign fieldNames += [attribute.name]>
|
||||
</#list>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["messagesPerField", "get"])>
|
||||
|
||||
<#local jsFunctionCode = "function (fieldName) { ">
|
||||
|
||||
<#list fieldNames as fieldName>
|
||||
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/217 -->
|
||||
<#if xKeycloakify.pageId == "login.ftl" >
|
||||
|
||||
<#if fieldName == "username">
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === 'username' || fieldName === 'password' ){ ">
|
||||
|
||||
<#if messagesPerField.exists('username') || messagesPerField.exists('password')>
|
||||
<#local jsFunctionCode += "return kcContext.message && kcContext.message.summary ? kcContext.message.summary : 'error'; ">
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return ''; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if fieldName == "password">
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === '" + fieldName + "'){ ">
|
||||
|
||||
<#if messagesPerField.exists('${fieldName}')>
|
||||
<#local jsFunctionCode += 'return decodeHtmlEntities("' + messagesPerField.get('${fieldName}')?js_string + '"); '>
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return ''; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
</#list>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
<#return jsFunctionCode>
|
||||
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["messagesPerField", "existsError"])>
|
||||
|
||||
<#local jsFunctionCode = "function (fieldName) { ">
|
||||
|
||||
<#list fieldNames as fieldName>
|
||||
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/217 -->
|
||||
<#if xKeycloakify.pageId == "login.ftl" >
|
||||
<#if fieldName == "username">
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === 'username' || fieldName === 'password' ){ ">
|
||||
|
||||
<#if messagesPerField.existsError('username') || messagesPerField.existsError('password')>
|
||||
<#local jsFunctionCode += "return true; ">
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return false; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if fieldName == "password">
|
||||
<#continue>
|
||||
</#if>
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === '" + fieldName + "' ){ ">
|
||||
|
||||
<#if messagesPerField.existsError('${fieldName}')>
|
||||
<#local jsFunctionCode += 'return true; '>
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return false; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
</#list>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
<#return jsFunctionCode>
|
||||
|
||||
</#if>
|
||||
|
||||
<#if xKeycloakify.themeType == "account" && areSamePath(path, ["realm", "isInternationalizationEnabled"])>
|
||||
<#attempt>
|
||||
<#return realm.isInternationalizationEnabled()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate realm.isInternationalizationEnabled()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#return "ABORT: It's a method">
|
||||
</#if>
|
||||
|
||||
<#local isBoolean = -1>
|
||||
<#attempt>
|
||||
<#local isBoolean = object?is_boolean>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a boolean">
|
||||
</#attempt>
|
||||
|
||||
<#if isBoolean>
|
||||
<#return object?c>
|
||||
</#if>
|
||||
|
||||
<#local isEnumerable = -1>
|
||||
<#attempt>
|
||||
<#local isEnumerable = object?is_enumerable>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's an enumerable">
|
||||
</#attempt>
|
||||
|
||||
|
||||
<#if isEnumerable>
|
||||
|
||||
<#local outSeq = []>
|
||||
|
||||
<#local i = 0>
|
||||
|
||||
<#list object as array_item>
|
||||
|
||||
<#if !array_item??>
|
||||
<#local outSeq += ["null,"]>
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local recOut = toJsDeclarationString(array_item, path + [ i ])>
|
||||
|
||||
<#local i = i + 1>
|
||||
|
||||
<#if recOut?starts_with("ABORT:")>
|
||||
|
||||
<#local errorMessage = recOut?remove_beginning("ABORT:")>
|
||||
|
||||
<#if errorMessage != " It's a method" >
|
||||
<#local outSeq += ["/*" + i?string + ": " + errorMessage + "*/"]>
|
||||
</#if>
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local outSeq += [recOut + ","]>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return (["["] + outSeq?map(str -> ""?right_pad(4 * (path?size + 1)) + str) + [ ""?right_pad(4 * path?size) + "]"])?join("\n")>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local isDate = -1>
|
||||
<#attempt>
|
||||
<#local isDate = object?is_date_like>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a date">
|
||||
</#attempt>
|
||||
|
||||
<#if isDate>
|
||||
<#return '"' + object?datetime?iso_utc + '"'>
|
||||
</#if>
|
||||
|
||||
<#local isNumber = -1>
|
||||
<#attempt>
|
||||
<#local isNumber = object?is_number>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a number">
|
||||
</#attempt>
|
||||
|
||||
<#if isNumber>
|
||||
<#return object?c>
|
||||
</#if>
|
||||
|
||||
<#local isString = -1>
|
||||
<#attempt>
|
||||
<#local isString = object?is_string>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a string">
|
||||
</#attempt>
|
||||
|
||||
<#if isString>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str=object />
|
||||
</#if>
|
||||
|
||||
<#attempt>
|
||||
<#return '"' + object?js_string + '"'>;
|
||||
<#recover>
|
||||
</#attempt>
|
||||
|
||||
<#return "ABORT: Couldn't convert into string non hash, non method, non boolean, non number, non enumerable object">
|
||||
|
||||
</#function>
|
||||
<#function isSubpath path searchedPath>
|
||||
|
||||
<#if path?size < searchedPath?size>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#local i=0>
|
||||
|
||||
<#list path as property>
|
||||
|
||||
<#if i == searchedPath?size >
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local searchedProperty=searchedPath[i]>
|
||||
|
||||
<#local i+= 1>
|
||||
|
||||
<#if searchedProperty?is_string && searchedProperty == "*">
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?is_string && !property?is_string>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?is_number && !property?is_number>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?string != property?string>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return true>
|
||||
|
||||
</#function>
|
||||
|
||||
<#function areSamePath path searchedPath>
|
||||
<#return path?size == searchedPath?size && isSubpath(path, searchedPath)>
|
||||
</#function>
|
||||
|
||||
<#macro addToXKeycloakifyMessagesIfMessageKey str>
|
||||
<#if !msg?? || !msg?is_method>
|
||||
<#return>
|
||||
</#if>
|
||||
<#if (str?length > 200)>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local key=removeBrackets(str)>
|
||||
<#if key?length==0>
|
||||
<#return>
|
||||
</#if>
|
||||
<#if !(key?matches(r"^[a-zA-Z0-9-_.]*$"))>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local resolvedMsg=msg(key)>
|
||||
<#if resolvedMsg==key>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local messages=xKeycloakify.messages>
|
||||
<#local messages = messages + { key: resolvedMsg }>
|
||||
<#assign xKeycloakify = xKeycloakify + { "messages": messages }>
|
||||
</#macro>
|
||||
|
||||
<#function removeBrackets str>
|
||||
<#if str?starts_with("${") && str?ends_with("}")>
|
||||
<#return str[2..(str?length-2)]>
|
||||
<#else>
|
||||
<#return str>
|
||||
</#if>
|
||||
</#function>
|
||||
|
||||
<#macro addNonAutomaticallyGatherableMessagesToXKeycloakifyMessages>
|
||||
<#if profile?? && profile?is_hash && profile.attributes?? && profile.attributes?is_enumerable>
|
||||
<#list profile.attributes as attribute>
|
||||
<#if !(
|
||||
attribute.annotations?? && attribute.annotations?is_hash &&
|
||||
attribute.annotations.inputOptionLabelsI18nPrefix?? && attribute.annotations.inputOptionLabelsI18nPrefix?is_string
|
||||
)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#local prefix=attribute.annotations.inputOptionLabelsI18nPrefix>
|
||||
<#if !(
|
||||
attribute.validators?? && attribute.validators?is_hash &&
|
||||
attribute.validators.options?? && attribute.validators.options?is_hash &&
|
||||
attribute.validators.options.options?? && attribute.validators.options.options?is_enumerable
|
||||
)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#list attribute.validators.options.options as option>
|
||||
<#if !option?is_string>
|
||||
<#continue>
|
||||
</#if>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="${prefix}.${option}" />
|
||||
</#list>
|
||||
</#list>
|
||||
</#if>
|
||||
<#if xKeycloakify.pageId == "terms.ftl" || termsAcceptanceRequired?? && termsAcceptanceRequired>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="termsText" />
|
||||
</#if>
|
||||
<#if requiredActions?? && requiredActions?is_enumerable>
|
||||
<#list requiredActions as requiredAction>
|
||||
<#if !requiredAction?is_string>
|
||||
<#continue>
|
||||
</#if>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="requiredAction.${requiredAction}" />
|
||||
</#list>
|
||||
</#if>
|
||||
</#macro>
|
||||
|
||||
</script>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="${xKeycloakify.resourcesPath}/dist/favicon-32x32.png">
|
||||
<script type="module" crossorigin="" src="${xKeycloakify.resourcesPath}/dist/assets/index-6-NnS-wp.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="root"></div>
|
||||
|
||||
|
||||
</body></html>
|
739
dist_keycloak/theme/keycloakify-starter/login/info.ftl
Normal file
739
dist_keycloak/theme/keycloakify-starter/login/info.ftl
Normal file
@ -0,0 +1,739 @@
|
||||
<!DOCTYPE html><html><head><script>
|
||||
<#assign xKeycloakify={
|
||||
"messages": {},
|
||||
"pageId": "info.ftl",
|
||||
"ftlTemplateFileName": "info.ftl",
|
||||
"themeType": "login",
|
||||
"themeName": "keycloakify-starter",
|
||||
"keycloakifyVersion": "11.4.4",
|
||||
"themeVersion": "0.0.0",
|
||||
"resourcesPath": ""
|
||||
}>
|
||||
|
||||
<#if url?? && url?is_hash && url.resourcesPath?? && url.resourcesPath?is_string>
|
||||
<#assign xKeycloakify = xKeycloakify + { "resourcesPath": url.resourcesPath }>
|
||||
</#if>
|
||||
<#if resourceUrl?? && resourceUrl?is_string>
|
||||
<#assign xKeycloakify = xKeycloakify + { "resourcesPath": resourceUrl }>
|
||||
</#if>
|
||||
|
||||
const kcContext = ${toJsDeclarationString(.data_model, [])?no_esc};
|
||||
kcContext.keycloakifyVersion = "${xKeycloakify.keycloakifyVersion}";
|
||||
kcContext.themeVersion = "${xKeycloakify.themeVersion}";
|
||||
kcContext.themeType = "${xKeycloakify.themeType}";
|
||||
kcContext.themeName = "${xKeycloakify.themeName}";
|
||||
kcContext.pageId = "${xKeycloakify.pageId}";
|
||||
kcContext.ftlTemplateFileName = "${xKeycloakify.ftlTemplateFileName}";
|
||||
|
||||
<@addNonAutomaticallyGatherableMessagesToXKeycloakifyMessages />
|
||||
|
||||
kcContext["x-keycloakify"] = {};
|
||||
|
||||
kcContext["x-keycloakify"].resourcesPath = "${xKeycloakify.resourcesPath}";
|
||||
|
||||
{
|
||||
var messages = {};
|
||||
<#list xKeycloakify.messages as key, resolvedMsg>
|
||||
messages["${key}"] = decodeHtmlEntities("${resolvedMsg?js_string}");
|
||||
</#list>
|
||||
kcContext["x-keycloakify"].messages = messages;
|
||||
}
|
||||
|
||||
if(
|
||||
kcContext.url instanceof Object &&
|
||||
typeof kcContext.url.resourcesPath === "string"
|
||||
){
|
||||
kcContext.url.resourcesCommonPath = kcContext.url.resourcesPath + "/resources-common";
|
||||
}
|
||||
|
||||
if( kcContext.messagesPerField ){
|
||||
var existsError_singleFieldName = kcContext.messagesPerField.existsError;
|
||||
kcContext.messagesPerField.existsError = function (){
|
||||
for( let i = 0; i < arguments.length; i++ ){
|
||||
if( existsError_singleFieldName(arguments[i]) ){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
};
|
||||
kcContext.messagesPerField.exists = function (fieldName) {
|
||||
return kcContext.messagesPerField.get(fieldName) !== "";
|
||||
};
|
||||
kcContext.messagesPerField.printIfExists = function (fieldName, text) {
|
||||
return kcContext.messagesPerField.exists(fieldName) ? text : undefined;
|
||||
};
|
||||
kcContext.messagesPerField.getFirstError = function () {
|
||||
for( let i = 0; i < arguments.length; i++ ){
|
||||
const fieldName = arguments[i];
|
||||
if( kcContext.messagesPerField.existsError(fieldName) ){
|
||||
return kcContext.messagesPerField.get(fieldName);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
attributes_to_attributesByName: {
|
||||
if( !kcContext.profile ){
|
||||
break attributes_to_attributesByName;
|
||||
}
|
||||
if( !kcContext.profile.attributes ){
|
||||
break attributes_to_attributesByName;
|
||||
}
|
||||
var attributes = kcContext.profile.attributes;
|
||||
delete kcContext.profile.attributes;
|
||||
kcContext.profile.attributesByName = {};
|
||||
attributes.forEach(function(attribute){
|
||||
kcContext.profile.attributesByName[attribute.name] = attribute;
|
||||
});
|
||||
}
|
||||
|
||||
redirect_to_dev_server: {
|
||||
|
||||
switch(kcContext.themeType){
|
||||
case "login":
|
||||
break redirect_to_dev_server;
|
||||
case "account":
|
||||
if( kcContext.pageId !== "index.ftl" ){
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
break;
|
||||
case "admin":
|
||||
break;
|
||||
default:
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
|
||||
const devSeverPort = kcContext.properties.KEYCLOAKIFY_SPA_DEV_SERVER_PORT;
|
||||
|
||||
if( !devSeverPort ){
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
|
||||
const redirectUrl = new URL(window.location.href);
|
||||
|
||||
redirectUrl.port = devSeverPort;
|
||||
|
||||
delete kcContext.msgJSON;
|
||||
|
||||
console.log(kcContext);
|
||||
|
||||
redirectUrl.searchParams.set("kcContext", encodeURIComponent(JSON.stringify(kcContext)));
|
||||
|
||||
window.location.href = redirectUrl.toString();
|
||||
|
||||
}
|
||||
|
||||
|
||||
window.kcContext = kcContext;
|
||||
|
||||
|
||||
<#if xKeycloakify.themeType == "login" >
|
||||
{
|
||||
const script = document.createElement("script");
|
||||
script.type = "importmap";
|
||||
script.textContent = JSON.stringify({
|
||||
imports: {
|
||||
"rfc4648": kcContext.url.resourcesCommonPath + "/node_modules/rfc4648/lib/rfc4648.js"
|
||||
}
|
||||
}, null, 2);
|
||||
|
||||
document.head.appendChild(script);
|
||||
}
|
||||
</#if>
|
||||
|
||||
function decodeHtmlEntities(htmlStr){
|
||||
var element = decodeHtmlEntities.element;
|
||||
if (!element) {
|
||||
element = document.createElement("textarea");
|
||||
decodeHtmlEntities.element = element;
|
||||
}
|
||||
element.innerHTML = htmlStr;
|
||||
return element.value;
|
||||
}
|
||||
|
||||
<#function toJsDeclarationString object path>
|
||||
<#local isHash = -1>
|
||||
<#attempt>
|
||||
<#local isHash = object?is_hash || object?is_hash_ex>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't evaluate if " + path?join(".") + " is a hash">
|
||||
</#attempt>
|
||||
|
||||
<#if isHash>
|
||||
<#if path?size gt 10>
|
||||
<#return "ABORT: Too many recursive calls, path: " + path?join(".")>
|
||||
</#if>
|
||||
<#local keys = -1>
|
||||
|
||||
<#attempt>
|
||||
<#local keys = object?keys>
|
||||
<#recover>
|
||||
<#return "ABORT: We can't list keys on object">
|
||||
</#attempt>
|
||||
|
||||
<#local outSeq = []>
|
||||
|
||||
<#list keys as key>
|
||||
<#if ["class","declaredConstructors","superclass","declaringClass" ]?seq_contains(key) >
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if (
|
||||
areSamePath(path, ["url"]) &&
|
||||
["loginUpdatePasswordUrl", "loginUpdateProfileUrl", "loginUsernameReminderUrl", "loginUpdateTotpUrl"]?seq_contains(key)
|
||||
) || (
|
||||
key == "updateProfileCtx" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
<#-- https://github.com/keycloakify/keycloakify/pull/65#issuecomment-991896344 (reports with saml-post-form.ftl) -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/91#issue-1212319466 (reports with error.ftl and Kc18) -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/109#issuecomment-1134610163 -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/357 -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/discussions/406#discussioncomment-7514787 -->
|
||||
key == "loginAction" &&
|
||||
areSamePath(path, ["url"]) &&
|
||||
["saml-post-form.ftl", "error.ftl", "info.ftl", "login-oauth-grant.ftl", "logout-confirm.ftl", "login-oauth2-device-verify-user-code.ftl"]?seq_contains(xKeycloakify.pageId) &&
|
||||
!(auth?has_content && auth.showTryAnotherWayLink())
|
||||
) || (
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/362 -->
|
||||
["secretData", "value"]?seq_contains(key) &&
|
||||
areSamePath(path, [ "totp", "otpCredentials", "*" ])
|
||||
) || (
|
||||
["contextData", "idpConfig", "idp", "authenticationSession"]?seq_contains(key) &&
|
||||
areSamePath(path, ["brokerContext"]) &&
|
||||
["login-idp-link-confirm.ftl", "login-idp-link-email.ftl" ]?seq_contains(xKeycloakify.pageId)
|
||||
) || (
|
||||
key == "identityProviderBrokerCtx" &&
|
||||
areSamePath(path, []) &&
|
||||
["login-idp-link-confirm.ftl", "login-idp-link-email.ftl" ]?seq_contains(xKeycloakify.pageId)
|
||||
) || (
|
||||
["masterAdminClient", "delegateForUpdate", "defaultRole", "smtpConfig"]?seq_contains(key) &&
|
||||
areSamePath(path, ["realm"])
|
||||
) || (
|
||||
xKeycloakify.pageId == "error.ftl" &&
|
||||
areSamePath(path, ["realm"]) &&
|
||||
!["name", "displayName", "displayNameHtml", "internationalizationEnabled", "registrationEmailAsUsername" ]?seq_contains(key)
|
||||
) || (
|
||||
xKeycloakify.pageId == "applications.ftl" &&
|
||||
(
|
||||
key == "realm" ||
|
||||
key == "container"
|
||||
) &&
|
||||
isSubpath(path, ["applications", "applications"])
|
||||
) || (
|
||||
key == "delegateForUpdate" &&
|
||||
areSamePath(path, ["user"])
|
||||
) || (
|
||||
<#-- Security audit forwarded by Garth (Gmail) -->
|
||||
key == "saml.signing.private.key" &&
|
||||
areSamePath(path, ["client", "attributes"])
|
||||
) || (
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/534 -->
|
||||
key == "password" &&
|
||||
areSamePath(path, ["login"])
|
||||
) || (
|
||||
<#-- Remove realmAttributes added by https://github.com/jcputney/keycloak-theme-additional-info-extension for peace of mind. -->
|
||||
key == "realmAttributes" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
<#-- attributesByName adds a lot of noise to the output and is not needed, we already have profile.attributes -->
|
||||
key == "attributesByName" &&
|
||||
areSamePath(path, ["profile"])
|
||||
) || (
|
||||
<#-- We already have the attributes in profile speedup the rendering by filtering it out from the register object -->
|
||||
(key == "attributes" || key == "attributesByName") &&
|
||||
areSamePath(path, ["register"])
|
||||
) || (
|
||||
areSamePath(path, ["properties"]) &&
|
||||
(
|
||||
key?starts_with("kc") ||
|
||||
key == "locales" ||
|
||||
key == "import" ||
|
||||
key == "parent" ||
|
||||
key == "meta" ||
|
||||
key == "stylesCommon" ||
|
||||
key == "styles" ||
|
||||
key == "accountResourceProvider"
|
||||
)
|
||||
) || (
|
||||
key == "execution" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
key == "entity" &&
|
||||
areSamePath(path, ["user"])
|
||||
) || (
|
||||
key == "attributes" &&
|
||||
areSamePath(path, ["realm"])
|
||||
) || (
|
||||
xKeycloakify.pageId == "index.ftl" &&
|
||||
xKeycloakify.themeType == "account" &&
|
||||
areSamePath(path, ["realm"]) &&
|
||||
![
|
||||
"name",
|
||||
"registrationEmailAsUsername",
|
||||
"editUsernameAllowed",
|
||||
"isInternationalizationEnabled",
|
||||
"identityFederationEnabled",
|
||||
"userManagedAccessAllowed"
|
||||
]?seq_contains(key)
|
||||
) || (
|
||||
["flowContext", "session", "realm"]?seq_contains(key) &&
|
||||
areSamePath(path, ["social"])
|
||||
)
|
||||
>
|
||||
<#-- <#local outSeq += ["/*" + path?join(".") + "." + key + " excluded*/"]> -->
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#-- https://github.com/keycloakify/keycloakify/discussions/406 -->
|
||||
<#if (
|
||||
key == "attemptedUsername" &&
|
||||
areSamePath(path, ["auth"]) &&
|
||||
[
|
||||
"register.ftl", "terms.ftl", "info.ftl", "login.ftl",
|
||||
"login-update-password.ftl", "login-oauth2-device-verify-user-code.ftl"
|
||||
]?seq_contains(xKeycloakify.pageId)
|
||||
)>
|
||||
<#attempt>
|
||||
<#-- https://github.com/keycloak/keycloak/blob/3a2bf0c04bcde185e497aaa32d0bb7ab7520cf4a/themes/src/main/resources/theme/base/login/template.ftl#L63 -->
|
||||
<#if !(auth?has_content && auth.showUsername() && !auth.showResetCredentials())>
|
||||
<#local outSeq += ["/*" + path?join(".") + "." + key + " excluded*/"]>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Accessing attemptedUsername throwed an exception */"]>
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
|
||||
|
||||
<#attempt>
|
||||
<#if !object[key]??>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Couldn't test if '" + key + "' is available on this object*/"]>
|
||||
<#continue>
|
||||
</#attempt>
|
||||
|
||||
<#local propertyValue = -1>
|
||||
|
||||
<#attempt>
|
||||
<#local propertyValue = object[key]>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Couldn't dereference '" + key + "' on this object*/"]>
|
||||
<#continue>
|
||||
</#attempt>
|
||||
|
||||
<#local recOut = toJsDeclarationString(propertyValue, path + [ key ])>
|
||||
|
||||
<#if recOut?starts_with("ABORT:")>
|
||||
|
||||
<#local errorMessage = recOut?remove_beginning("ABORT:")>
|
||||
|
||||
<#if errorMessage != " It's a method" >
|
||||
<#local outSeq += ["/*" + key + ": " + errorMessage + "*/"]>
|
||||
</#if>
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local outSeq += ['"' + key + '": ' + recOut + ","]>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return (["{"] + outSeq?map(str -> ""?right_pad(4 * (path?size + 1)) + str) + [ ""?right_pad(4 * path?size) + "}"])?join("\n")>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local isMethod = -1>
|
||||
<#attempt>
|
||||
<#local isMethod = object?is_method>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it'sa method.">
|
||||
</#attempt>
|
||||
|
||||
<#if isMethod>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showUsername"])>
|
||||
<#attempt>
|
||||
<#return auth.showUsername()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showUsername()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showResetCredentials"])>
|
||||
<#attempt>
|
||||
<#return auth.showResetCredentials()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showResetCredentials()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showTryAnotherWayLink"])>
|
||||
<#attempt>
|
||||
<#return auth.showTryAnotherWayLink()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showTryAnotherWayLink()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["url", "getLogoutUrl"])>
|
||||
<#local returnValue = -1>
|
||||
<#attempt>
|
||||
<#local returnValue = url.getLogoutUrl()>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate url.getLogoutUrl()">
|
||||
</#attempt>
|
||||
<#return 'function(){ return "' + returnValue + '"; }'>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["totp", "policy", "getAlgorithmKey"])>
|
||||
<#local returnValue = "error">
|
||||
<#if mode?? && mode = "manual">
|
||||
<#attempt>
|
||||
<#local returnValue = totp.policy.getAlgorithmKey()>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate totp.policy.getAlgorithmKey()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
<#return 'function(){ return "' + returnValue + '"; }'>
|
||||
</#if>
|
||||
|
||||
<#assign fieldNames = ["firstName", "lastName", "email", "username", "password", "password-confirm", "global", "totp", "userLabel", "recoveryCodeInput", "termsAccepted"]>
|
||||
<#if profile?? && profile.attributes??>
|
||||
<#list profile.attributes as attribute>
|
||||
<#if fieldNames?seq_contains(attribute.name)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#assign fieldNames += [attribute.name]>
|
||||
</#list>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["messagesPerField", "get"])>
|
||||
|
||||
<#local jsFunctionCode = "function (fieldName) { ">
|
||||
|
||||
<#list fieldNames as fieldName>
|
||||
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/217 -->
|
||||
<#if xKeycloakify.pageId == "login.ftl" >
|
||||
|
||||
<#if fieldName == "username">
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === 'username' || fieldName === 'password' ){ ">
|
||||
|
||||
<#if messagesPerField.exists('username') || messagesPerField.exists('password')>
|
||||
<#local jsFunctionCode += "return kcContext.message && kcContext.message.summary ? kcContext.message.summary : 'error'; ">
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return ''; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if fieldName == "password">
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === '" + fieldName + "'){ ">
|
||||
|
||||
<#if messagesPerField.exists('${fieldName}')>
|
||||
<#local jsFunctionCode += 'return decodeHtmlEntities("' + messagesPerField.get('${fieldName}')?js_string + '"); '>
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return ''; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
</#list>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
<#return jsFunctionCode>
|
||||
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["messagesPerField", "existsError"])>
|
||||
|
||||
<#local jsFunctionCode = "function (fieldName) { ">
|
||||
|
||||
<#list fieldNames as fieldName>
|
||||
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/217 -->
|
||||
<#if xKeycloakify.pageId == "login.ftl" >
|
||||
<#if fieldName == "username">
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === 'username' || fieldName === 'password' ){ ">
|
||||
|
||||
<#if messagesPerField.existsError('username') || messagesPerField.existsError('password')>
|
||||
<#local jsFunctionCode += "return true; ">
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return false; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if fieldName == "password">
|
||||
<#continue>
|
||||
</#if>
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === '" + fieldName + "' ){ ">
|
||||
|
||||
<#if messagesPerField.existsError('${fieldName}')>
|
||||
<#local jsFunctionCode += 'return true; '>
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return false; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
</#list>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
<#return jsFunctionCode>
|
||||
|
||||
</#if>
|
||||
|
||||
<#if xKeycloakify.themeType == "account" && areSamePath(path, ["realm", "isInternationalizationEnabled"])>
|
||||
<#attempt>
|
||||
<#return realm.isInternationalizationEnabled()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate realm.isInternationalizationEnabled()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#return "ABORT: It's a method">
|
||||
</#if>
|
||||
|
||||
<#local isBoolean = -1>
|
||||
<#attempt>
|
||||
<#local isBoolean = object?is_boolean>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a boolean">
|
||||
</#attempt>
|
||||
|
||||
<#if isBoolean>
|
||||
<#return object?c>
|
||||
</#if>
|
||||
|
||||
<#local isEnumerable = -1>
|
||||
<#attempt>
|
||||
<#local isEnumerable = object?is_enumerable>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's an enumerable">
|
||||
</#attempt>
|
||||
|
||||
|
||||
<#if isEnumerable>
|
||||
|
||||
<#local outSeq = []>
|
||||
|
||||
<#local i = 0>
|
||||
|
||||
<#list object as array_item>
|
||||
|
||||
<#if !array_item??>
|
||||
<#local outSeq += ["null,"]>
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local recOut = toJsDeclarationString(array_item, path + [ i ])>
|
||||
|
||||
<#local i = i + 1>
|
||||
|
||||
<#if recOut?starts_with("ABORT:")>
|
||||
|
||||
<#local errorMessage = recOut?remove_beginning("ABORT:")>
|
||||
|
||||
<#if errorMessage != " It's a method" >
|
||||
<#local outSeq += ["/*" + i?string + ": " + errorMessage + "*/"]>
|
||||
</#if>
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local outSeq += [recOut + ","]>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return (["["] + outSeq?map(str -> ""?right_pad(4 * (path?size + 1)) + str) + [ ""?right_pad(4 * path?size) + "]"])?join("\n")>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local isDate = -1>
|
||||
<#attempt>
|
||||
<#local isDate = object?is_date_like>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a date">
|
||||
</#attempt>
|
||||
|
||||
<#if isDate>
|
||||
<#return '"' + object?datetime?iso_utc + '"'>
|
||||
</#if>
|
||||
|
||||
<#local isNumber = -1>
|
||||
<#attempt>
|
||||
<#local isNumber = object?is_number>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a number">
|
||||
</#attempt>
|
||||
|
||||
<#if isNumber>
|
||||
<#return object?c>
|
||||
</#if>
|
||||
|
||||
<#local isString = -1>
|
||||
<#attempt>
|
||||
<#local isString = object?is_string>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a string">
|
||||
</#attempt>
|
||||
|
||||
<#if isString>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str=object />
|
||||
</#if>
|
||||
|
||||
<#attempt>
|
||||
<#return '"' + object?js_string + '"'>;
|
||||
<#recover>
|
||||
</#attempt>
|
||||
|
||||
<#return "ABORT: Couldn't convert into string non hash, non method, non boolean, non number, non enumerable object">
|
||||
|
||||
</#function>
|
||||
<#function isSubpath path searchedPath>
|
||||
|
||||
<#if path?size < searchedPath?size>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#local i=0>
|
||||
|
||||
<#list path as property>
|
||||
|
||||
<#if i == searchedPath?size >
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local searchedProperty=searchedPath[i]>
|
||||
|
||||
<#local i+= 1>
|
||||
|
||||
<#if searchedProperty?is_string && searchedProperty == "*">
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?is_string && !property?is_string>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?is_number && !property?is_number>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?string != property?string>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return true>
|
||||
|
||||
</#function>
|
||||
|
||||
<#function areSamePath path searchedPath>
|
||||
<#return path?size == searchedPath?size && isSubpath(path, searchedPath)>
|
||||
</#function>
|
||||
|
||||
<#macro addToXKeycloakifyMessagesIfMessageKey str>
|
||||
<#if !msg?? || !msg?is_method>
|
||||
<#return>
|
||||
</#if>
|
||||
<#if (str?length > 200)>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local key=removeBrackets(str)>
|
||||
<#if key?length==0>
|
||||
<#return>
|
||||
</#if>
|
||||
<#if !(key?matches(r"^[a-zA-Z0-9-_.]*$"))>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local resolvedMsg=msg(key)>
|
||||
<#if resolvedMsg==key>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local messages=xKeycloakify.messages>
|
||||
<#local messages = messages + { key: resolvedMsg }>
|
||||
<#assign xKeycloakify = xKeycloakify + { "messages": messages }>
|
||||
</#macro>
|
||||
|
||||
<#function removeBrackets str>
|
||||
<#if str?starts_with("${") && str?ends_with("}")>
|
||||
<#return str[2..(str?length-2)]>
|
||||
<#else>
|
||||
<#return str>
|
||||
</#if>
|
||||
</#function>
|
||||
|
||||
<#macro addNonAutomaticallyGatherableMessagesToXKeycloakifyMessages>
|
||||
<#if profile?? && profile?is_hash && profile.attributes?? && profile.attributes?is_enumerable>
|
||||
<#list profile.attributes as attribute>
|
||||
<#if !(
|
||||
attribute.annotations?? && attribute.annotations?is_hash &&
|
||||
attribute.annotations.inputOptionLabelsI18nPrefix?? && attribute.annotations.inputOptionLabelsI18nPrefix?is_string
|
||||
)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#local prefix=attribute.annotations.inputOptionLabelsI18nPrefix>
|
||||
<#if !(
|
||||
attribute.validators?? && attribute.validators?is_hash &&
|
||||
attribute.validators.options?? && attribute.validators.options?is_hash &&
|
||||
attribute.validators.options.options?? && attribute.validators.options.options?is_enumerable
|
||||
)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#list attribute.validators.options.options as option>
|
||||
<#if !option?is_string>
|
||||
<#continue>
|
||||
</#if>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="${prefix}.${option}" />
|
||||
</#list>
|
||||
</#list>
|
||||
</#if>
|
||||
<#if xKeycloakify.pageId == "terms.ftl" || termsAcceptanceRequired?? && termsAcceptanceRequired>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="termsText" />
|
||||
</#if>
|
||||
<#if requiredActions?? && requiredActions?is_enumerable>
|
||||
<#list requiredActions as requiredAction>
|
||||
<#if !requiredAction?is_string>
|
||||
<#continue>
|
||||
</#if>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="requiredAction.${requiredAction}" />
|
||||
</#list>
|
||||
</#if>
|
||||
</#macro>
|
||||
|
||||
</script>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="${xKeycloakify.resourcesPath}/dist/favicon-32x32.png">
|
||||
<script type="module" crossorigin="" src="${xKeycloakify.resourcesPath}/dist/assets/index-6-NnS-wp.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="root"></div>
|
||||
|
||||
|
||||
</body></html>
|
@ -0,0 +1,739 @@
|
||||
<!DOCTYPE html><html><head><script>
|
||||
<#assign xKeycloakify={
|
||||
"messages": {},
|
||||
"pageId": "login-config-totp.ftl",
|
||||
"ftlTemplateFileName": "login-config-totp.ftl",
|
||||
"themeType": "login",
|
||||
"themeName": "keycloakify-starter",
|
||||
"keycloakifyVersion": "11.4.4",
|
||||
"themeVersion": "0.0.0",
|
||||
"resourcesPath": ""
|
||||
}>
|
||||
|
||||
<#if url?? && url?is_hash && url.resourcesPath?? && url.resourcesPath?is_string>
|
||||
<#assign xKeycloakify = xKeycloakify + { "resourcesPath": url.resourcesPath }>
|
||||
</#if>
|
||||
<#if resourceUrl?? && resourceUrl?is_string>
|
||||
<#assign xKeycloakify = xKeycloakify + { "resourcesPath": resourceUrl }>
|
||||
</#if>
|
||||
|
||||
const kcContext = ${toJsDeclarationString(.data_model, [])?no_esc};
|
||||
kcContext.keycloakifyVersion = "${xKeycloakify.keycloakifyVersion}";
|
||||
kcContext.themeVersion = "${xKeycloakify.themeVersion}";
|
||||
kcContext.themeType = "${xKeycloakify.themeType}";
|
||||
kcContext.themeName = "${xKeycloakify.themeName}";
|
||||
kcContext.pageId = "${xKeycloakify.pageId}";
|
||||
kcContext.ftlTemplateFileName = "${xKeycloakify.ftlTemplateFileName}";
|
||||
|
||||
<@addNonAutomaticallyGatherableMessagesToXKeycloakifyMessages />
|
||||
|
||||
kcContext["x-keycloakify"] = {};
|
||||
|
||||
kcContext["x-keycloakify"].resourcesPath = "${xKeycloakify.resourcesPath}";
|
||||
|
||||
{
|
||||
var messages = {};
|
||||
<#list xKeycloakify.messages as key, resolvedMsg>
|
||||
messages["${key}"] = decodeHtmlEntities("${resolvedMsg?js_string}");
|
||||
</#list>
|
||||
kcContext["x-keycloakify"].messages = messages;
|
||||
}
|
||||
|
||||
if(
|
||||
kcContext.url instanceof Object &&
|
||||
typeof kcContext.url.resourcesPath === "string"
|
||||
){
|
||||
kcContext.url.resourcesCommonPath = kcContext.url.resourcesPath + "/resources-common";
|
||||
}
|
||||
|
||||
if( kcContext.messagesPerField ){
|
||||
var existsError_singleFieldName = kcContext.messagesPerField.existsError;
|
||||
kcContext.messagesPerField.existsError = function (){
|
||||
for( let i = 0; i < arguments.length; i++ ){
|
||||
if( existsError_singleFieldName(arguments[i]) ){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
};
|
||||
kcContext.messagesPerField.exists = function (fieldName) {
|
||||
return kcContext.messagesPerField.get(fieldName) !== "";
|
||||
};
|
||||
kcContext.messagesPerField.printIfExists = function (fieldName, text) {
|
||||
return kcContext.messagesPerField.exists(fieldName) ? text : undefined;
|
||||
};
|
||||
kcContext.messagesPerField.getFirstError = function () {
|
||||
for( let i = 0; i < arguments.length; i++ ){
|
||||
const fieldName = arguments[i];
|
||||
if( kcContext.messagesPerField.existsError(fieldName) ){
|
||||
return kcContext.messagesPerField.get(fieldName);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
attributes_to_attributesByName: {
|
||||
if( !kcContext.profile ){
|
||||
break attributes_to_attributesByName;
|
||||
}
|
||||
if( !kcContext.profile.attributes ){
|
||||
break attributes_to_attributesByName;
|
||||
}
|
||||
var attributes = kcContext.profile.attributes;
|
||||
delete kcContext.profile.attributes;
|
||||
kcContext.profile.attributesByName = {};
|
||||
attributes.forEach(function(attribute){
|
||||
kcContext.profile.attributesByName[attribute.name] = attribute;
|
||||
});
|
||||
}
|
||||
|
||||
redirect_to_dev_server: {
|
||||
|
||||
switch(kcContext.themeType){
|
||||
case "login":
|
||||
break redirect_to_dev_server;
|
||||
case "account":
|
||||
if( kcContext.pageId !== "index.ftl" ){
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
break;
|
||||
case "admin":
|
||||
break;
|
||||
default:
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
|
||||
const devSeverPort = kcContext.properties.KEYCLOAKIFY_SPA_DEV_SERVER_PORT;
|
||||
|
||||
if( !devSeverPort ){
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
|
||||
const redirectUrl = new URL(window.location.href);
|
||||
|
||||
redirectUrl.port = devSeverPort;
|
||||
|
||||
delete kcContext.msgJSON;
|
||||
|
||||
console.log(kcContext);
|
||||
|
||||
redirectUrl.searchParams.set("kcContext", encodeURIComponent(JSON.stringify(kcContext)));
|
||||
|
||||
window.location.href = redirectUrl.toString();
|
||||
|
||||
}
|
||||
|
||||
|
||||
window.kcContext = kcContext;
|
||||
|
||||
|
||||
<#if xKeycloakify.themeType == "login" >
|
||||
{
|
||||
const script = document.createElement("script");
|
||||
script.type = "importmap";
|
||||
script.textContent = JSON.stringify({
|
||||
imports: {
|
||||
"rfc4648": kcContext.url.resourcesCommonPath + "/node_modules/rfc4648/lib/rfc4648.js"
|
||||
}
|
||||
}, null, 2);
|
||||
|
||||
document.head.appendChild(script);
|
||||
}
|
||||
</#if>
|
||||
|
||||
function decodeHtmlEntities(htmlStr){
|
||||
var element = decodeHtmlEntities.element;
|
||||
if (!element) {
|
||||
element = document.createElement("textarea");
|
||||
decodeHtmlEntities.element = element;
|
||||
}
|
||||
element.innerHTML = htmlStr;
|
||||
return element.value;
|
||||
}
|
||||
|
||||
<#function toJsDeclarationString object path>
|
||||
<#local isHash = -1>
|
||||
<#attempt>
|
||||
<#local isHash = object?is_hash || object?is_hash_ex>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't evaluate if " + path?join(".") + " is a hash">
|
||||
</#attempt>
|
||||
|
||||
<#if isHash>
|
||||
<#if path?size gt 10>
|
||||
<#return "ABORT: Too many recursive calls, path: " + path?join(".")>
|
||||
</#if>
|
||||
<#local keys = -1>
|
||||
|
||||
<#attempt>
|
||||
<#local keys = object?keys>
|
||||
<#recover>
|
||||
<#return "ABORT: We can't list keys on object">
|
||||
</#attempt>
|
||||
|
||||
<#local outSeq = []>
|
||||
|
||||
<#list keys as key>
|
||||
<#if ["class","declaredConstructors","superclass","declaringClass" ]?seq_contains(key) >
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if (
|
||||
areSamePath(path, ["url"]) &&
|
||||
["loginUpdatePasswordUrl", "loginUpdateProfileUrl", "loginUsernameReminderUrl", "loginUpdateTotpUrl"]?seq_contains(key)
|
||||
) || (
|
||||
key == "updateProfileCtx" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
<#-- https://github.com/keycloakify/keycloakify/pull/65#issuecomment-991896344 (reports with saml-post-form.ftl) -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/91#issue-1212319466 (reports with error.ftl and Kc18) -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/109#issuecomment-1134610163 -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/357 -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/discussions/406#discussioncomment-7514787 -->
|
||||
key == "loginAction" &&
|
||||
areSamePath(path, ["url"]) &&
|
||||
["saml-post-form.ftl", "error.ftl", "info.ftl", "login-oauth-grant.ftl", "logout-confirm.ftl", "login-oauth2-device-verify-user-code.ftl"]?seq_contains(xKeycloakify.pageId) &&
|
||||
!(auth?has_content && auth.showTryAnotherWayLink())
|
||||
) || (
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/362 -->
|
||||
["secretData", "value"]?seq_contains(key) &&
|
||||
areSamePath(path, [ "totp", "otpCredentials", "*" ])
|
||||
) || (
|
||||
["contextData", "idpConfig", "idp", "authenticationSession"]?seq_contains(key) &&
|
||||
areSamePath(path, ["brokerContext"]) &&
|
||||
["login-idp-link-confirm.ftl", "login-idp-link-email.ftl" ]?seq_contains(xKeycloakify.pageId)
|
||||
) || (
|
||||
key == "identityProviderBrokerCtx" &&
|
||||
areSamePath(path, []) &&
|
||||
["login-idp-link-confirm.ftl", "login-idp-link-email.ftl" ]?seq_contains(xKeycloakify.pageId)
|
||||
) || (
|
||||
["masterAdminClient", "delegateForUpdate", "defaultRole", "smtpConfig"]?seq_contains(key) &&
|
||||
areSamePath(path, ["realm"])
|
||||
) || (
|
||||
xKeycloakify.pageId == "error.ftl" &&
|
||||
areSamePath(path, ["realm"]) &&
|
||||
!["name", "displayName", "displayNameHtml", "internationalizationEnabled", "registrationEmailAsUsername" ]?seq_contains(key)
|
||||
) || (
|
||||
xKeycloakify.pageId == "applications.ftl" &&
|
||||
(
|
||||
key == "realm" ||
|
||||
key == "container"
|
||||
) &&
|
||||
isSubpath(path, ["applications", "applications"])
|
||||
) || (
|
||||
key == "delegateForUpdate" &&
|
||||
areSamePath(path, ["user"])
|
||||
) || (
|
||||
<#-- Security audit forwarded by Garth (Gmail) -->
|
||||
key == "saml.signing.private.key" &&
|
||||
areSamePath(path, ["client", "attributes"])
|
||||
) || (
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/534 -->
|
||||
key == "password" &&
|
||||
areSamePath(path, ["login"])
|
||||
) || (
|
||||
<#-- Remove realmAttributes added by https://github.com/jcputney/keycloak-theme-additional-info-extension for peace of mind. -->
|
||||
key == "realmAttributes" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
<#-- attributesByName adds a lot of noise to the output and is not needed, we already have profile.attributes -->
|
||||
key == "attributesByName" &&
|
||||
areSamePath(path, ["profile"])
|
||||
) || (
|
||||
<#-- We already have the attributes in profile speedup the rendering by filtering it out from the register object -->
|
||||
(key == "attributes" || key == "attributesByName") &&
|
||||
areSamePath(path, ["register"])
|
||||
) || (
|
||||
areSamePath(path, ["properties"]) &&
|
||||
(
|
||||
key?starts_with("kc") ||
|
||||
key == "locales" ||
|
||||
key == "import" ||
|
||||
key == "parent" ||
|
||||
key == "meta" ||
|
||||
key == "stylesCommon" ||
|
||||
key == "styles" ||
|
||||
key == "accountResourceProvider"
|
||||
)
|
||||
) || (
|
||||
key == "execution" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
key == "entity" &&
|
||||
areSamePath(path, ["user"])
|
||||
) || (
|
||||
key == "attributes" &&
|
||||
areSamePath(path, ["realm"])
|
||||
) || (
|
||||
xKeycloakify.pageId == "index.ftl" &&
|
||||
xKeycloakify.themeType == "account" &&
|
||||
areSamePath(path, ["realm"]) &&
|
||||
![
|
||||
"name",
|
||||
"registrationEmailAsUsername",
|
||||
"editUsernameAllowed",
|
||||
"isInternationalizationEnabled",
|
||||
"identityFederationEnabled",
|
||||
"userManagedAccessAllowed"
|
||||
]?seq_contains(key)
|
||||
) || (
|
||||
["flowContext", "session", "realm"]?seq_contains(key) &&
|
||||
areSamePath(path, ["social"])
|
||||
)
|
||||
>
|
||||
<#-- <#local outSeq += ["/*" + path?join(".") + "." + key + " excluded*/"]> -->
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#-- https://github.com/keycloakify/keycloakify/discussions/406 -->
|
||||
<#if (
|
||||
key == "attemptedUsername" &&
|
||||
areSamePath(path, ["auth"]) &&
|
||||
[
|
||||
"register.ftl", "terms.ftl", "info.ftl", "login.ftl",
|
||||
"login-update-password.ftl", "login-oauth2-device-verify-user-code.ftl"
|
||||
]?seq_contains(xKeycloakify.pageId)
|
||||
)>
|
||||
<#attempt>
|
||||
<#-- https://github.com/keycloak/keycloak/blob/3a2bf0c04bcde185e497aaa32d0bb7ab7520cf4a/themes/src/main/resources/theme/base/login/template.ftl#L63 -->
|
||||
<#if !(auth?has_content && auth.showUsername() && !auth.showResetCredentials())>
|
||||
<#local outSeq += ["/*" + path?join(".") + "." + key + " excluded*/"]>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Accessing attemptedUsername throwed an exception */"]>
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
|
||||
|
||||
<#attempt>
|
||||
<#if !object[key]??>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Couldn't test if '" + key + "' is available on this object*/"]>
|
||||
<#continue>
|
||||
</#attempt>
|
||||
|
||||
<#local propertyValue = -1>
|
||||
|
||||
<#attempt>
|
||||
<#local propertyValue = object[key]>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Couldn't dereference '" + key + "' on this object*/"]>
|
||||
<#continue>
|
||||
</#attempt>
|
||||
|
||||
<#local recOut = toJsDeclarationString(propertyValue, path + [ key ])>
|
||||
|
||||
<#if recOut?starts_with("ABORT:")>
|
||||
|
||||
<#local errorMessage = recOut?remove_beginning("ABORT:")>
|
||||
|
||||
<#if errorMessage != " It's a method" >
|
||||
<#local outSeq += ["/*" + key + ": " + errorMessage + "*/"]>
|
||||
</#if>
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local outSeq += ['"' + key + '": ' + recOut + ","]>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return (["{"] + outSeq?map(str -> ""?right_pad(4 * (path?size + 1)) + str) + [ ""?right_pad(4 * path?size) + "}"])?join("\n")>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local isMethod = -1>
|
||||
<#attempt>
|
||||
<#local isMethod = object?is_method>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it'sa method.">
|
||||
</#attempt>
|
||||
|
||||
<#if isMethod>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showUsername"])>
|
||||
<#attempt>
|
||||
<#return auth.showUsername()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showUsername()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showResetCredentials"])>
|
||||
<#attempt>
|
||||
<#return auth.showResetCredentials()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showResetCredentials()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showTryAnotherWayLink"])>
|
||||
<#attempt>
|
||||
<#return auth.showTryAnotherWayLink()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showTryAnotherWayLink()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["url", "getLogoutUrl"])>
|
||||
<#local returnValue = -1>
|
||||
<#attempt>
|
||||
<#local returnValue = url.getLogoutUrl()>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate url.getLogoutUrl()">
|
||||
</#attempt>
|
||||
<#return 'function(){ return "' + returnValue + '"; }'>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["totp", "policy", "getAlgorithmKey"])>
|
||||
<#local returnValue = "error">
|
||||
<#if mode?? && mode = "manual">
|
||||
<#attempt>
|
||||
<#local returnValue = totp.policy.getAlgorithmKey()>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate totp.policy.getAlgorithmKey()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
<#return 'function(){ return "' + returnValue + '"; }'>
|
||||
</#if>
|
||||
|
||||
<#assign fieldNames = ["firstName", "lastName", "email", "username", "password", "password-confirm", "global", "totp", "userLabel", "recoveryCodeInput", "termsAccepted"]>
|
||||
<#if profile?? && profile.attributes??>
|
||||
<#list profile.attributes as attribute>
|
||||
<#if fieldNames?seq_contains(attribute.name)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#assign fieldNames += [attribute.name]>
|
||||
</#list>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["messagesPerField", "get"])>
|
||||
|
||||
<#local jsFunctionCode = "function (fieldName) { ">
|
||||
|
||||
<#list fieldNames as fieldName>
|
||||
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/217 -->
|
||||
<#if xKeycloakify.pageId == "login.ftl" >
|
||||
|
||||
<#if fieldName == "username">
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === 'username' || fieldName === 'password' ){ ">
|
||||
|
||||
<#if messagesPerField.exists('username') || messagesPerField.exists('password')>
|
||||
<#local jsFunctionCode += "return kcContext.message && kcContext.message.summary ? kcContext.message.summary : 'error'; ">
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return ''; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if fieldName == "password">
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === '" + fieldName + "'){ ">
|
||||
|
||||
<#if messagesPerField.exists('${fieldName}')>
|
||||
<#local jsFunctionCode += 'return decodeHtmlEntities("' + messagesPerField.get('${fieldName}')?js_string + '"); '>
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return ''; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
</#list>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
<#return jsFunctionCode>
|
||||
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["messagesPerField", "existsError"])>
|
||||
|
||||
<#local jsFunctionCode = "function (fieldName) { ">
|
||||
|
||||
<#list fieldNames as fieldName>
|
||||
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/217 -->
|
||||
<#if xKeycloakify.pageId == "login.ftl" >
|
||||
<#if fieldName == "username">
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === 'username' || fieldName === 'password' ){ ">
|
||||
|
||||
<#if messagesPerField.existsError('username') || messagesPerField.existsError('password')>
|
||||
<#local jsFunctionCode += "return true; ">
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return false; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if fieldName == "password">
|
||||
<#continue>
|
||||
</#if>
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === '" + fieldName + "' ){ ">
|
||||
|
||||
<#if messagesPerField.existsError('${fieldName}')>
|
||||
<#local jsFunctionCode += 'return true; '>
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return false; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
</#list>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
<#return jsFunctionCode>
|
||||
|
||||
</#if>
|
||||
|
||||
<#if xKeycloakify.themeType == "account" && areSamePath(path, ["realm", "isInternationalizationEnabled"])>
|
||||
<#attempt>
|
||||
<#return realm.isInternationalizationEnabled()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate realm.isInternationalizationEnabled()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#return "ABORT: It's a method">
|
||||
</#if>
|
||||
|
||||
<#local isBoolean = -1>
|
||||
<#attempt>
|
||||
<#local isBoolean = object?is_boolean>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a boolean">
|
||||
</#attempt>
|
||||
|
||||
<#if isBoolean>
|
||||
<#return object?c>
|
||||
</#if>
|
||||
|
||||
<#local isEnumerable = -1>
|
||||
<#attempt>
|
||||
<#local isEnumerable = object?is_enumerable>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's an enumerable">
|
||||
</#attempt>
|
||||
|
||||
|
||||
<#if isEnumerable>
|
||||
|
||||
<#local outSeq = []>
|
||||
|
||||
<#local i = 0>
|
||||
|
||||
<#list object as array_item>
|
||||
|
||||
<#if !array_item??>
|
||||
<#local outSeq += ["null,"]>
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local recOut = toJsDeclarationString(array_item, path + [ i ])>
|
||||
|
||||
<#local i = i + 1>
|
||||
|
||||
<#if recOut?starts_with("ABORT:")>
|
||||
|
||||
<#local errorMessage = recOut?remove_beginning("ABORT:")>
|
||||
|
||||
<#if errorMessage != " It's a method" >
|
||||
<#local outSeq += ["/*" + i?string + ": " + errorMessage + "*/"]>
|
||||
</#if>
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local outSeq += [recOut + ","]>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return (["["] + outSeq?map(str -> ""?right_pad(4 * (path?size + 1)) + str) + [ ""?right_pad(4 * path?size) + "]"])?join("\n")>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local isDate = -1>
|
||||
<#attempt>
|
||||
<#local isDate = object?is_date_like>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a date">
|
||||
</#attempt>
|
||||
|
||||
<#if isDate>
|
||||
<#return '"' + object?datetime?iso_utc + '"'>
|
||||
</#if>
|
||||
|
||||
<#local isNumber = -1>
|
||||
<#attempt>
|
||||
<#local isNumber = object?is_number>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a number">
|
||||
</#attempt>
|
||||
|
||||
<#if isNumber>
|
||||
<#return object?c>
|
||||
</#if>
|
||||
|
||||
<#local isString = -1>
|
||||
<#attempt>
|
||||
<#local isString = object?is_string>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a string">
|
||||
</#attempt>
|
||||
|
||||
<#if isString>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str=object />
|
||||
</#if>
|
||||
|
||||
<#attempt>
|
||||
<#return '"' + object?js_string + '"'>;
|
||||
<#recover>
|
||||
</#attempt>
|
||||
|
||||
<#return "ABORT: Couldn't convert into string non hash, non method, non boolean, non number, non enumerable object">
|
||||
|
||||
</#function>
|
||||
<#function isSubpath path searchedPath>
|
||||
|
||||
<#if path?size < searchedPath?size>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#local i=0>
|
||||
|
||||
<#list path as property>
|
||||
|
||||
<#if i == searchedPath?size >
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local searchedProperty=searchedPath[i]>
|
||||
|
||||
<#local i+= 1>
|
||||
|
||||
<#if searchedProperty?is_string && searchedProperty == "*">
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?is_string && !property?is_string>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?is_number && !property?is_number>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?string != property?string>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return true>
|
||||
|
||||
</#function>
|
||||
|
||||
<#function areSamePath path searchedPath>
|
||||
<#return path?size == searchedPath?size && isSubpath(path, searchedPath)>
|
||||
</#function>
|
||||
|
||||
<#macro addToXKeycloakifyMessagesIfMessageKey str>
|
||||
<#if !msg?? || !msg?is_method>
|
||||
<#return>
|
||||
</#if>
|
||||
<#if (str?length > 200)>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local key=removeBrackets(str)>
|
||||
<#if key?length==0>
|
||||
<#return>
|
||||
</#if>
|
||||
<#if !(key?matches(r"^[a-zA-Z0-9-_.]*$"))>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local resolvedMsg=msg(key)>
|
||||
<#if resolvedMsg==key>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local messages=xKeycloakify.messages>
|
||||
<#local messages = messages + { key: resolvedMsg }>
|
||||
<#assign xKeycloakify = xKeycloakify + { "messages": messages }>
|
||||
</#macro>
|
||||
|
||||
<#function removeBrackets str>
|
||||
<#if str?starts_with("${") && str?ends_with("}")>
|
||||
<#return str[2..(str?length-2)]>
|
||||
<#else>
|
||||
<#return str>
|
||||
</#if>
|
||||
</#function>
|
||||
|
||||
<#macro addNonAutomaticallyGatherableMessagesToXKeycloakifyMessages>
|
||||
<#if profile?? && profile?is_hash && profile.attributes?? && profile.attributes?is_enumerable>
|
||||
<#list profile.attributes as attribute>
|
||||
<#if !(
|
||||
attribute.annotations?? && attribute.annotations?is_hash &&
|
||||
attribute.annotations.inputOptionLabelsI18nPrefix?? && attribute.annotations.inputOptionLabelsI18nPrefix?is_string
|
||||
)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#local prefix=attribute.annotations.inputOptionLabelsI18nPrefix>
|
||||
<#if !(
|
||||
attribute.validators?? && attribute.validators?is_hash &&
|
||||
attribute.validators.options?? && attribute.validators.options?is_hash &&
|
||||
attribute.validators.options.options?? && attribute.validators.options.options?is_enumerable
|
||||
)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#list attribute.validators.options.options as option>
|
||||
<#if !option?is_string>
|
||||
<#continue>
|
||||
</#if>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="${prefix}.${option}" />
|
||||
</#list>
|
||||
</#list>
|
||||
</#if>
|
||||
<#if xKeycloakify.pageId == "terms.ftl" || termsAcceptanceRequired?? && termsAcceptanceRequired>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="termsText" />
|
||||
</#if>
|
||||
<#if requiredActions?? && requiredActions?is_enumerable>
|
||||
<#list requiredActions as requiredAction>
|
||||
<#if !requiredAction?is_string>
|
||||
<#continue>
|
||||
</#if>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="requiredAction.${requiredAction}" />
|
||||
</#list>
|
||||
</#if>
|
||||
</#macro>
|
||||
|
||||
</script>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="${xKeycloakify.resourcesPath}/dist/favicon-32x32.png">
|
||||
<script type="module" crossorigin="" src="${xKeycloakify.resourcesPath}/dist/assets/index-6-NnS-wp.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="root"></div>
|
||||
|
||||
|
||||
</body></html>
|
@ -0,0 +1,739 @@
|
||||
<!DOCTYPE html><html><head><script>
|
||||
<#assign xKeycloakify={
|
||||
"messages": {},
|
||||
"pageId": "login-idp-link-confirm-override.ftl",
|
||||
"ftlTemplateFileName": "login-idp-link-confirm-override.ftl",
|
||||
"themeType": "login",
|
||||
"themeName": "keycloakify-starter",
|
||||
"keycloakifyVersion": "11.4.4",
|
||||
"themeVersion": "0.0.0",
|
||||
"resourcesPath": ""
|
||||
}>
|
||||
|
||||
<#if url?? && url?is_hash && url.resourcesPath?? && url.resourcesPath?is_string>
|
||||
<#assign xKeycloakify = xKeycloakify + { "resourcesPath": url.resourcesPath }>
|
||||
</#if>
|
||||
<#if resourceUrl?? && resourceUrl?is_string>
|
||||
<#assign xKeycloakify = xKeycloakify + { "resourcesPath": resourceUrl }>
|
||||
</#if>
|
||||
|
||||
const kcContext = ${toJsDeclarationString(.data_model, [])?no_esc};
|
||||
kcContext.keycloakifyVersion = "${xKeycloakify.keycloakifyVersion}";
|
||||
kcContext.themeVersion = "${xKeycloakify.themeVersion}";
|
||||
kcContext.themeType = "${xKeycloakify.themeType}";
|
||||
kcContext.themeName = "${xKeycloakify.themeName}";
|
||||
kcContext.pageId = "${xKeycloakify.pageId}";
|
||||
kcContext.ftlTemplateFileName = "${xKeycloakify.ftlTemplateFileName}";
|
||||
|
||||
<@addNonAutomaticallyGatherableMessagesToXKeycloakifyMessages />
|
||||
|
||||
kcContext["x-keycloakify"] = {};
|
||||
|
||||
kcContext["x-keycloakify"].resourcesPath = "${xKeycloakify.resourcesPath}";
|
||||
|
||||
{
|
||||
var messages = {};
|
||||
<#list xKeycloakify.messages as key, resolvedMsg>
|
||||
messages["${key}"] = decodeHtmlEntities("${resolvedMsg?js_string}");
|
||||
</#list>
|
||||
kcContext["x-keycloakify"].messages = messages;
|
||||
}
|
||||
|
||||
if(
|
||||
kcContext.url instanceof Object &&
|
||||
typeof kcContext.url.resourcesPath === "string"
|
||||
){
|
||||
kcContext.url.resourcesCommonPath = kcContext.url.resourcesPath + "/resources-common";
|
||||
}
|
||||
|
||||
if( kcContext.messagesPerField ){
|
||||
var existsError_singleFieldName = kcContext.messagesPerField.existsError;
|
||||
kcContext.messagesPerField.existsError = function (){
|
||||
for( let i = 0; i < arguments.length; i++ ){
|
||||
if( existsError_singleFieldName(arguments[i]) ){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
};
|
||||
kcContext.messagesPerField.exists = function (fieldName) {
|
||||
return kcContext.messagesPerField.get(fieldName) !== "";
|
||||
};
|
||||
kcContext.messagesPerField.printIfExists = function (fieldName, text) {
|
||||
return kcContext.messagesPerField.exists(fieldName) ? text : undefined;
|
||||
};
|
||||
kcContext.messagesPerField.getFirstError = function () {
|
||||
for( let i = 0; i < arguments.length; i++ ){
|
||||
const fieldName = arguments[i];
|
||||
if( kcContext.messagesPerField.existsError(fieldName) ){
|
||||
return kcContext.messagesPerField.get(fieldName);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
attributes_to_attributesByName: {
|
||||
if( !kcContext.profile ){
|
||||
break attributes_to_attributesByName;
|
||||
}
|
||||
if( !kcContext.profile.attributes ){
|
||||
break attributes_to_attributesByName;
|
||||
}
|
||||
var attributes = kcContext.profile.attributes;
|
||||
delete kcContext.profile.attributes;
|
||||
kcContext.profile.attributesByName = {};
|
||||
attributes.forEach(function(attribute){
|
||||
kcContext.profile.attributesByName[attribute.name] = attribute;
|
||||
});
|
||||
}
|
||||
|
||||
redirect_to_dev_server: {
|
||||
|
||||
switch(kcContext.themeType){
|
||||
case "login":
|
||||
break redirect_to_dev_server;
|
||||
case "account":
|
||||
if( kcContext.pageId !== "index.ftl" ){
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
break;
|
||||
case "admin":
|
||||
break;
|
||||
default:
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
|
||||
const devSeverPort = kcContext.properties.KEYCLOAKIFY_SPA_DEV_SERVER_PORT;
|
||||
|
||||
if( !devSeverPort ){
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
|
||||
const redirectUrl = new URL(window.location.href);
|
||||
|
||||
redirectUrl.port = devSeverPort;
|
||||
|
||||
delete kcContext.msgJSON;
|
||||
|
||||
console.log(kcContext);
|
||||
|
||||
redirectUrl.searchParams.set("kcContext", encodeURIComponent(JSON.stringify(kcContext)));
|
||||
|
||||
window.location.href = redirectUrl.toString();
|
||||
|
||||
}
|
||||
|
||||
|
||||
window.kcContext = kcContext;
|
||||
|
||||
|
||||
<#if xKeycloakify.themeType == "login" >
|
||||
{
|
||||
const script = document.createElement("script");
|
||||
script.type = "importmap";
|
||||
script.textContent = JSON.stringify({
|
||||
imports: {
|
||||
"rfc4648": kcContext.url.resourcesCommonPath + "/node_modules/rfc4648/lib/rfc4648.js"
|
||||
}
|
||||
}, null, 2);
|
||||
|
||||
document.head.appendChild(script);
|
||||
}
|
||||
</#if>
|
||||
|
||||
function decodeHtmlEntities(htmlStr){
|
||||
var element = decodeHtmlEntities.element;
|
||||
if (!element) {
|
||||
element = document.createElement("textarea");
|
||||
decodeHtmlEntities.element = element;
|
||||
}
|
||||
element.innerHTML = htmlStr;
|
||||
return element.value;
|
||||
}
|
||||
|
||||
<#function toJsDeclarationString object path>
|
||||
<#local isHash = -1>
|
||||
<#attempt>
|
||||
<#local isHash = object?is_hash || object?is_hash_ex>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't evaluate if " + path?join(".") + " is a hash">
|
||||
</#attempt>
|
||||
|
||||
<#if isHash>
|
||||
<#if path?size gt 10>
|
||||
<#return "ABORT: Too many recursive calls, path: " + path?join(".")>
|
||||
</#if>
|
||||
<#local keys = -1>
|
||||
|
||||
<#attempt>
|
||||
<#local keys = object?keys>
|
||||
<#recover>
|
||||
<#return "ABORT: We can't list keys on object">
|
||||
</#attempt>
|
||||
|
||||
<#local outSeq = []>
|
||||
|
||||
<#list keys as key>
|
||||
<#if ["class","declaredConstructors","superclass","declaringClass" ]?seq_contains(key) >
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if (
|
||||
areSamePath(path, ["url"]) &&
|
||||
["loginUpdatePasswordUrl", "loginUpdateProfileUrl", "loginUsernameReminderUrl", "loginUpdateTotpUrl"]?seq_contains(key)
|
||||
) || (
|
||||
key == "updateProfileCtx" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
<#-- https://github.com/keycloakify/keycloakify/pull/65#issuecomment-991896344 (reports with saml-post-form.ftl) -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/91#issue-1212319466 (reports with error.ftl and Kc18) -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/109#issuecomment-1134610163 -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/357 -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/discussions/406#discussioncomment-7514787 -->
|
||||
key == "loginAction" &&
|
||||
areSamePath(path, ["url"]) &&
|
||||
["saml-post-form.ftl", "error.ftl", "info.ftl", "login-oauth-grant.ftl", "logout-confirm.ftl", "login-oauth2-device-verify-user-code.ftl"]?seq_contains(xKeycloakify.pageId) &&
|
||||
!(auth?has_content && auth.showTryAnotherWayLink())
|
||||
) || (
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/362 -->
|
||||
["secretData", "value"]?seq_contains(key) &&
|
||||
areSamePath(path, [ "totp", "otpCredentials", "*" ])
|
||||
) || (
|
||||
["contextData", "idpConfig", "idp", "authenticationSession"]?seq_contains(key) &&
|
||||
areSamePath(path, ["brokerContext"]) &&
|
||||
["login-idp-link-confirm.ftl", "login-idp-link-email.ftl" ]?seq_contains(xKeycloakify.pageId)
|
||||
) || (
|
||||
key == "identityProviderBrokerCtx" &&
|
||||
areSamePath(path, []) &&
|
||||
["login-idp-link-confirm.ftl", "login-idp-link-email.ftl" ]?seq_contains(xKeycloakify.pageId)
|
||||
) || (
|
||||
["masterAdminClient", "delegateForUpdate", "defaultRole", "smtpConfig"]?seq_contains(key) &&
|
||||
areSamePath(path, ["realm"])
|
||||
) || (
|
||||
xKeycloakify.pageId == "error.ftl" &&
|
||||
areSamePath(path, ["realm"]) &&
|
||||
!["name", "displayName", "displayNameHtml", "internationalizationEnabled", "registrationEmailAsUsername" ]?seq_contains(key)
|
||||
) || (
|
||||
xKeycloakify.pageId == "applications.ftl" &&
|
||||
(
|
||||
key == "realm" ||
|
||||
key == "container"
|
||||
) &&
|
||||
isSubpath(path, ["applications", "applications"])
|
||||
) || (
|
||||
key == "delegateForUpdate" &&
|
||||
areSamePath(path, ["user"])
|
||||
) || (
|
||||
<#-- Security audit forwarded by Garth (Gmail) -->
|
||||
key == "saml.signing.private.key" &&
|
||||
areSamePath(path, ["client", "attributes"])
|
||||
) || (
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/534 -->
|
||||
key == "password" &&
|
||||
areSamePath(path, ["login"])
|
||||
) || (
|
||||
<#-- Remove realmAttributes added by https://github.com/jcputney/keycloak-theme-additional-info-extension for peace of mind. -->
|
||||
key == "realmAttributes" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
<#-- attributesByName adds a lot of noise to the output and is not needed, we already have profile.attributes -->
|
||||
key == "attributesByName" &&
|
||||
areSamePath(path, ["profile"])
|
||||
) || (
|
||||
<#-- We already have the attributes in profile speedup the rendering by filtering it out from the register object -->
|
||||
(key == "attributes" || key == "attributesByName") &&
|
||||
areSamePath(path, ["register"])
|
||||
) || (
|
||||
areSamePath(path, ["properties"]) &&
|
||||
(
|
||||
key?starts_with("kc") ||
|
||||
key == "locales" ||
|
||||
key == "import" ||
|
||||
key == "parent" ||
|
||||
key == "meta" ||
|
||||
key == "stylesCommon" ||
|
||||
key == "styles" ||
|
||||
key == "accountResourceProvider"
|
||||
)
|
||||
) || (
|
||||
key == "execution" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
key == "entity" &&
|
||||
areSamePath(path, ["user"])
|
||||
) || (
|
||||
key == "attributes" &&
|
||||
areSamePath(path, ["realm"])
|
||||
) || (
|
||||
xKeycloakify.pageId == "index.ftl" &&
|
||||
xKeycloakify.themeType == "account" &&
|
||||
areSamePath(path, ["realm"]) &&
|
||||
![
|
||||
"name",
|
||||
"registrationEmailAsUsername",
|
||||
"editUsernameAllowed",
|
||||
"isInternationalizationEnabled",
|
||||
"identityFederationEnabled",
|
||||
"userManagedAccessAllowed"
|
||||
]?seq_contains(key)
|
||||
) || (
|
||||
["flowContext", "session", "realm"]?seq_contains(key) &&
|
||||
areSamePath(path, ["social"])
|
||||
)
|
||||
>
|
||||
<#-- <#local outSeq += ["/*" + path?join(".") + "." + key + " excluded*/"]> -->
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#-- https://github.com/keycloakify/keycloakify/discussions/406 -->
|
||||
<#if (
|
||||
key == "attemptedUsername" &&
|
||||
areSamePath(path, ["auth"]) &&
|
||||
[
|
||||
"register.ftl", "terms.ftl", "info.ftl", "login.ftl",
|
||||
"login-update-password.ftl", "login-oauth2-device-verify-user-code.ftl"
|
||||
]?seq_contains(xKeycloakify.pageId)
|
||||
)>
|
||||
<#attempt>
|
||||
<#-- https://github.com/keycloak/keycloak/blob/3a2bf0c04bcde185e497aaa32d0bb7ab7520cf4a/themes/src/main/resources/theme/base/login/template.ftl#L63 -->
|
||||
<#if !(auth?has_content && auth.showUsername() && !auth.showResetCredentials())>
|
||||
<#local outSeq += ["/*" + path?join(".") + "." + key + " excluded*/"]>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Accessing attemptedUsername throwed an exception */"]>
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
|
||||
|
||||
<#attempt>
|
||||
<#if !object[key]??>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Couldn't test if '" + key + "' is available on this object*/"]>
|
||||
<#continue>
|
||||
</#attempt>
|
||||
|
||||
<#local propertyValue = -1>
|
||||
|
||||
<#attempt>
|
||||
<#local propertyValue = object[key]>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Couldn't dereference '" + key + "' on this object*/"]>
|
||||
<#continue>
|
||||
</#attempt>
|
||||
|
||||
<#local recOut = toJsDeclarationString(propertyValue, path + [ key ])>
|
||||
|
||||
<#if recOut?starts_with("ABORT:")>
|
||||
|
||||
<#local errorMessage = recOut?remove_beginning("ABORT:")>
|
||||
|
||||
<#if errorMessage != " It's a method" >
|
||||
<#local outSeq += ["/*" + key + ": " + errorMessage + "*/"]>
|
||||
</#if>
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local outSeq += ['"' + key + '": ' + recOut + ","]>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return (["{"] + outSeq?map(str -> ""?right_pad(4 * (path?size + 1)) + str) + [ ""?right_pad(4 * path?size) + "}"])?join("\n")>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local isMethod = -1>
|
||||
<#attempt>
|
||||
<#local isMethod = object?is_method>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it'sa method.">
|
||||
</#attempt>
|
||||
|
||||
<#if isMethod>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showUsername"])>
|
||||
<#attempt>
|
||||
<#return auth.showUsername()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showUsername()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showResetCredentials"])>
|
||||
<#attempt>
|
||||
<#return auth.showResetCredentials()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showResetCredentials()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showTryAnotherWayLink"])>
|
||||
<#attempt>
|
||||
<#return auth.showTryAnotherWayLink()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showTryAnotherWayLink()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["url", "getLogoutUrl"])>
|
||||
<#local returnValue = -1>
|
||||
<#attempt>
|
||||
<#local returnValue = url.getLogoutUrl()>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate url.getLogoutUrl()">
|
||||
</#attempt>
|
||||
<#return 'function(){ return "' + returnValue + '"; }'>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["totp", "policy", "getAlgorithmKey"])>
|
||||
<#local returnValue = "error">
|
||||
<#if mode?? && mode = "manual">
|
||||
<#attempt>
|
||||
<#local returnValue = totp.policy.getAlgorithmKey()>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate totp.policy.getAlgorithmKey()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
<#return 'function(){ return "' + returnValue + '"; }'>
|
||||
</#if>
|
||||
|
||||
<#assign fieldNames = ["firstName", "lastName", "email", "username", "password", "password-confirm", "global", "totp", "userLabel", "recoveryCodeInput", "termsAccepted"]>
|
||||
<#if profile?? && profile.attributes??>
|
||||
<#list profile.attributes as attribute>
|
||||
<#if fieldNames?seq_contains(attribute.name)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#assign fieldNames += [attribute.name]>
|
||||
</#list>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["messagesPerField", "get"])>
|
||||
|
||||
<#local jsFunctionCode = "function (fieldName) { ">
|
||||
|
||||
<#list fieldNames as fieldName>
|
||||
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/217 -->
|
||||
<#if xKeycloakify.pageId == "login.ftl" >
|
||||
|
||||
<#if fieldName == "username">
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === 'username' || fieldName === 'password' ){ ">
|
||||
|
||||
<#if messagesPerField.exists('username') || messagesPerField.exists('password')>
|
||||
<#local jsFunctionCode += "return kcContext.message && kcContext.message.summary ? kcContext.message.summary : 'error'; ">
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return ''; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if fieldName == "password">
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === '" + fieldName + "'){ ">
|
||||
|
||||
<#if messagesPerField.exists('${fieldName}')>
|
||||
<#local jsFunctionCode += 'return decodeHtmlEntities("' + messagesPerField.get('${fieldName}')?js_string + '"); '>
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return ''; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
</#list>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
<#return jsFunctionCode>
|
||||
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["messagesPerField", "existsError"])>
|
||||
|
||||
<#local jsFunctionCode = "function (fieldName) { ">
|
||||
|
||||
<#list fieldNames as fieldName>
|
||||
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/217 -->
|
||||
<#if xKeycloakify.pageId == "login.ftl" >
|
||||
<#if fieldName == "username">
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === 'username' || fieldName === 'password' ){ ">
|
||||
|
||||
<#if messagesPerField.existsError('username') || messagesPerField.existsError('password')>
|
||||
<#local jsFunctionCode += "return true; ">
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return false; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if fieldName == "password">
|
||||
<#continue>
|
||||
</#if>
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === '" + fieldName + "' ){ ">
|
||||
|
||||
<#if messagesPerField.existsError('${fieldName}')>
|
||||
<#local jsFunctionCode += 'return true; '>
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return false; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
</#list>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
<#return jsFunctionCode>
|
||||
|
||||
</#if>
|
||||
|
||||
<#if xKeycloakify.themeType == "account" && areSamePath(path, ["realm", "isInternationalizationEnabled"])>
|
||||
<#attempt>
|
||||
<#return realm.isInternationalizationEnabled()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate realm.isInternationalizationEnabled()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#return "ABORT: It's a method">
|
||||
</#if>
|
||||
|
||||
<#local isBoolean = -1>
|
||||
<#attempt>
|
||||
<#local isBoolean = object?is_boolean>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a boolean">
|
||||
</#attempt>
|
||||
|
||||
<#if isBoolean>
|
||||
<#return object?c>
|
||||
</#if>
|
||||
|
||||
<#local isEnumerable = -1>
|
||||
<#attempt>
|
||||
<#local isEnumerable = object?is_enumerable>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's an enumerable">
|
||||
</#attempt>
|
||||
|
||||
|
||||
<#if isEnumerable>
|
||||
|
||||
<#local outSeq = []>
|
||||
|
||||
<#local i = 0>
|
||||
|
||||
<#list object as array_item>
|
||||
|
||||
<#if !array_item??>
|
||||
<#local outSeq += ["null,"]>
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local recOut = toJsDeclarationString(array_item, path + [ i ])>
|
||||
|
||||
<#local i = i + 1>
|
||||
|
||||
<#if recOut?starts_with("ABORT:")>
|
||||
|
||||
<#local errorMessage = recOut?remove_beginning("ABORT:")>
|
||||
|
||||
<#if errorMessage != " It's a method" >
|
||||
<#local outSeq += ["/*" + i?string + ": " + errorMessage + "*/"]>
|
||||
</#if>
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local outSeq += [recOut + ","]>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return (["["] + outSeq?map(str -> ""?right_pad(4 * (path?size + 1)) + str) + [ ""?right_pad(4 * path?size) + "]"])?join("\n")>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local isDate = -1>
|
||||
<#attempt>
|
||||
<#local isDate = object?is_date_like>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a date">
|
||||
</#attempt>
|
||||
|
||||
<#if isDate>
|
||||
<#return '"' + object?datetime?iso_utc + '"'>
|
||||
</#if>
|
||||
|
||||
<#local isNumber = -1>
|
||||
<#attempt>
|
||||
<#local isNumber = object?is_number>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a number">
|
||||
</#attempt>
|
||||
|
||||
<#if isNumber>
|
||||
<#return object?c>
|
||||
</#if>
|
||||
|
||||
<#local isString = -1>
|
||||
<#attempt>
|
||||
<#local isString = object?is_string>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a string">
|
||||
</#attempt>
|
||||
|
||||
<#if isString>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str=object />
|
||||
</#if>
|
||||
|
||||
<#attempt>
|
||||
<#return '"' + object?js_string + '"'>;
|
||||
<#recover>
|
||||
</#attempt>
|
||||
|
||||
<#return "ABORT: Couldn't convert into string non hash, non method, non boolean, non number, non enumerable object">
|
||||
|
||||
</#function>
|
||||
<#function isSubpath path searchedPath>
|
||||
|
||||
<#if path?size < searchedPath?size>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#local i=0>
|
||||
|
||||
<#list path as property>
|
||||
|
||||
<#if i == searchedPath?size >
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local searchedProperty=searchedPath[i]>
|
||||
|
||||
<#local i+= 1>
|
||||
|
||||
<#if searchedProperty?is_string && searchedProperty == "*">
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?is_string && !property?is_string>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?is_number && !property?is_number>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?string != property?string>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return true>
|
||||
|
||||
</#function>
|
||||
|
||||
<#function areSamePath path searchedPath>
|
||||
<#return path?size == searchedPath?size && isSubpath(path, searchedPath)>
|
||||
</#function>
|
||||
|
||||
<#macro addToXKeycloakifyMessagesIfMessageKey str>
|
||||
<#if !msg?? || !msg?is_method>
|
||||
<#return>
|
||||
</#if>
|
||||
<#if (str?length > 200)>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local key=removeBrackets(str)>
|
||||
<#if key?length==0>
|
||||
<#return>
|
||||
</#if>
|
||||
<#if !(key?matches(r"^[a-zA-Z0-9-_.]*$"))>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local resolvedMsg=msg(key)>
|
||||
<#if resolvedMsg==key>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local messages=xKeycloakify.messages>
|
||||
<#local messages = messages + { key: resolvedMsg }>
|
||||
<#assign xKeycloakify = xKeycloakify + { "messages": messages }>
|
||||
</#macro>
|
||||
|
||||
<#function removeBrackets str>
|
||||
<#if str?starts_with("${") && str?ends_with("}")>
|
||||
<#return str[2..(str?length-2)]>
|
||||
<#else>
|
||||
<#return str>
|
||||
</#if>
|
||||
</#function>
|
||||
|
||||
<#macro addNonAutomaticallyGatherableMessagesToXKeycloakifyMessages>
|
||||
<#if profile?? && profile?is_hash && profile.attributes?? && profile.attributes?is_enumerable>
|
||||
<#list profile.attributes as attribute>
|
||||
<#if !(
|
||||
attribute.annotations?? && attribute.annotations?is_hash &&
|
||||
attribute.annotations.inputOptionLabelsI18nPrefix?? && attribute.annotations.inputOptionLabelsI18nPrefix?is_string
|
||||
)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#local prefix=attribute.annotations.inputOptionLabelsI18nPrefix>
|
||||
<#if !(
|
||||
attribute.validators?? && attribute.validators?is_hash &&
|
||||
attribute.validators.options?? && attribute.validators.options?is_hash &&
|
||||
attribute.validators.options.options?? && attribute.validators.options.options?is_enumerable
|
||||
)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#list attribute.validators.options.options as option>
|
||||
<#if !option?is_string>
|
||||
<#continue>
|
||||
</#if>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="${prefix}.${option}" />
|
||||
</#list>
|
||||
</#list>
|
||||
</#if>
|
||||
<#if xKeycloakify.pageId == "terms.ftl" || termsAcceptanceRequired?? && termsAcceptanceRequired>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="termsText" />
|
||||
</#if>
|
||||
<#if requiredActions?? && requiredActions?is_enumerable>
|
||||
<#list requiredActions as requiredAction>
|
||||
<#if !requiredAction?is_string>
|
||||
<#continue>
|
||||
</#if>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="requiredAction.${requiredAction}" />
|
||||
</#list>
|
||||
</#if>
|
||||
</#macro>
|
||||
|
||||
</script>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="${xKeycloakify.resourcesPath}/dist/favicon-32x32.png">
|
||||
<script type="module" crossorigin="" src="${xKeycloakify.resourcesPath}/dist/assets/index-6-NnS-wp.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="root"></div>
|
||||
|
||||
|
||||
</body></html>
|
@ -0,0 +1,739 @@
|
||||
<!DOCTYPE html><html><head><script>
|
||||
<#assign xKeycloakify={
|
||||
"messages": {},
|
||||
"pageId": "login-idp-link-confirm.ftl",
|
||||
"ftlTemplateFileName": "login-idp-link-confirm.ftl",
|
||||
"themeType": "login",
|
||||
"themeName": "keycloakify-starter",
|
||||
"keycloakifyVersion": "11.4.4",
|
||||
"themeVersion": "0.0.0",
|
||||
"resourcesPath": ""
|
||||
}>
|
||||
|
||||
<#if url?? && url?is_hash && url.resourcesPath?? && url.resourcesPath?is_string>
|
||||
<#assign xKeycloakify = xKeycloakify + { "resourcesPath": url.resourcesPath }>
|
||||
</#if>
|
||||
<#if resourceUrl?? && resourceUrl?is_string>
|
||||
<#assign xKeycloakify = xKeycloakify + { "resourcesPath": resourceUrl }>
|
||||
</#if>
|
||||
|
||||
const kcContext = ${toJsDeclarationString(.data_model, [])?no_esc};
|
||||
kcContext.keycloakifyVersion = "${xKeycloakify.keycloakifyVersion}";
|
||||
kcContext.themeVersion = "${xKeycloakify.themeVersion}";
|
||||
kcContext.themeType = "${xKeycloakify.themeType}";
|
||||
kcContext.themeName = "${xKeycloakify.themeName}";
|
||||
kcContext.pageId = "${xKeycloakify.pageId}";
|
||||
kcContext.ftlTemplateFileName = "${xKeycloakify.ftlTemplateFileName}";
|
||||
|
||||
<@addNonAutomaticallyGatherableMessagesToXKeycloakifyMessages />
|
||||
|
||||
kcContext["x-keycloakify"] = {};
|
||||
|
||||
kcContext["x-keycloakify"].resourcesPath = "${xKeycloakify.resourcesPath}";
|
||||
|
||||
{
|
||||
var messages = {};
|
||||
<#list xKeycloakify.messages as key, resolvedMsg>
|
||||
messages["${key}"] = decodeHtmlEntities("${resolvedMsg?js_string}");
|
||||
</#list>
|
||||
kcContext["x-keycloakify"].messages = messages;
|
||||
}
|
||||
|
||||
if(
|
||||
kcContext.url instanceof Object &&
|
||||
typeof kcContext.url.resourcesPath === "string"
|
||||
){
|
||||
kcContext.url.resourcesCommonPath = kcContext.url.resourcesPath + "/resources-common";
|
||||
}
|
||||
|
||||
if( kcContext.messagesPerField ){
|
||||
var existsError_singleFieldName = kcContext.messagesPerField.existsError;
|
||||
kcContext.messagesPerField.existsError = function (){
|
||||
for( let i = 0; i < arguments.length; i++ ){
|
||||
if( existsError_singleFieldName(arguments[i]) ){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
};
|
||||
kcContext.messagesPerField.exists = function (fieldName) {
|
||||
return kcContext.messagesPerField.get(fieldName) !== "";
|
||||
};
|
||||
kcContext.messagesPerField.printIfExists = function (fieldName, text) {
|
||||
return kcContext.messagesPerField.exists(fieldName) ? text : undefined;
|
||||
};
|
||||
kcContext.messagesPerField.getFirstError = function () {
|
||||
for( let i = 0; i < arguments.length; i++ ){
|
||||
const fieldName = arguments[i];
|
||||
if( kcContext.messagesPerField.existsError(fieldName) ){
|
||||
return kcContext.messagesPerField.get(fieldName);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
attributes_to_attributesByName: {
|
||||
if( !kcContext.profile ){
|
||||
break attributes_to_attributesByName;
|
||||
}
|
||||
if( !kcContext.profile.attributes ){
|
||||
break attributes_to_attributesByName;
|
||||
}
|
||||
var attributes = kcContext.profile.attributes;
|
||||
delete kcContext.profile.attributes;
|
||||
kcContext.profile.attributesByName = {};
|
||||
attributes.forEach(function(attribute){
|
||||
kcContext.profile.attributesByName[attribute.name] = attribute;
|
||||
});
|
||||
}
|
||||
|
||||
redirect_to_dev_server: {
|
||||
|
||||
switch(kcContext.themeType){
|
||||
case "login":
|
||||
break redirect_to_dev_server;
|
||||
case "account":
|
||||
if( kcContext.pageId !== "index.ftl" ){
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
break;
|
||||
case "admin":
|
||||
break;
|
||||
default:
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
|
||||
const devSeverPort = kcContext.properties.KEYCLOAKIFY_SPA_DEV_SERVER_PORT;
|
||||
|
||||
if( !devSeverPort ){
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
|
||||
const redirectUrl = new URL(window.location.href);
|
||||
|
||||
redirectUrl.port = devSeverPort;
|
||||
|
||||
delete kcContext.msgJSON;
|
||||
|
||||
console.log(kcContext);
|
||||
|
||||
redirectUrl.searchParams.set("kcContext", encodeURIComponent(JSON.stringify(kcContext)));
|
||||
|
||||
window.location.href = redirectUrl.toString();
|
||||
|
||||
}
|
||||
|
||||
|
||||
window.kcContext = kcContext;
|
||||
|
||||
|
||||
<#if xKeycloakify.themeType == "login" >
|
||||
{
|
||||
const script = document.createElement("script");
|
||||
script.type = "importmap";
|
||||
script.textContent = JSON.stringify({
|
||||
imports: {
|
||||
"rfc4648": kcContext.url.resourcesCommonPath + "/node_modules/rfc4648/lib/rfc4648.js"
|
||||
}
|
||||
}, null, 2);
|
||||
|
||||
document.head.appendChild(script);
|
||||
}
|
||||
</#if>
|
||||
|
||||
function decodeHtmlEntities(htmlStr){
|
||||
var element = decodeHtmlEntities.element;
|
||||
if (!element) {
|
||||
element = document.createElement("textarea");
|
||||
decodeHtmlEntities.element = element;
|
||||
}
|
||||
element.innerHTML = htmlStr;
|
||||
return element.value;
|
||||
}
|
||||
|
||||
<#function toJsDeclarationString object path>
|
||||
<#local isHash = -1>
|
||||
<#attempt>
|
||||
<#local isHash = object?is_hash || object?is_hash_ex>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't evaluate if " + path?join(".") + " is a hash">
|
||||
</#attempt>
|
||||
|
||||
<#if isHash>
|
||||
<#if path?size gt 10>
|
||||
<#return "ABORT: Too many recursive calls, path: " + path?join(".")>
|
||||
</#if>
|
||||
<#local keys = -1>
|
||||
|
||||
<#attempt>
|
||||
<#local keys = object?keys>
|
||||
<#recover>
|
||||
<#return "ABORT: We can't list keys on object">
|
||||
</#attempt>
|
||||
|
||||
<#local outSeq = []>
|
||||
|
||||
<#list keys as key>
|
||||
<#if ["class","declaredConstructors","superclass","declaringClass" ]?seq_contains(key) >
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if (
|
||||
areSamePath(path, ["url"]) &&
|
||||
["loginUpdatePasswordUrl", "loginUpdateProfileUrl", "loginUsernameReminderUrl", "loginUpdateTotpUrl"]?seq_contains(key)
|
||||
) || (
|
||||
key == "updateProfileCtx" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
<#-- https://github.com/keycloakify/keycloakify/pull/65#issuecomment-991896344 (reports with saml-post-form.ftl) -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/91#issue-1212319466 (reports with error.ftl and Kc18) -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/109#issuecomment-1134610163 -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/357 -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/discussions/406#discussioncomment-7514787 -->
|
||||
key == "loginAction" &&
|
||||
areSamePath(path, ["url"]) &&
|
||||
["saml-post-form.ftl", "error.ftl", "info.ftl", "login-oauth-grant.ftl", "logout-confirm.ftl", "login-oauth2-device-verify-user-code.ftl"]?seq_contains(xKeycloakify.pageId) &&
|
||||
!(auth?has_content && auth.showTryAnotherWayLink())
|
||||
) || (
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/362 -->
|
||||
["secretData", "value"]?seq_contains(key) &&
|
||||
areSamePath(path, [ "totp", "otpCredentials", "*" ])
|
||||
) || (
|
||||
["contextData", "idpConfig", "idp", "authenticationSession"]?seq_contains(key) &&
|
||||
areSamePath(path, ["brokerContext"]) &&
|
||||
["login-idp-link-confirm.ftl", "login-idp-link-email.ftl" ]?seq_contains(xKeycloakify.pageId)
|
||||
) || (
|
||||
key == "identityProviderBrokerCtx" &&
|
||||
areSamePath(path, []) &&
|
||||
["login-idp-link-confirm.ftl", "login-idp-link-email.ftl" ]?seq_contains(xKeycloakify.pageId)
|
||||
) || (
|
||||
["masterAdminClient", "delegateForUpdate", "defaultRole", "smtpConfig"]?seq_contains(key) &&
|
||||
areSamePath(path, ["realm"])
|
||||
) || (
|
||||
xKeycloakify.pageId == "error.ftl" &&
|
||||
areSamePath(path, ["realm"]) &&
|
||||
!["name", "displayName", "displayNameHtml", "internationalizationEnabled", "registrationEmailAsUsername" ]?seq_contains(key)
|
||||
) || (
|
||||
xKeycloakify.pageId == "applications.ftl" &&
|
||||
(
|
||||
key == "realm" ||
|
||||
key == "container"
|
||||
) &&
|
||||
isSubpath(path, ["applications", "applications"])
|
||||
) || (
|
||||
key == "delegateForUpdate" &&
|
||||
areSamePath(path, ["user"])
|
||||
) || (
|
||||
<#-- Security audit forwarded by Garth (Gmail) -->
|
||||
key == "saml.signing.private.key" &&
|
||||
areSamePath(path, ["client", "attributes"])
|
||||
) || (
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/534 -->
|
||||
key == "password" &&
|
||||
areSamePath(path, ["login"])
|
||||
) || (
|
||||
<#-- Remove realmAttributes added by https://github.com/jcputney/keycloak-theme-additional-info-extension for peace of mind. -->
|
||||
key == "realmAttributes" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
<#-- attributesByName adds a lot of noise to the output and is not needed, we already have profile.attributes -->
|
||||
key == "attributesByName" &&
|
||||
areSamePath(path, ["profile"])
|
||||
) || (
|
||||
<#-- We already have the attributes in profile speedup the rendering by filtering it out from the register object -->
|
||||
(key == "attributes" || key == "attributesByName") &&
|
||||
areSamePath(path, ["register"])
|
||||
) || (
|
||||
areSamePath(path, ["properties"]) &&
|
||||
(
|
||||
key?starts_with("kc") ||
|
||||
key == "locales" ||
|
||||
key == "import" ||
|
||||
key == "parent" ||
|
||||
key == "meta" ||
|
||||
key == "stylesCommon" ||
|
||||
key == "styles" ||
|
||||
key == "accountResourceProvider"
|
||||
)
|
||||
) || (
|
||||
key == "execution" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
key == "entity" &&
|
||||
areSamePath(path, ["user"])
|
||||
) || (
|
||||
key == "attributes" &&
|
||||
areSamePath(path, ["realm"])
|
||||
) || (
|
||||
xKeycloakify.pageId == "index.ftl" &&
|
||||
xKeycloakify.themeType == "account" &&
|
||||
areSamePath(path, ["realm"]) &&
|
||||
![
|
||||
"name",
|
||||
"registrationEmailAsUsername",
|
||||
"editUsernameAllowed",
|
||||
"isInternationalizationEnabled",
|
||||
"identityFederationEnabled",
|
||||
"userManagedAccessAllowed"
|
||||
]?seq_contains(key)
|
||||
) || (
|
||||
["flowContext", "session", "realm"]?seq_contains(key) &&
|
||||
areSamePath(path, ["social"])
|
||||
)
|
||||
>
|
||||
<#-- <#local outSeq += ["/*" + path?join(".") + "." + key + " excluded*/"]> -->
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#-- https://github.com/keycloakify/keycloakify/discussions/406 -->
|
||||
<#if (
|
||||
key == "attemptedUsername" &&
|
||||
areSamePath(path, ["auth"]) &&
|
||||
[
|
||||
"register.ftl", "terms.ftl", "info.ftl", "login.ftl",
|
||||
"login-update-password.ftl", "login-oauth2-device-verify-user-code.ftl"
|
||||
]?seq_contains(xKeycloakify.pageId)
|
||||
)>
|
||||
<#attempt>
|
||||
<#-- https://github.com/keycloak/keycloak/blob/3a2bf0c04bcde185e497aaa32d0bb7ab7520cf4a/themes/src/main/resources/theme/base/login/template.ftl#L63 -->
|
||||
<#if !(auth?has_content && auth.showUsername() && !auth.showResetCredentials())>
|
||||
<#local outSeq += ["/*" + path?join(".") + "." + key + " excluded*/"]>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Accessing attemptedUsername throwed an exception */"]>
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
|
||||
|
||||
<#attempt>
|
||||
<#if !object[key]??>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Couldn't test if '" + key + "' is available on this object*/"]>
|
||||
<#continue>
|
||||
</#attempt>
|
||||
|
||||
<#local propertyValue = -1>
|
||||
|
||||
<#attempt>
|
||||
<#local propertyValue = object[key]>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Couldn't dereference '" + key + "' on this object*/"]>
|
||||
<#continue>
|
||||
</#attempt>
|
||||
|
||||
<#local recOut = toJsDeclarationString(propertyValue, path + [ key ])>
|
||||
|
||||
<#if recOut?starts_with("ABORT:")>
|
||||
|
||||
<#local errorMessage = recOut?remove_beginning("ABORT:")>
|
||||
|
||||
<#if errorMessage != " It's a method" >
|
||||
<#local outSeq += ["/*" + key + ": " + errorMessage + "*/"]>
|
||||
</#if>
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local outSeq += ['"' + key + '": ' + recOut + ","]>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return (["{"] + outSeq?map(str -> ""?right_pad(4 * (path?size + 1)) + str) + [ ""?right_pad(4 * path?size) + "}"])?join("\n")>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local isMethod = -1>
|
||||
<#attempt>
|
||||
<#local isMethod = object?is_method>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it'sa method.">
|
||||
</#attempt>
|
||||
|
||||
<#if isMethod>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showUsername"])>
|
||||
<#attempt>
|
||||
<#return auth.showUsername()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showUsername()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showResetCredentials"])>
|
||||
<#attempt>
|
||||
<#return auth.showResetCredentials()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showResetCredentials()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showTryAnotherWayLink"])>
|
||||
<#attempt>
|
||||
<#return auth.showTryAnotherWayLink()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showTryAnotherWayLink()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["url", "getLogoutUrl"])>
|
||||
<#local returnValue = -1>
|
||||
<#attempt>
|
||||
<#local returnValue = url.getLogoutUrl()>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate url.getLogoutUrl()">
|
||||
</#attempt>
|
||||
<#return 'function(){ return "' + returnValue + '"; }'>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["totp", "policy", "getAlgorithmKey"])>
|
||||
<#local returnValue = "error">
|
||||
<#if mode?? && mode = "manual">
|
||||
<#attempt>
|
||||
<#local returnValue = totp.policy.getAlgorithmKey()>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate totp.policy.getAlgorithmKey()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
<#return 'function(){ return "' + returnValue + '"; }'>
|
||||
</#if>
|
||||
|
||||
<#assign fieldNames = ["firstName", "lastName", "email", "username", "password", "password-confirm", "global", "totp", "userLabel", "recoveryCodeInput", "termsAccepted"]>
|
||||
<#if profile?? && profile.attributes??>
|
||||
<#list profile.attributes as attribute>
|
||||
<#if fieldNames?seq_contains(attribute.name)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#assign fieldNames += [attribute.name]>
|
||||
</#list>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["messagesPerField", "get"])>
|
||||
|
||||
<#local jsFunctionCode = "function (fieldName) { ">
|
||||
|
||||
<#list fieldNames as fieldName>
|
||||
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/217 -->
|
||||
<#if xKeycloakify.pageId == "login.ftl" >
|
||||
|
||||
<#if fieldName == "username">
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === 'username' || fieldName === 'password' ){ ">
|
||||
|
||||
<#if messagesPerField.exists('username') || messagesPerField.exists('password')>
|
||||
<#local jsFunctionCode += "return kcContext.message && kcContext.message.summary ? kcContext.message.summary : 'error'; ">
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return ''; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if fieldName == "password">
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === '" + fieldName + "'){ ">
|
||||
|
||||
<#if messagesPerField.exists('${fieldName}')>
|
||||
<#local jsFunctionCode += 'return decodeHtmlEntities("' + messagesPerField.get('${fieldName}')?js_string + '"); '>
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return ''; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
</#list>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
<#return jsFunctionCode>
|
||||
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["messagesPerField", "existsError"])>
|
||||
|
||||
<#local jsFunctionCode = "function (fieldName) { ">
|
||||
|
||||
<#list fieldNames as fieldName>
|
||||
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/217 -->
|
||||
<#if xKeycloakify.pageId == "login.ftl" >
|
||||
<#if fieldName == "username">
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === 'username' || fieldName === 'password' ){ ">
|
||||
|
||||
<#if messagesPerField.existsError('username') || messagesPerField.existsError('password')>
|
||||
<#local jsFunctionCode += "return true; ">
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return false; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if fieldName == "password">
|
||||
<#continue>
|
||||
</#if>
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === '" + fieldName + "' ){ ">
|
||||
|
||||
<#if messagesPerField.existsError('${fieldName}')>
|
||||
<#local jsFunctionCode += 'return true; '>
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return false; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
</#list>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
<#return jsFunctionCode>
|
||||
|
||||
</#if>
|
||||
|
||||
<#if xKeycloakify.themeType == "account" && areSamePath(path, ["realm", "isInternationalizationEnabled"])>
|
||||
<#attempt>
|
||||
<#return realm.isInternationalizationEnabled()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate realm.isInternationalizationEnabled()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#return "ABORT: It's a method">
|
||||
</#if>
|
||||
|
||||
<#local isBoolean = -1>
|
||||
<#attempt>
|
||||
<#local isBoolean = object?is_boolean>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a boolean">
|
||||
</#attempt>
|
||||
|
||||
<#if isBoolean>
|
||||
<#return object?c>
|
||||
</#if>
|
||||
|
||||
<#local isEnumerable = -1>
|
||||
<#attempt>
|
||||
<#local isEnumerable = object?is_enumerable>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's an enumerable">
|
||||
</#attempt>
|
||||
|
||||
|
||||
<#if isEnumerable>
|
||||
|
||||
<#local outSeq = []>
|
||||
|
||||
<#local i = 0>
|
||||
|
||||
<#list object as array_item>
|
||||
|
||||
<#if !array_item??>
|
||||
<#local outSeq += ["null,"]>
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local recOut = toJsDeclarationString(array_item, path + [ i ])>
|
||||
|
||||
<#local i = i + 1>
|
||||
|
||||
<#if recOut?starts_with("ABORT:")>
|
||||
|
||||
<#local errorMessage = recOut?remove_beginning("ABORT:")>
|
||||
|
||||
<#if errorMessage != " It's a method" >
|
||||
<#local outSeq += ["/*" + i?string + ": " + errorMessage + "*/"]>
|
||||
</#if>
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local outSeq += [recOut + ","]>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return (["["] + outSeq?map(str -> ""?right_pad(4 * (path?size + 1)) + str) + [ ""?right_pad(4 * path?size) + "]"])?join("\n")>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local isDate = -1>
|
||||
<#attempt>
|
||||
<#local isDate = object?is_date_like>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a date">
|
||||
</#attempt>
|
||||
|
||||
<#if isDate>
|
||||
<#return '"' + object?datetime?iso_utc + '"'>
|
||||
</#if>
|
||||
|
||||
<#local isNumber = -1>
|
||||
<#attempt>
|
||||
<#local isNumber = object?is_number>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a number">
|
||||
</#attempt>
|
||||
|
||||
<#if isNumber>
|
||||
<#return object?c>
|
||||
</#if>
|
||||
|
||||
<#local isString = -1>
|
||||
<#attempt>
|
||||
<#local isString = object?is_string>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a string">
|
||||
</#attempt>
|
||||
|
||||
<#if isString>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str=object />
|
||||
</#if>
|
||||
|
||||
<#attempt>
|
||||
<#return '"' + object?js_string + '"'>;
|
||||
<#recover>
|
||||
</#attempt>
|
||||
|
||||
<#return "ABORT: Couldn't convert into string non hash, non method, non boolean, non number, non enumerable object">
|
||||
|
||||
</#function>
|
||||
<#function isSubpath path searchedPath>
|
||||
|
||||
<#if path?size < searchedPath?size>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#local i=0>
|
||||
|
||||
<#list path as property>
|
||||
|
||||
<#if i == searchedPath?size >
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local searchedProperty=searchedPath[i]>
|
||||
|
||||
<#local i+= 1>
|
||||
|
||||
<#if searchedProperty?is_string && searchedProperty == "*">
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?is_string && !property?is_string>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?is_number && !property?is_number>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?string != property?string>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return true>
|
||||
|
||||
</#function>
|
||||
|
||||
<#function areSamePath path searchedPath>
|
||||
<#return path?size == searchedPath?size && isSubpath(path, searchedPath)>
|
||||
</#function>
|
||||
|
||||
<#macro addToXKeycloakifyMessagesIfMessageKey str>
|
||||
<#if !msg?? || !msg?is_method>
|
||||
<#return>
|
||||
</#if>
|
||||
<#if (str?length > 200)>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local key=removeBrackets(str)>
|
||||
<#if key?length==0>
|
||||
<#return>
|
||||
</#if>
|
||||
<#if !(key?matches(r"^[a-zA-Z0-9-_.]*$"))>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local resolvedMsg=msg(key)>
|
||||
<#if resolvedMsg==key>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local messages=xKeycloakify.messages>
|
||||
<#local messages = messages + { key: resolvedMsg }>
|
||||
<#assign xKeycloakify = xKeycloakify + { "messages": messages }>
|
||||
</#macro>
|
||||
|
||||
<#function removeBrackets str>
|
||||
<#if str?starts_with("${") && str?ends_with("}")>
|
||||
<#return str[2..(str?length-2)]>
|
||||
<#else>
|
||||
<#return str>
|
||||
</#if>
|
||||
</#function>
|
||||
|
||||
<#macro addNonAutomaticallyGatherableMessagesToXKeycloakifyMessages>
|
||||
<#if profile?? && profile?is_hash && profile.attributes?? && profile.attributes?is_enumerable>
|
||||
<#list profile.attributes as attribute>
|
||||
<#if !(
|
||||
attribute.annotations?? && attribute.annotations?is_hash &&
|
||||
attribute.annotations.inputOptionLabelsI18nPrefix?? && attribute.annotations.inputOptionLabelsI18nPrefix?is_string
|
||||
)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#local prefix=attribute.annotations.inputOptionLabelsI18nPrefix>
|
||||
<#if !(
|
||||
attribute.validators?? && attribute.validators?is_hash &&
|
||||
attribute.validators.options?? && attribute.validators.options?is_hash &&
|
||||
attribute.validators.options.options?? && attribute.validators.options.options?is_enumerable
|
||||
)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#list attribute.validators.options.options as option>
|
||||
<#if !option?is_string>
|
||||
<#continue>
|
||||
</#if>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="${prefix}.${option}" />
|
||||
</#list>
|
||||
</#list>
|
||||
</#if>
|
||||
<#if xKeycloakify.pageId == "terms.ftl" || termsAcceptanceRequired?? && termsAcceptanceRequired>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="termsText" />
|
||||
</#if>
|
||||
<#if requiredActions?? && requiredActions?is_enumerable>
|
||||
<#list requiredActions as requiredAction>
|
||||
<#if !requiredAction?is_string>
|
||||
<#continue>
|
||||
</#if>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="requiredAction.${requiredAction}" />
|
||||
</#list>
|
||||
</#if>
|
||||
</#macro>
|
||||
|
||||
</script>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="${xKeycloakify.resourcesPath}/dist/favicon-32x32.png">
|
||||
<script type="module" crossorigin="" src="${xKeycloakify.resourcesPath}/dist/assets/index-6-NnS-wp.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="root"></div>
|
||||
|
||||
|
||||
</body></html>
|
@ -0,0 +1,739 @@
|
||||
<!DOCTYPE html><html><head><script>
|
||||
<#assign xKeycloakify={
|
||||
"messages": {},
|
||||
"pageId": "login-idp-link-email.ftl",
|
||||
"ftlTemplateFileName": "login-idp-link-email.ftl",
|
||||
"themeType": "login",
|
||||
"themeName": "keycloakify-starter",
|
||||
"keycloakifyVersion": "11.4.4",
|
||||
"themeVersion": "0.0.0",
|
||||
"resourcesPath": ""
|
||||
}>
|
||||
|
||||
<#if url?? && url?is_hash && url.resourcesPath?? && url.resourcesPath?is_string>
|
||||
<#assign xKeycloakify = xKeycloakify + { "resourcesPath": url.resourcesPath }>
|
||||
</#if>
|
||||
<#if resourceUrl?? && resourceUrl?is_string>
|
||||
<#assign xKeycloakify = xKeycloakify + { "resourcesPath": resourceUrl }>
|
||||
</#if>
|
||||
|
||||
const kcContext = ${toJsDeclarationString(.data_model, [])?no_esc};
|
||||
kcContext.keycloakifyVersion = "${xKeycloakify.keycloakifyVersion}";
|
||||
kcContext.themeVersion = "${xKeycloakify.themeVersion}";
|
||||
kcContext.themeType = "${xKeycloakify.themeType}";
|
||||
kcContext.themeName = "${xKeycloakify.themeName}";
|
||||
kcContext.pageId = "${xKeycloakify.pageId}";
|
||||
kcContext.ftlTemplateFileName = "${xKeycloakify.ftlTemplateFileName}";
|
||||
|
||||
<@addNonAutomaticallyGatherableMessagesToXKeycloakifyMessages />
|
||||
|
||||
kcContext["x-keycloakify"] = {};
|
||||
|
||||
kcContext["x-keycloakify"].resourcesPath = "${xKeycloakify.resourcesPath}";
|
||||
|
||||
{
|
||||
var messages = {};
|
||||
<#list xKeycloakify.messages as key, resolvedMsg>
|
||||
messages["${key}"] = decodeHtmlEntities("${resolvedMsg?js_string}");
|
||||
</#list>
|
||||
kcContext["x-keycloakify"].messages = messages;
|
||||
}
|
||||
|
||||
if(
|
||||
kcContext.url instanceof Object &&
|
||||
typeof kcContext.url.resourcesPath === "string"
|
||||
){
|
||||
kcContext.url.resourcesCommonPath = kcContext.url.resourcesPath + "/resources-common";
|
||||
}
|
||||
|
||||
if( kcContext.messagesPerField ){
|
||||
var existsError_singleFieldName = kcContext.messagesPerField.existsError;
|
||||
kcContext.messagesPerField.existsError = function (){
|
||||
for( let i = 0; i < arguments.length; i++ ){
|
||||
if( existsError_singleFieldName(arguments[i]) ){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
};
|
||||
kcContext.messagesPerField.exists = function (fieldName) {
|
||||
return kcContext.messagesPerField.get(fieldName) !== "";
|
||||
};
|
||||
kcContext.messagesPerField.printIfExists = function (fieldName, text) {
|
||||
return kcContext.messagesPerField.exists(fieldName) ? text : undefined;
|
||||
};
|
||||
kcContext.messagesPerField.getFirstError = function () {
|
||||
for( let i = 0; i < arguments.length; i++ ){
|
||||
const fieldName = arguments[i];
|
||||
if( kcContext.messagesPerField.existsError(fieldName) ){
|
||||
return kcContext.messagesPerField.get(fieldName);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
attributes_to_attributesByName: {
|
||||
if( !kcContext.profile ){
|
||||
break attributes_to_attributesByName;
|
||||
}
|
||||
if( !kcContext.profile.attributes ){
|
||||
break attributes_to_attributesByName;
|
||||
}
|
||||
var attributes = kcContext.profile.attributes;
|
||||
delete kcContext.profile.attributes;
|
||||
kcContext.profile.attributesByName = {};
|
||||
attributes.forEach(function(attribute){
|
||||
kcContext.profile.attributesByName[attribute.name] = attribute;
|
||||
});
|
||||
}
|
||||
|
||||
redirect_to_dev_server: {
|
||||
|
||||
switch(kcContext.themeType){
|
||||
case "login":
|
||||
break redirect_to_dev_server;
|
||||
case "account":
|
||||
if( kcContext.pageId !== "index.ftl" ){
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
break;
|
||||
case "admin":
|
||||
break;
|
||||
default:
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
|
||||
const devSeverPort = kcContext.properties.KEYCLOAKIFY_SPA_DEV_SERVER_PORT;
|
||||
|
||||
if( !devSeverPort ){
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
|
||||
const redirectUrl = new URL(window.location.href);
|
||||
|
||||
redirectUrl.port = devSeverPort;
|
||||
|
||||
delete kcContext.msgJSON;
|
||||
|
||||
console.log(kcContext);
|
||||
|
||||
redirectUrl.searchParams.set("kcContext", encodeURIComponent(JSON.stringify(kcContext)));
|
||||
|
||||
window.location.href = redirectUrl.toString();
|
||||
|
||||
}
|
||||
|
||||
|
||||
window.kcContext = kcContext;
|
||||
|
||||
|
||||
<#if xKeycloakify.themeType == "login" >
|
||||
{
|
||||
const script = document.createElement("script");
|
||||
script.type = "importmap";
|
||||
script.textContent = JSON.stringify({
|
||||
imports: {
|
||||
"rfc4648": kcContext.url.resourcesCommonPath + "/node_modules/rfc4648/lib/rfc4648.js"
|
||||
}
|
||||
}, null, 2);
|
||||
|
||||
document.head.appendChild(script);
|
||||
}
|
||||
</#if>
|
||||
|
||||
function decodeHtmlEntities(htmlStr){
|
||||
var element = decodeHtmlEntities.element;
|
||||
if (!element) {
|
||||
element = document.createElement("textarea");
|
||||
decodeHtmlEntities.element = element;
|
||||
}
|
||||
element.innerHTML = htmlStr;
|
||||
return element.value;
|
||||
}
|
||||
|
||||
<#function toJsDeclarationString object path>
|
||||
<#local isHash = -1>
|
||||
<#attempt>
|
||||
<#local isHash = object?is_hash || object?is_hash_ex>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't evaluate if " + path?join(".") + " is a hash">
|
||||
</#attempt>
|
||||
|
||||
<#if isHash>
|
||||
<#if path?size gt 10>
|
||||
<#return "ABORT: Too many recursive calls, path: " + path?join(".")>
|
||||
</#if>
|
||||
<#local keys = -1>
|
||||
|
||||
<#attempt>
|
||||
<#local keys = object?keys>
|
||||
<#recover>
|
||||
<#return "ABORT: We can't list keys on object">
|
||||
</#attempt>
|
||||
|
||||
<#local outSeq = []>
|
||||
|
||||
<#list keys as key>
|
||||
<#if ["class","declaredConstructors","superclass","declaringClass" ]?seq_contains(key) >
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if (
|
||||
areSamePath(path, ["url"]) &&
|
||||
["loginUpdatePasswordUrl", "loginUpdateProfileUrl", "loginUsernameReminderUrl", "loginUpdateTotpUrl"]?seq_contains(key)
|
||||
) || (
|
||||
key == "updateProfileCtx" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
<#-- https://github.com/keycloakify/keycloakify/pull/65#issuecomment-991896344 (reports with saml-post-form.ftl) -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/91#issue-1212319466 (reports with error.ftl and Kc18) -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/109#issuecomment-1134610163 -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/357 -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/discussions/406#discussioncomment-7514787 -->
|
||||
key == "loginAction" &&
|
||||
areSamePath(path, ["url"]) &&
|
||||
["saml-post-form.ftl", "error.ftl", "info.ftl", "login-oauth-grant.ftl", "logout-confirm.ftl", "login-oauth2-device-verify-user-code.ftl"]?seq_contains(xKeycloakify.pageId) &&
|
||||
!(auth?has_content && auth.showTryAnotherWayLink())
|
||||
) || (
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/362 -->
|
||||
["secretData", "value"]?seq_contains(key) &&
|
||||
areSamePath(path, [ "totp", "otpCredentials", "*" ])
|
||||
) || (
|
||||
["contextData", "idpConfig", "idp", "authenticationSession"]?seq_contains(key) &&
|
||||
areSamePath(path, ["brokerContext"]) &&
|
||||
["login-idp-link-confirm.ftl", "login-idp-link-email.ftl" ]?seq_contains(xKeycloakify.pageId)
|
||||
) || (
|
||||
key == "identityProviderBrokerCtx" &&
|
||||
areSamePath(path, []) &&
|
||||
["login-idp-link-confirm.ftl", "login-idp-link-email.ftl" ]?seq_contains(xKeycloakify.pageId)
|
||||
) || (
|
||||
["masterAdminClient", "delegateForUpdate", "defaultRole", "smtpConfig"]?seq_contains(key) &&
|
||||
areSamePath(path, ["realm"])
|
||||
) || (
|
||||
xKeycloakify.pageId == "error.ftl" &&
|
||||
areSamePath(path, ["realm"]) &&
|
||||
!["name", "displayName", "displayNameHtml", "internationalizationEnabled", "registrationEmailAsUsername" ]?seq_contains(key)
|
||||
) || (
|
||||
xKeycloakify.pageId == "applications.ftl" &&
|
||||
(
|
||||
key == "realm" ||
|
||||
key == "container"
|
||||
) &&
|
||||
isSubpath(path, ["applications", "applications"])
|
||||
) || (
|
||||
key == "delegateForUpdate" &&
|
||||
areSamePath(path, ["user"])
|
||||
) || (
|
||||
<#-- Security audit forwarded by Garth (Gmail) -->
|
||||
key == "saml.signing.private.key" &&
|
||||
areSamePath(path, ["client", "attributes"])
|
||||
) || (
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/534 -->
|
||||
key == "password" &&
|
||||
areSamePath(path, ["login"])
|
||||
) || (
|
||||
<#-- Remove realmAttributes added by https://github.com/jcputney/keycloak-theme-additional-info-extension for peace of mind. -->
|
||||
key == "realmAttributes" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
<#-- attributesByName adds a lot of noise to the output and is not needed, we already have profile.attributes -->
|
||||
key == "attributesByName" &&
|
||||
areSamePath(path, ["profile"])
|
||||
) || (
|
||||
<#-- We already have the attributes in profile speedup the rendering by filtering it out from the register object -->
|
||||
(key == "attributes" || key == "attributesByName") &&
|
||||
areSamePath(path, ["register"])
|
||||
) || (
|
||||
areSamePath(path, ["properties"]) &&
|
||||
(
|
||||
key?starts_with("kc") ||
|
||||
key == "locales" ||
|
||||
key == "import" ||
|
||||
key == "parent" ||
|
||||
key == "meta" ||
|
||||
key == "stylesCommon" ||
|
||||
key == "styles" ||
|
||||
key == "accountResourceProvider"
|
||||
)
|
||||
) || (
|
||||
key == "execution" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
key == "entity" &&
|
||||
areSamePath(path, ["user"])
|
||||
) || (
|
||||
key == "attributes" &&
|
||||
areSamePath(path, ["realm"])
|
||||
) || (
|
||||
xKeycloakify.pageId == "index.ftl" &&
|
||||
xKeycloakify.themeType == "account" &&
|
||||
areSamePath(path, ["realm"]) &&
|
||||
![
|
||||
"name",
|
||||
"registrationEmailAsUsername",
|
||||
"editUsernameAllowed",
|
||||
"isInternationalizationEnabled",
|
||||
"identityFederationEnabled",
|
||||
"userManagedAccessAllowed"
|
||||
]?seq_contains(key)
|
||||
) || (
|
||||
["flowContext", "session", "realm"]?seq_contains(key) &&
|
||||
areSamePath(path, ["social"])
|
||||
)
|
||||
>
|
||||
<#-- <#local outSeq += ["/*" + path?join(".") + "." + key + " excluded*/"]> -->
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#-- https://github.com/keycloakify/keycloakify/discussions/406 -->
|
||||
<#if (
|
||||
key == "attemptedUsername" &&
|
||||
areSamePath(path, ["auth"]) &&
|
||||
[
|
||||
"register.ftl", "terms.ftl", "info.ftl", "login.ftl",
|
||||
"login-update-password.ftl", "login-oauth2-device-verify-user-code.ftl"
|
||||
]?seq_contains(xKeycloakify.pageId)
|
||||
)>
|
||||
<#attempt>
|
||||
<#-- https://github.com/keycloak/keycloak/blob/3a2bf0c04bcde185e497aaa32d0bb7ab7520cf4a/themes/src/main/resources/theme/base/login/template.ftl#L63 -->
|
||||
<#if !(auth?has_content && auth.showUsername() && !auth.showResetCredentials())>
|
||||
<#local outSeq += ["/*" + path?join(".") + "." + key + " excluded*/"]>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Accessing attemptedUsername throwed an exception */"]>
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
|
||||
|
||||
<#attempt>
|
||||
<#if !object[key]??>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Couldn't test if '" + key + "' is available on this object*/"]>
|
||||
<#continue>
|
||||
</#attempt>
|
||||
|
||||
<#local propertyValue = -1>
|
||||
|
||||
<#attempt>
|
||||
<#local propertyValue = object[key]>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Couldn't dereference '" + key + "' on this object*/"]>
|
||||
<#continue>
|
||||
</#attempt>
|
||||
|
||||
<#local recOut = toJsDeclarationString(propertyValue, path + [ key ])>
|
||||
|
||||
<#if recOut?starts_with("ABORT:")>
|
||||
|
||||
<#local errorMessage = recOut?remove_beginning("ABORT:")>
|
||||
|
||||
<#if errorMessage != " It's a method" >
|
||||
<#local outSeq += ["/*" + key + ": " + errorMessage + "*/"]>
|
||||
</#if>
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local outSeq += ['"' + key + '": ' + recOut + ","]>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return (["{"] + outSeq?map(str -> ""?right_pad(4 * (path?size + 1)) + str) + [ ""?right_pad(4 * path?size) + "}"])?join("\n")>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local isMethod = -1>
|
||||
<#attempt>
|
||||
<#local isMethod = object?is_method>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it'sa method.">
|
||||
</#attempt>
|
||||
|
||||
<#if isMethod>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showUsername"])>
|
||||
<#attempt>
|
||||
<#return auth.showUsername()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showUsername()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showResetCredentials"])>
|
||||
<#attempt>
|
||||
<#return auth.showResetCredentials()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showResetCredentials()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showTryAnotherWayLink"])>
|
||||
<#attempt>
|
||||
<#return auth.showTryAnotherWayLink()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showTryAnotherWayLink()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["url", "getLogoutUrl"])>
|
||||
<#local returnValue = -1>
|
||||
<#attempt>
|
||||
<#local returnValue = url.getLogoutUrl()>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate url.getLogoutUrl()">
|
||||
</#attempt>
|
||||
<#return 'function(){ return "' + returnValue + '"; }'>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["totp", "policy", "getAlgorithmKey"])>
|
||||
<#local returnValue = "error">
|
||||
<#if mode?? && mode = "manual">
|
||||
<#attempt>
|
||||
<#local returnValue = totp.policy.getAlgorithmKey()>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate totp.policy.getAlgorithmKey()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
<#return 'function(){ return "' + returnValue + '"; }'>
|
||||
</#if>
|
||||
|
||||
<#assign fieldNames = ["firstName", "lastName", "email", "username", "password", "password-confirm", "global", "totp", "userLabel", "recoveryCodeInput", "termsAccepted"]>
|
||||
<#if profile?? && profile.attributes??>
|
||||
<#list profile.attributes as attribute>
|
||||
<#if fieldNames?seq_contains(attribute.name)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#assign fieldNames += [attribute.name]>
|
||||
</#list>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["messagesPerField", "get"])>
|
||||
|
||||
<#local jsFunctionCode = "function (fieldName) { ">
|
||||
|
||||
<#list fieldNames as fieldName>
|
||||
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/217 -->
|
||||
<#if xKeycloakify.pageId == "login.ftl" >
|
||||
|
||||
<#if fieldName == "username">
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === 'username' || fieldName === 'password' ){ ">
|
||||
|
||||
<#if messagesPerField.exists('username') || messagesPerField.exists('password')>
|
||||
<#local jsFunctionCode += "return kcContext.message && kcContext.message.summary ? kcContext.message.summary : 'error'; ">
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return ''; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if fieldName == "password">
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === '" + fieldName + "'){ ">
|
||||
|
||||
<#if messagesPerField.exists('${fieldName}')>
|
||||
<#local jsFunctionCode += 'return decodeHtmlEntities("' + messagesPerField.get('${fieldName}')?js_string + '"); '>
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return ''; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
</#list>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
<#return jsFunctionCode>
|
||||
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["messagesPerField", "existsError"])>
|
||||
|
||||
<#local jsFunctionCode = "function (fieldName) { ">
|
||||
|
||||
<#list fieldNames as fieldName>
|
||||
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/217 -->
|
||||
<#if xKeycloakify.pageId == "login.ftl" >
|
||||
<#if fieldName == "username">
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === 'username' || fieldName === 'password' ){ ">
|
||||
|
||||
<#if messagesPerField.existsError('username') || messagesPerField.existsError('password')>
|
||||
<#local jsFunctionCode += "return true; ">
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return false; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if fieldName == "password">
|
||||
<#continue>
|
||||
</#if>
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === '" + fieldName + "' ){ ">
|
||||
|
||||
<#if messagesPerField.existsError('${fieldName}')>
|
||||
<#local jsFunctionCode += 'return true; '>
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return false; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
</#list>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
<#return jsFunctionCode>
|
||||
|
||||
</#if>
|
||||
|
||||
<#if xKeycloakify.themeType == "account" && areSamePath(path, ["realm", "isInternationalizationEnabled"])>
|
||||
<#attempt>
|
||||
<#return realm.isInternationalizationEnabled()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate realm.isInternationalizationEnabled()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#return "ABORT: It's a method">
|
||||
</#if>
|
||||
|
||||
<#local isBoolean = -1>
|
||||
<#attempt>
|
||||
<#local isBoolean = object?is_boolean>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a boolean">
|
||||
</#attempt>
|
||||
|
||||
<#if isBoolean>
|
||||
<#return object?c>
|
||||
</#if>
|
||||
|
||||
<#local isEnumerable = -1>
|
||||
<#attempt>
|
||||
<#local isEnumerable = object?is_enumerable>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's an enumerable">
|
||||
</#attempt>
|
||||
|
||||
|
||||
<#if isEnumerable>
|
||||
|
||||
<#local outSeq = []>
|
||||
|
||||
<#local i = 0>
|
||||
|
||||
<#list object as array_item>
|
||||
|
||||
<#if !array_item??>
|
||||
<#local outSeq += ["null,"]>
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local recOut = toJsDeclarationString(array_item, path + [ i ])>
|
||||
|
||||
<#local i = i + 1>
|
||||
|
||||
<#if recOut?starts_with("ABORT:")>
|
||||
|
||||
<#local errorMessage = recOut?remove_beginning("ABORT:")>
|
||||
|
||||
<#if errorMessage != " It's a method" >
|
||||
<#local outSeq += ["/*" + i?string + ": " + errorMessage + "*/"]>
|
||||
</#if>
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local outSeq += [recOut + ","]>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return (["["] + outSeq?map(str -> ""?right_pad(4 * (path?size + 1)) + str) + [ ""?right_pad(4 * path?size) + "]"])?join("\n")>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local isDate = -1>
|
||||
<#attempt>
|
||||
<#local isDate = object?is_date_like>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a date">
|
||||
</#attempt>
|
||||
|
||||
<#if isDate>
|
||||
<#return '"' + object?datetime?iso_utc + '"'>
|
||||
</#if>
|
||||
|
||||
<#local isNumber = -1>
|
||||
<#attempt>
|
||||
<#local isNumber = object?is_number>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a number">
|
||||
</#attempt>
|
||||
|
||||
<#if isNumber>
|
||||
<#return object?c>
|
||||
</#if>
|
||||
|
||||
<#local isString = -1>
|
||||
<#attempt>
|
||||
<#local isString = object?is_string>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a string">
|
||||
</#attempt>
|
||||
|
||||
<#if isString>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str=object />
|
||||
</#if>
|
||||
|
||||
<#attempt>
|
||||
<#return '"' + object?js_string + '"'>;
|
||||
<#recover>
|
||||
</#attempt>
|
||||
|
||||
<#return "ABORT: Couldn't convert into string non hash, non method, non boolean, non number, non enumerable object">
|
||||
|
||||
</#function>
|
||||
<#function isSubpath path searchedPath>
|
||||
|
||||
<#if path?size < searchedPath?size>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#local i=0>
|
||||
|
||||
<#list path as property>
|
||||
|
||||
<#if i == searchedPath?size >
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local searchedProperty=searchedPath[i]>
|
||||
|
||||
<#local i+= 1>
|
||||
|
||||
<#if searchedProperty?is_string && searchedProperty == "*">
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?is_string && !property?is_string>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?is_number && !property?is_number>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?string != property?string>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return true>
|
||||
|
||||
</#function>
|
||||
|
||||
<#function areSamePath path searchedPath>
|
||||
<#return path?size == searchedPath?size && isSubpath(path, searchedPath)>
|
||||
</#function>
|
||||
|
||||
<#macro addToXKeycloakifyMessagesIfMessageKey str>
|
||||
<#if !msg?? || !msg?is_method>
|
||||
<#return>
|
||||
</#if>
|
||||
<#if (str?length > 200)>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local key=removeBrackets(str)>
|
||||
<#if key?length==0>
|
||||
<#return>
|
||||
</#if>
|
||||
<#if !(key?matches(r"^[a-zA-Z0-9-_.]*$"))>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local resolvedMsg=msg(key)>
|
||||
<#if resolvedMsg==key>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local messages=xKeycloakify.messages>
|
||||
<#local messages = messages + { key: resolvedMsg }>
|
||||
<#assign xKeycloakify = xKeycloakify + { "messages": messages }>
|
||||
</#macro>
|
||||
|
||||
<#function removeBrackets str>
|
||||
<#if str?starts_with("${") && str?ends_with("}")>
|
||||
<#return str[2..(str?length-2)]>
|
||||
<#else>
|
||||
<#return str>
|
||||
</#if>
|
||||
</#function>
|
||||
|
||||
<#macro addNonAutomaticallyGatherableMessagesToXKeycloakifyMessages>
|
||||
<#if profile?? && profile?is_hash && profile.attributes?? && profile.attributes?is_enumerable>
|
||||
<#list profile.attributes as attribute>
|
||||
<#if !(
|
||||
attribute.annotations?? && attribute.annotations?is_hash &&
|
||||
attribute.annotations.inputOptionLabelsI18nPrefix?? && attribute.annotations.inputOptionLabelsI18nPrefix?is_string
|
||||
)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#local prefix=attribute.annotations.inputOptionLabelsI18nPrefix>
|
||||
<#if !(
|
||||
attribute.validators?? && attribute.validators?is_hash &&
|
||||
attribute.validators.options?? && attribute.validators.options?is_hash &&
|
||||
attribute.validators.options.options?? && attribute.validators.options.options?is_enumerable
|
||||
)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#list attribute.validators.options.options as option>
|
||||
<#if !option?is_string>
|
||||
<#continue>
|
||||
</#if>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="${prefix}.${option}" />
|
||||
</#list>
|
||||
</#list>
|
||||
</#if>
|
||||
<#if xKeycloakify.pageId == "terms.ftl" || termsAcceptanceRequired?? && termsAcceptanceRequired>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="termsText" />
|
||||
</#if>
|
||||
<#if requiredActions?? && requiredActions?is_enumerable>
|
||||
<#list requiredActions as requiredAction>
|
||||
<#if !requiredAction?is_string>
|
||||
<#continue>
|
||||
</#if>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="requiredAction.${requiredAction}" />
|
||||
</#list>
|
||||
</#if>
|
||||
</#macro>
|
||||
|
||||
</script>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="${xKeycloakify.resourcesPath}/dist/favicon-32x32.png">
|
||||
<script type="module" crossorigin="" src="${xKeycloakify.resourcesPath}/dist/assets/index-6-NnS-wp.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="root"></div>
|
||||
|
||||
|
||||
</body></html>
|
@ -0,0 +1,739 @@
|
||||
<!DOCTYPE html><html><head><script>
|
||||
<#assign xKeycloakify={
|
||||
"messages": {},
|
||||
"pageId": "login-oauth-grant.ftl",
|
||||
"ftlTemplateFileName": "login-oauth-grant.ftl",
|
||||
"themeType": "login",
|
||||
"themeName": "keycloakify-starter",
|
||||
"keycloakifyVersion": "11.4.4",
|
||||
"themeVersion": "0.0.0",
|
||||
"resourcesPath": ""
|
||||
}>
|
||||
|
||||
<#if url?? && url?is_hash && url.resourcesPath?? && url.resourcesPath?is_string>
|
||||
<#assign xKeycloakify = xKeycloakify + { "resourcesPath": url.resourcesPath }>
|
||||
</#if>
|
||||
<#if resourceUrl?? && resourceUrl?is_string>
|
||||
<#assign xKeycloakify = xKeycloakify + { "resourcesPath": resourceUrl }>
|
||||
</#if>
|
||||
|
||||
const kcContext = ${toJsDeclarationString(.data_model, [])?no_esc};
|
||||
kcContext.keycloakifyVersion = "${xKeycloakify.keycloakifyVersion}";
|
||||
kcContext.themeVersion = "${xKeycloakify.themeVersion}";
|
||||
kcContext.themeType = "${xKeycloakify.themeType}";
|
||||
kcContext.themeName = "${xKeycloakify.themeName}";
|
||||
kcContext.pageId = "${xKeycloakify.pageId}";
|
||||
kcContext.ftlTemplateFileName = "${xKeycloakify.ftlTemplateFileName}";
|
||||
|
||||
<@addNonAutomaticallyGatherableMessagesToXKeycloakifyMessages />
|
||||
|
||||
kcContext["x-keycloakify"] = {};
|
||||
|
||||
kcContext["x-keycloakify"].resourcesPath = "${xKeycloakify.resourcesPath}";
|
||||
|
||||
{
|
||||
var messages = {};
|
||||
<#list xKeycloakify.messages as key, resolvedMsg>
|
||||
messages["${key}"] = decodeHtmlEntities("${resolvedMsg?js_string}");
|
||||
</#list>
|
||||
kcContext["x-keycloakify"].messages = messages;
|
||||
}
|
||||
|
||||
if(
|
||||
kcContext.url instanceof Object &&
|
||||
typeof kcContext.url.resourcesPath === "string"
|
||||
){
|
||||
kcContext.url.resourcesCommonPath = kcContext.url.resourcesPath + "/resources-common";
|
||||
}
|
||||
|
||||
if( kcContext.messagesPerField ){
|
||||
var existsError_singleFieldName = kcContext.messagesPerField.existsError;
|
||||
kcContext.messagesPerField.existsError = function (){
|
||||
for( let i = 0; i < arguments.length; i++ ){
|
||||
if( existsError_singleFieldName(arguments[i]) ){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
};
|
||||
kcContext.messagesPerField.exists = function (fieldName) {
|
||||
return kcContext.messagesPerField.get(fieldName) !== "";
|
||||
};
|
||||
kcContext.messagesPerField.printIfExists = function (fieldName, text) {
|
||||
return kcContext.messagesPerField.exists(fieldName) ? text : undefined;
|
||||
};
|
||||
kcContext.messagesPerField.getFirstError = function () {
|
||||
for( let i = 0; i < arguments.length; i++ ){
|
||||
const fieldName = arguments[i];
|
||||
if( kcContext.messagesPerField.existsError(fieldName) ){
|
||||
return kcContext.messagesPerField.get(fieldName);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
attributes_to_attributesByName: {
|
||||
if( !kcContext.profile ){
|
||||
break attributes_to_attributesByName;
|
||||
}
|
||||
if( !kcContext.profile.attributes ){
|
||||
break attributes_to_attributesByName;
|
||||
}
|
||||
var attributes = kcContext.profile.attributes;
|
||||
delete kcContext.profile.attributes;
|
||||
kcContext.profile.attributesByName = {};
|
||||
attributes.forEach(function(attribute){
|
||||
kcContext.profile.attributesByName[attribute.name] = attribute;
|
||||
});
|
||||
}
|
||||
|
||||
redirect_to_dev_server: {
|
||||
|
||||
switch(kcContext.themeType){
|
||||
case "login":
|
||||
break redirect_to_dev_server;
|
||||
case "account":
|
||||
if( kcContext.pageId !== "index.ftl" ){
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
break;
|
||||
case "admin":
|
||||
break;
|
||||
default:
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
|
||||
const devSeverPort = kcContext.properties.KEYCLOAKIFY_SPA_DEV_SERVER_PORT;
|
||||
|
||||
if( !devSeverPort ){
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
|
||||
const redirectUrl = new URL(window.location.href);
|
||||
|
||||
redirectUrl.port = devSeverPort;
|
||||
|
||||
delete kcContext.msgJSON;
|
||||
|
||||
console.log(kcContext);
|
||||
|
||||
redirectUrl.searchParams.set("kcContext", encodeURIComponent(JSON.stringify(kcContext)));
|
||||
|
||||
window.location.href = redirectUrl.toString();
|
||||
|
||||
}
|
||||
|
||||
|
||||
window.kcContext = kcContext;
|
||||
|
||||
|
||||
<#if xKeycloakify.themeType == "login" >
|
||||
{
|
||||
const script = document.createElement("script");
|
||||
script.type = "importmap";
|
||||
script.textContent = JSON.stringify({
|
||||
imports: {
|
||||
"rfc4648": kcContext.url.resourcesCommonPath + "/node_modules/rfc4648/lib/rfc4648.js"
|
||||
}
|
||||
}, null, 2);
|
||||
|
||||
document.head.appendChild(script);
|
||||
}
|
||||
</#if>
|
||||
|
||||
function decodeHtmlEntities(htmlStr){
|
||||
var element = decodeHtmlEntities.element;
|
||||
if (!element) {
|
||||
element = document.createElement("textarea");
|
||||
decodeHtmlEntities.element = element;
|
||||
}
|
||||
element.innerHTML = htmlStr;
|
||||
return element.value;
|
||||
}
|
||||
|
||||
<#function toJsDeclarationString object path>
|
||||
<#local isHash = -1>
|
||||
<#attempt>
|
||||
<#local isHash = object?is_hash || object?is_hash_ex>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't evaluate if " + path?join(".") + " is a hash">
|
||||
</#attempt>
|
||||
|
||||
<#if isHash>
|
||||
<#if path?size gt 10>
|
||||
<#return "ABORT: Too many recursive calls, path: " + path?join(".")>
|
||||
</#if>
|
||||
<#local keys = -1>
|
||||
|
||||
<#attempt>
|
||||
<#local keys = object?keys>
|
||||
<#recover>
|
||||
<#return "ABORT: We can't list keys on object">
|
||||
</#attempt>
|
||||
|
||||
<#local outSeq = []>
|
||||
|
||||
<#list keys as key>
|
||||
<#if ["class","declaredConstructors","superclass","declaringClass" ]?seq_contains(key) >
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if (
|
||||
areSamePath(path, ["url"]) &&
|
||||
["loginUpdatePasswordUrl", "loginUpdateProfileUrl", "loginUsernameReminderUrl", "loginUpdateTotpUrl"]?seq_contains(key)
|
||||
) || (
|
||||
key == "updateProfileCtx" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
<#-- https://github.com/keycloakify/keycloakify/pull/65#issuecomment-991896344 (reports with saml-post-form.ftl) -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/91#issue-1212319466 (reports with error.ftl and Kc18) -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/109#issuecomment-1134610163 -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/357 -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/discussions/406#discussioncomment-7514787 -->
|
||||
key == "loginAction" &&
|
||||
areSamePath(path, ["url"]) &&
|
||||
["saml-post-form.ftl", "error.ftl", "info.ftl", "login-oauth-grant.ftl", "logout-confirm.ftl", "login-oauth2-device-verify-user-code.ftl"]?seq_contains(xKeycloakify.pageId) &&
|
||||
!(auth?has_content && auth.showTryAnotherWayLink())
|
||||
) || (
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/362 -->
|
||||
["secretData", "value"]?seq_contains(key) &&
|
||||
areSamePath(path, [ "totp", "otpCredentials", "*" ])
|
||||
) || (
|
||||
["contextData", "idpConfig", "idp", "authenticationSession"]?seq_contains(key) &&
|
||||
areSamePath(path, ["brokerContext"]) &&
|
||||
["login-idp-link-confirm.ftl", "login-idp-link-email.ftl" ]?seq_contains(xKeycloakify.pageId)
|
||||
) || (
|
||||
key == "identityProviderBrokerCtx" &&
|
||||
areSamePath(path, []) &&
|
||||
["login-idp-link-confirm.ftl", "login-idp-link-email.ftl" ]?seq_contains(xKeycloakify.pageId)
|
||||
) || (
|
||||
["masterAdminClient", "delegateForUpdate", "defaultRole", "smtpConfig"]?seq_contains(key) &&
|
||||
areSamePath(path, ["realm"])
|
||||
) || (
|
||||
xKeycloakify.pageId == "error.ftl" &&
|
||||
areSamePath(path, ["realm"]) &&
|
||||
!["name", "displayName", "displayNameHtml", "internationalizationEnabled", "registrationEmailAsUsername" ]?seq_contains(key)
|
||||
) || (
|
||||
xKeycloakify.pageId == "applications.ftl" &&
|
||||
(
|
||||
key == "realm" ||
|
||||
key == "container"
|
||||
) &&
|
||||
isSubpath(path, ["applications", "applications"])
|
||||
) || (
|
||||
key == "delegateForUpdate" &&
|
||||
areSamePath(path, ["user"])
|
||||
) || (
|
||||
<#-- Security audit forwarded by Garth (Gmail) -->
|
||||
key == "saml.signing.private.key" &&
|
||||
areSamePath(path, ["client", "attributes"])
|
||||
) || (
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/534 -->
|
||||
key == "password" &&
|
||||
areSamePath(path, ["login"])
|
||||
) || (
|
||||
<#-- Remove realmAttributes added by https://github.com/jcputney/keycloak-theme-additional-info-extension for peace of mind. -->
|
||||
key == "realmAttributes" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
<#-- attributesByName adds a lot of noise to the output and is not needed, we already have profile.attributes -->
|
||||
key == "attributesByName" &&
|
||||
areSamePath(path, ["profile"])
|
||||
) || (
|
||||
<#-- We already have the attributes in profile speedup the rendering by filtering it out from the register object -->
|
||||
(key == "attributes" || key == "attributesByName") &&
|
||||
areSamePath(path, ["register"])
|
||||
) || (
|
||||
areSamePath(path, ["properties"]) &&
|
||||
(
|
||||
key?starts_with("kc") ||
|
||||
key == "locales" ||
|
||||
key == "import" ||
|
||||
key == "parent" ||
|
||||
key == "meta" ||
|
||||
key == "stylesCommon" ||
|
||||
key == "styles" ||
|
||||
key == "accountResourceProvider"
|
||||
)
|
||||
) || (
|
||||
key == "execution" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
key == "entity" &&
|
||||
areSamePath(path, ["user"])
|
||||
) || (
|
||||
key == "attributes" &&
|
||||
areSamePath(path, ["realm"])
|
||||
) || (
|
||||
xKeycloakify.pageId == "index.ftl" &&
|
||||
xKeycloakify.themeType == "account" &&
|
||||
areSamePath(path, ["realm"]) &&
|
||||
![
|
||||
"name",
|
||||
"registrationEmailAsUsername",
|
||||
"editUsernameAllowed",
|
||||
"isInternationalizationEnabled",
|
||||
"identityFederationEnabled",
|
||||
"userManagedAccessAllowed"
|
||||
]?seq_contains(key)
|
||||
) || (
|
||||
["flowContext", "session", "realm"]?seq_contains(key) &&
|
||||
areSamePath(path, ["social"])
|
||||
)
|
||||
>
|
||||
<#-- <#local outSeq += ["/*" + path?join(".") + "." + key + " excluded*/"]> -->
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#-- https://github.com/keycloakify/keycloakify/discussions/406 -->
|
||||
<#if (
|
||||
key == "attemptedUsername" &&
|
||||
areSamePath(path, ["auth"]) &&
|
||||
[
|
||||
"register.ftl", "terms.ftl", "info.ftl", "login.ftl",
|
||||
"login-update-password.ftl", "login-oauth2-device-verify-user-code.ftl"
|
||||
]?seq_contains(xKeycloakify.pageId)
|
||||
)>
|
||||
<#attempt>
|
||||
<#-- https://github.com/keycloak/keycloak/blob/3a2bf0c04bcde185e497aaa32d0bb7ab7520cf4a/themes/src/main/resources/theme/base/login/template.ftl#L63 -->
|
||||
<#if !(auth?has_content && auth.showUsername() && !auth.showResetCredentials())>
|
||||
<#local outSeq += ["/*" + path?join(".") + "." + key + " excluded*/"]>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Accessing attemptedUsername throwed an exception */"]>
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
|
||||
|
||||
<#attempt>
|
||||
<#if !object[key]??>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Couldn't test if '" + key + "' is available on this object*/"]>
|
||||
<#continue>
|
||||
</#attempt>
|
||||
|
||||
<#local propertyValue = -1>
|
||||
|
||||
<#attempt>
|
||||
<#local propertyValue = object[key]>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Couldn't dereference '" + key + "' on this object*/"]>
|
||||
<#continue>
|
||||
</#attempt>
|
||||
|
||||
<#local recOut = toJsDeclarationString(propertyValue, path + [ key ])>
|
||||
|
||||
<#if recOut?starts_with("ABORT:")>
|
||||
|
||||
<#local errorMessage = recOut?remove_beginning("ABORT:")>
|
||||
|
||||
<#if errorMessage != " It's a method" >
|
||||
<#local outSeq += ["/*" + key + ": " + errorMessage + "*/"]>
|
||||
</#if>
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local outSeq += ['"' + key + '": ' + recOut + ","]>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return (["{"] + outSeq?map(str -> ""?right_pad(4 * (path?size + 1)) + str) + [ ""?right_pad(4 * path?size) + "}"])?join("\n")>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local isMethod = -1>
|
||||
<#attempt>
|
||||
<#local isMethod = object?is_method>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it'sa method.">
|
||||
</#attempt>
|
||||
|
||||
<#if isMethod>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showUsername"])>
|
||||
<#attempt>
|
||||
<#return auth.showUsername()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showUsername()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showResetCredentials"])>
|
||||
<#attempt>
|
||||
<#return auth.showResetCredentials()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showResetCredentials()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showTryAnotherWayLink"])>
|
||||
<#attempt>
|
||||
<#return auth.showTryAnotherWayLink()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showTryAnotherWayLink()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["url", "getLogoutUrl"])>
|
||||
<#local returnValue = -1>
|
||||
<#attempt>
|
||||
<#local returnValue = url.getLogoutUrl()>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate url.getLogoutUrl()">
|
||||
</#attempt>
|
||||
<#return 'function(){ return "' + returnValue + '"; }'>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["totp", "policy", "getAlgorithmKey"])>
|
||||
<#local returnValue = "error">
|
||||
<#if mode?? && mode = "manual">
|
||||
<#attempt>
|
||||
<#local returnValue = totp.policy.getAlgorithmKey()>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate totp.policy.getAlgorithmKey()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
<#return 'function(){ return "' + returnValue + '"; }'>
|
||||
</#if>
|
||||
|
||||
<#assign fieldNames = ["firstName", "lastName", "email", "username", "password", "password-confirm", "global", "totp", "userLabel", "recoveryCodeInput", "termsAccepted"]>
|
||||
<#if profile?? && profile.attributes??>
|
||||
<#list profile.attributes as attribute>
|
||||
<#if fieldNames?seq_contains(attribute.name)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#assign fieldNames += [attribute.name]>
|
||||
</#list>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["messagesPerField", "get"])>
|
||||
|
||||
<#local jsFunctionCode = "function (fieldName) { ">
|
||||
|
||||
<#list fieldNames as fieldName>
|
||||
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/217 -->
|
||||
<#if xKeycloakify.pageId == "login.ftl" >
|
||||
|
||||
<#if fieldName == "username">
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === 'username' || fieldName === 'password' ){ ">
|
||||
|
||||
<#if messagesPerField.exists('username') || messagesPerField.exists('password')>
|
||||
<#local jsFunctionCode += "return kcContext.message && kcContext.message.summary ? kcContext.message.summary : 'error'; ">
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return ''; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if fieldName == "password">
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === '" + fieldName + "'){ ">
|
||||
|
||||
<#if messagesPerField.exists('${fieldName}')>
|
||||
<#local jsFunctionCode += 'return decodeHtmlEntities("' + messagesPerField.get('${fieldName}')?js_string + '"); '>
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return ''; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
</#list>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
<#return jsFunctionCode>
|
||||
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["messagesPerField", "existsError"])>
|
||||
|
||||
<#local jsFunctionCode = "function (fieldName) { ">
|
||||
|
||||
<#list fieldNames as fieldName>
|
||||
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/217 -->
|
||||
<#if xKeycloakify.pageId == "login.ftl" >
|
||||
<#if fieldName == "username">
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === 'username' || fieldName === 'password' ){ ">
|
||||
|
||||
<#if messagesPerField.existsError('username') || messagesPerField.existsError('password')>
|
||||
<#local jsFunctionCode += "return true; ">
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return false; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if fieldName == "password">
|
||||
<#continue>
|
||||
</#if>
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === '" + fieldName + "' ){ ">
|
||||
|
||||
<#if messagesPerField.existsError('${fieldName}')>
|
||||
<#local jsFunctionCode += 'return true; '>
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return false; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
</#list>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
<#return jsFunctionCode>
|
||||
|
||||
</#if>
|
||||
|
||||
<#if xKeycloakify.themeType == "account" && areSamePath(path, ["realm", "isInternationalizationEnabled"])>
|
||||
<#attempt>
|
||||
<#return realm.isInternationalizationEnabled()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate realm.isInternationalizationEnabled()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#return "ABORT: It's a method">
|
||||
</#if>
|
||||
|
||||
<#local isBoolean = -1>
|
||||
<#attempt>
|
||||
<#local isBoolean = object?is_boolean>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a boolean">
|
||||
</#attempt>
|
||||
|
||||
<#if isBoolean>
|
||||
<#return object?c>
|
||||
</#if>
|
||||
|
||||
<#local isEnumerable = -1>
|
||||
<#attempt>
|
||||
<#local isEnumerable = object?is_enumerable>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's an enumerable">
|
||||
</#attempt>
|
||||
|
||||
|
||||
<#if isEnumerable>
|
||||
|
||||
<#local outSeq = []>
|
||||
|
||||
<#local i = 0>
|
||||
|
||||
<#list object as array_item>
|
||||
|
||||
<#if !array_item??>
|
||||
<#local outSeq += ["null,"]>
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local recOut = toJsDeclarationString(array_item, path + [ i ])>
|
||||
|
||||
<#local i = i + 1>
|
||||
|
||||
<#if recOut?starts_with("ABORT:")>
|
||||
|
||||
<#local errorMessage = recOut?remove_beginning("ABORT:")>
|
||||
|
||||
<#if errorMessage != " It's a method" >
|
||||
<#local outSeq += ["/*" + i?string + ": " + errorMessage + "*/"]>
|
||||
</#if>
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local outSeq += [recOut + ","]>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return (["["] + outSeq?map(str -> ""?right_pad(4 * (path?size + 1)) + str) + [ ""?right_pad(4 * path?size) + "]"])?join("\n")>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local isDate = -1>
|
||||
<#attempt>
|
||||
<#local isDate = object?is_date_like>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a date">
|
||||
</#attempt>
|
||||
|
||||
<#if isDate>
|
||||
<#return '"' + object?datetime?iso_utc + '"'>
|
||||
</#if>
|
||||
|
||||
<#local isNumber = -1>
|
||||
<#attempt>
|
||||
<#local isNumber = object?is_number>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a number">
|
||||
</#attempt>
|
||||
|
||||
<#if isNumber>
|
||||
<#return object?c>
|
||||
</#if>
|
||||
|
||||
<#local isString = -1>
|
||||
<#attempt>
|
||||
<#local isString = object?is_string>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a string">
|
||||
</#attempt>
|
||||
|
||||
<#if isString>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str=object />
|
||||
</#if>
|
||||
|
||||
<#attempt>
|
||||
<#return '"' + object?js_string + '"'>;
|
||||
<#recover>
|
||||
</#attempt>
|
||||
|
||||
<#return "ABORT: Couldn't convert into string non hash, non method, non boolean, non number, non enumerable object">
|
||||
|
||||
</#function>
|
||||
<#function isSubpath path searchedPath>
|
||||
|
||||
<#if path?size < searchedPath?size>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#local i=0>
|
||||
|
||||
<#list path as property>
|
||||
|
||||
<#if i == searchedPath?size >
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local searchedProperty=searchedPath[i]>
|
||||
|
||||
<#local i+= 1>
|
||||
|
||||
<#if searchedProperty?is_string && searchedProperty == "*">
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?is_string && !property?is_string>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?is_number && !property?is_number>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?string != property?string>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return true>
|
||||
|
||||
</#function>
|
||||
|
||||
<#function areSamePath path searchedPath>
|
||||
<#return path?size == searchedPath?size && isSubpath(path, searchedPath)>
|
||||
</#function>
|
||||
|
||||
<#macro addToXKeycloakifyMessagesIfMessageKey str>
|
||||
<#if !msg?? || !msg?is_method>
|
||||
<#return>
|
||||
</#if>
|
||||
<#if (str?length > 200)>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local key=removeBrackets(str)>
|
||||
<#if key?length==0>
|
||||
<#return>
|
||||
</#if>
|
||||
<#if !(key?matches(r"^[a-zA-Z0-9-_.]*$"))>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local resolvedMsg=msg(key)>
|
||||
<#if resolvedMsg==key>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local messages=xKeycloakify.messages>
|
||||
<#local messages = messages + { key: resolvedMsg }>
|
||||
<#assign xKeycloakify = xKeycloakify + { "messages": messages }>
|
||||
</#macro>
|
||||
|
||||
<#function removeBrackets str>
|
||||
<#if str?starts_with("${") && str?ends_with("}")>
|
||||
<#return str[2..(str?length-2)]>
|
||||
<#else>
|
||||
<#return str>
|
||||
</#if>
|
||||
</#function>
|
||||
|
||||
<#macro addNonAutomaticallyGatherableMessagesToXKeycloakifyMessages>
|
||||
<#if profile?? && profile?is_hash && profile.attributes?? && profile.attributes?is_enumerable>
|
||||
<#list profile.attributes as attribute>
|
||||
<#if !(
|
||||
attribute.annotations?? && attribute.annotations?is_hash &&
|
||||
attribute.annotations.inputOptionLabelsI18nPrefix?? && attribute.annotations.inputOptionLabelsI18nPrefix?is_string
|
||||
)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#local prefix=attribute.annotations.inputOptionLabelsI18nPrefix>
|
||||
<#if !(
|
||||
attribute.validators?? && attribute.validators?is_hash &&
|
||||
attribute.validators.options?? && attribute.validators.options?is_hash &&
|
||||
attribute.validators.options.options?? && attribute.validators.options.options?is_enumerable
|
||||
)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#list attribute.validators.options.options as option>
|
||||
<#if !option?is_string>
|
||||
<#continue>
|
||||
</#if>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="${prefix}.${option}" />
|
||||
</#list>
|
||||
</#list>
|
||||
</#if>
|
||||
<#if xKeycloakify.pageId == "terms.ftl" || termsAcceptanceRequired?? && termsAcceptanceRequired>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="termsText" />
|
||||
</#if>
|
||||
<#if requiredActions?? && requiredActions?is_enumerable>
|
||||
<#list requiredActions as requiredAction>
|
||||
<#if !requiredAction?is_string>
|
||||
<#continue>
|
||||
</#if>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="requiredAction.${requiredAction}" />
|
||||
</#list>
|
||||
</#if>
|
||||
</#macro>
|
||||
|
||||
</script>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="${xKeycloakify.resourcesPath}/dist/favicon-32x32.png">
|
||||
<script type="module" crossorigin="" src="${xKeycloakify.resourcesPath}/dist/assets/index-6-NnS-wp.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="root"></div>
|
||||
|
||||
|
||||
</body></html>
|
@ -0,0 +1,739 @@
|
||||
<!DOCTYPE html><html><head><script>
|
||||
<#assign xKeycloakify={
|
||||
"messages": {},
|
||||
"pageId": "login-oauth2-device-verify-user-code.ftl",
|
||||
"ftlTemplateFileName": "login-oauth2-device-verify-user-code.ftl",
|
||||
"themeType": "login",
|
||||
"themeName": "keycloakify-starter",
|
||||
"keycloakifyVersion": "11.4.4",
|
||||
"themeVersion": "0.0.0",
|
||||
"resourcesPath": ""
|
||||
}>
|
||||
|
||||
<#if url?? && url?is_hash && url.resourcesPath?? && url.resourcesPath?is_string>
|
||||
<#assign xKeycloakify = xKeycloakify + { "resourcesPath": url.resourcesPath }>
|
||||
</#if>
|
||||
<#if resourceUrl?? && resourceUrl?is_string>
|
||||
<#assign xKeycloakify = xKeycloakify + { "resourcesPath": resourceUrl }>
|
||||
</#if>
|
||||
|
||||
const kcContext = ${toJsDeclarationString(.data_model, [])?no_esc};
|
||||
kcContext.keycloakifyVersion = "${xKeycloakify.keycloakifyVersion}";
|
||||
kcContext.themeVersion = "${xKeycloakify.themeVersion}";
|
||||
kcContext.themeType = "${xKeycloakify.themeType}";
|
||||
kcContext.themeName = "${xKeycloakify.themeName}";
|
||||
kcContext.pageId = "${xKeycloakify.pageId}";
|
||||
kcContext.ftlTemplateFileName = "${xKeycloakify.ftlTemplateFileName}";
|
||||
|
||||
<@addNonAutomaticallyGatherableMessagesToXKeycloakifyMessages />
|
||||
|
||||
kcContext["x-keycloakify"] = {};
|
||||
|
||||
kcContext["x-keycloakify"].resourcesPath = "${xKeycloakify.resourcesPath}";
|
||||
|
||||
{
|
||||
var messages = {};
|
||||
<#list xKeycloakify.messages as key, resolvedMsg>
|
||||
messages["${key}"] = decodeHtmlEntities("${resolvedMsg?js_string}");
|
||||
</#list>
|
||||
kcContext["x-keycloakify"].messages = messages;
|
||||
}
|
||||
|
||||
if(
|
||||
kcContext.url instanceof Object &&
|
||||
typeof kcContext.url.resourcesPath === "string"
|
||||
){
|
||||
kcContext.url.resourcesCommonPath = kcContext.url.resourcesPath + "/resources-common";
|
||||
}
|
||||
|
||||
if( kcContext.messagesPerField ){
|
||||
var existsError_singleFieldName = kcContext.messagesPerField.existsError;
|
||||
kcContext.messagesPerField.existsError = function (){
|
||||
for( let i = 0; i < arguments.length; i++ ){
|
||||
if( existsError_singleFieldName(arguments[i]) ){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
};
|
||||
kcContext.messagesPerField.exists = function (fieldName) {
|
||||
return kcContext.messagesPerField.get(fieldName) !== "";
|
||||
};
|
||||
kcContext.messagesPerField.printIfExists = function (fieldName, text) {
|
||||
return kcContext.messagesPerField.exists(fieldName) ? text : undefined;
|
||||
};
|
||||
kcContext.messagesPerField.getFirstError = function () {
|
||||
for( let i = 0; i < arguments.length; i++ ){
|
||||
const fieldName = arguments[i];
|
||||
if( kcContext.messagesPerField.existsError(fieldName) ){
|
||||
return kcContext.messagesPerField.get(fieldName);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
attributes_to_attributesByName: {
|
||||
if( !kcContext.profile ){
|
||||
break attributes_to_attributesByName;
|
||||
}
|
||||
if( !kcContext.profile.attributes ){
|
||||
break attributes_to_attributesByName;
|
||||
}
|
||||
var attributes = kcContext.profile.attributes;
|
||||
delete kcContext.profile.attributes;
|
||||
kcContext.profile.attributesByName = {};
|
||||
attributes.forEach(function(attribute){
|
||||
kcContext.profile.attributesByName[attribute.name] = attribute;
|
||||
});
|
||||
}
|
||||
|
||||
redirect_to_dev_server: {
|
||||
|
||||
switch(kcContext.themeType){
|
||||
case "login":
|
||||
break redirect_to_dev_server;
|
||||
case "account":
|
||||
if( kcContext.pageId !== "index.ftl" ){
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
break;
|
||||
case "admin":
|
||||
break;
|
||||
default:
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
|
||||
const devSeverPort = kcContext.properties.KEYCLOAKIFY_SPA_DEV_SERVER_PORT;
|
||||
|
||||
if( !devSeverPort ){
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
|
||||
const redirectUrl = new URL(window.location.href);
|
||||
|
||||
redirectUrl.port = devSeverPort;
|
||||
|
||||
delete kcContext.msgJSON;
|
||||
|
||||
console.log(kcContext);
|
||||
|
||||
redirectUrl.searchParams.set("kcContext", encodeURIComponent(JSON.stringify(kcContext)));
|
||||
|
||||
window.location.href = redirectUrl.toString();
|
||||
|
||||
}
|
||||
|
||||
|
||||
window.kcContext = kcContext;
|
||||
|
||||
|
||||
<#if xKeycloakify.themeType == "login" >
|
||||
{
|
||||
const script = document.createElement("script");
|
||||
script.type = "importmap";
|
||||
script.textContent = JSON.stringify({
|
||||
imports: {
|
||||
"rfc4648": kcContext.url.resourcesCommonPath + "/node_modules/rfc4648/lib/rfc4648.js"
|
||||
}
|
||||
}, null, 2);
|
||||
|
||||
document.head.appendChild(script);
|
||||
}
|
||||
</#if>
|
||||
|
||||
function decodeHtmlEntities(htmlStr){
|
||||
var element = decodeHtmlEntities.element;
|
||||
if (!element) {
|
||||
element = document.createElement("textarea");
|
||||
decodeHtmlEntities.element = element;
|
||||
}
|
||||
element.innerHTML = htmlStr;
|
||||
return element.value;
|
||||
}
|
||||
|
||||
<#function toJsDeclarationString object path>
|
||||
<#local isHash = -1>
|
||||
<#attempt>
|
||||
<#local isHash = object?is_hash || object?is_hash_ex>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't evaluate if " + path?join(".") + " is a hash">
|
||||
</#attempt>
|
||||
|
||||
<#if isHash>
|
||||
<#if path?size gt 10>
|
||||
<#return "ABORT: Too many recursive calls, path: " + path?join(".")>
|
||||
</#if>
|
||||
<#local keys = -1>
|
||||
|
||||
<#attempt>
|
||||
<#local keys = object?keys>
|
||||
<#recover>
|
||||
<#return "ABORT: We can't list keys on object">
|
||||
</#attempt>
|
||||
|
||||
<#local outSeq = []>
|
||||
|
||||
<#list keys as key>
|
||||
<#if ["class","declaredConstructors","superclass","declaringClass" ]?seq_contains(key) >
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if (
|
||||
areSamePath(path, ["url"]) &&
|
||||
["loginUpdatePasswordUrl", "loginUpdateProfileUrl", "loginUsernameReminderUrl", "loginUpdateTotpUrl"]?seq_contains(key)
|
||||
) || (
|
||||
key == "updateProfileCtx" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
<#-- https://github.com/keycloakify/keycloakify/pull/65#issuecomment-991896344 (reports with saml-post-form.ftl) -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/91#issue-1212319466 (reports with error.ftl and Kc18) -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/109#issuecomment-1134610163 -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/357 -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/discussions/406#discussioncomment-7514787 -->
|
||||
key == "loginAction" &&
|
||||
areSamePath(path, ["url"]) &&
|
||||
["saml-post-form.ftl", "error.ftl", "info.ftl", "login-oauth-grant.ftl", "logout-confirm.ftl", "login-oauth2-device-verify-user-code.ftl"]?seq_contains(xKeycloakify.pageId) &&
|
||||
!(auth?has_content && auth.showTryAnotherWayLink())
|
||||
) || (
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/362 -->
|
||||
["secretData", "value"]?seq_contains(key) &&
|
||||
areSamePath(path, [ "totp", "otpCredentials", "*" ])
|
||||
) || (
|
||||
["contextData", "idpConfig", "idp", "authenticationSession"]?seq_contains(key) &&
|
||||
areSamePath(path, ["brokerContext"]) &&
|
||||
["login-idp-link-confirm.ftl", "login-idp-link-email.ftl" ]?seq_contains(xKeycloakify.pageId)
|
||||
) || (
|
||||
key == "identityProviderBrokerCtx" &&
|
||||
areSamePath(path, []) &&
|
||||
["login-idp-link-confirm.ftl", "login-idp-link-email.ftl" ]?seq_contains(xKeycloakify.pageId)
|
||||
) || (
|
||||
["masterAdminClient", "delegateForUpdate", "defaultRole", "smtpConfig"]?seq_contains(key) &&
|
||||
areSamePath(path, ["realm"])
|
||||
) || (
|
||||
xKeycloakify.pageId == "error.ftl" &&
|
||||
areSamePath(path, ["realm"]) &&
|
||||
!["name", "displayName", "displayNameHtml", "internationalizationEnabled", "registrationEmailAsUsername" ]?seq_contains(key)
|
||||
) || (
|
||||
xKeycloakify.pageId == "applications.ftl" &&
|
||||
(
|
||||
key == "realm" ||
|
||||
key == "container"
|
||||
) &&
|
||||
isSubpath(path, ["applications", "applications"])
|
||||
) || (
|
||||
key == "delegateForUpdate" &&
|
||||
areSamePath(path, ["user"])
|
||||
) || (
|
||||
<#-- Security audit forwarded by Garth (Gmail) -->
|
||||
key == "saml.signing.private.key" &&
|
||||
areSamePath(path, ["client", "attributes"])
|
||||
) || (
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/534 -->
|
||||
key == "password" &&
|
||||
areSamePath(path, ["login"])
|
||||
) || (
|
||||
<#-- Remove realmAttributes added by https://github.com/jcputney/keycloak-theme-additional-info-extension for peace of mind. -->
|
||||
key == "realmAttributes" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
<#-- attributesByName adds a lot of noise to the output and is not needed, we already have profile.attributes -->
|
||||
key == "attributesByName" &&
|
||||
areSamePath(path, ["profile"])
|
||||
) || (
|
||||
<#-- We already have the attributes in profile speedup the rendering by filtering it out from the register object -->
|
||||
(key == "attributes" || key == "attributesByName") &&
|
||||
areSamePath(path, ["register"])
|
||||
) || (
|
||||
areSamePath(path, ["properties"]) &&
|
||||
(
|
||||
key?starts_with("kc") ||
|
||||
key == "locales" ||
|
||||
key == "import" ||
|
||||
key == "parent" ||
|
||||
key == "meta" ||
|
||||
key == "stylesCommon" ||
|
||||
key == "styles" ||
|
||||
key == "accountResourceProvider"
|
||||
)
|
||||
) || (
|
||||
key == "execution" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
key == "entity" &&
|
||||
areSamePath(path, ["user"])
|
||||
) || (
|
||||
key == "attributes" &&
|
||||
areSamePath(path, ["realm"])
|
||||
) || (
|
||||
xKeycloakify.pageId == "index.ftl" &&
|
||||
xKeycloakify.themeType == "account" &&
|
||||
areSamePath(path, ["realm"]) &&
|
||||
![
|
||||
"name",
|
||||
"registrationEmailAsUsername",
|
||||
"editUsernameAllowed",
|
||||
"isInternationalizationEnabled",
|
||||
"identityFederationEnabled",
|
||||
"userManagedAccessAllowed"
|
||||
]?seq_contains(key)
|
||||
) || (
|
||||
["flowContext", "session", "realm"]?seq_contains(key) &&
|
||||
areSamePath(path, ["social"])
|
||||
)
|
||||
>
|
||||
<#-- <#local outSeq += ["/*" + path?join(".") + "." + key + " excluded*/"]> -->
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#-- https://github.com/keycloakify/keycloakify/discussions/406 -->
|
||||
<#if (
|
||||
key == "attemptedUsername" &&
|
||||
areSamePath(path, ["auth"]) &&
|
||||
[
|
||||
"register.ftl", "terms.ftl", "info.ftl", "login.ftl",
|
||||
"login-update-password.ftl", "login-oauth2-device-verify-user-code.ftl"
|
||||
]?seq_contains(xKeycloakify.pageId)
|
||||
)>
|
||||
<#attempt>
|
||||
<#-- https://github.com/keycloak/keycloak/blob/3a2bf0c04bcde185e497aaa32d0bb7ab7520cf4a/themes/src/main/resources/theme/base/login/template.ftl#L63 -->
|
||||
<#if !(auth?has_content && auth.showUsername() && !auth.showResetCredentials())>
|
||||
<#local outSeq += ["/*" + path?join(".") + "." + key + " excluded*/"]>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Accessing attemptedUsername throwed an exception */"]>
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
|
||||
|
||||
<#attempt>
|
||||
<#if !object[key]??>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Couldn't test if '" + key + "' is available on this object*/"]>
|
||||
<#continue>
|
||||
</#attempt>
|
||||
|
||||
<#local propertyValue = -1>
|
||||
|
||||
<#attempt>
|
||||
<#local propertyValue = object[key]>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Couldn't dereference '" + key + "' on this object*/"]>
|
||||
<#continue>
|
||||
</#attempt>
|
||||
|
||||
<#local recOut = toJsDeclarationString(propertyValue, path + [ key ])>
|
||||
|
||||
<#if recOut?starts_with("ABORT:")>
|
||||
|
||||
<#local errorMessage = recOut?remove_beginning("ABORT:")>
|
||||
|
||||
<#if errorMessage != " It's a method" >
|
||||
<#local outSeq += ["/*" + key + ": " + errorMessage + "*/"]>
|
||||
</#if>
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local outSeq += ['"' + key + '": ' + recOut + ","]>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return (["{"] + outSeq?map(str -> ""?right_pad(4 * (path?size + 1)) + str) + [ ""?right_pad(4 * path?size) + "}"])?join("\n")>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local isMethod = -1>
|
||||
<#attempt>
|
||||
<#local isMethod = object?is_method>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it'sa method.">
|
||||
</#attempt>
|
||||
|
||||
<#if isMethod>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showUsername"])>
|
||||
<#attempt>
|
||||
<#return auth.showUsername()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showUsername()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showResetCredentials"])>
|
||||
<#attempt>
|
||||
<#return auth.showResetCredentials()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showResetCredentials()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showTryAnotherWayLink"])>
|
||||
<#attempt>
|
||||
<#return auth.showTryAnotherWayLink()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showTryAnotherWayLink()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["url", "getLogoutUrl"])>
|
||||
<#local returnValue = -1>
|
||||
<#attempt>
|
||||
<#local returnValue = url.getLogoutUrl()>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate url.getLogoutUrl()">
|
||||
</#attempt>
|
||||
<#return 'function(){ return "' + returnValue + '"; }'>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["totp", "policy", "getAlgorithmKey"])>
|
||||
<#local returnValue = "error">
|
||||
<#if mode?? && mode = "manual">
|
||||
<#attempt>
|
||||
<#local returnValue = totp.policy.getAlgorithmKey()>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate totp.policy.getAlgorithmKey()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
<#return 'function(){ return "' + returnValue + '"; }'>
|
||||
</#if>
|
||||
|
||||
<#assign fieldNames = ["firstName", "lastName", "email", "username", "password", "password-confirm", "global", "totp", "userLabel", "recoveryCodeInput", "termsAccepted"]>
|
||||
<#if profile?? && profile.attributes??>
|
||||
<#list profile.attributes as attribute>
|
||||
<#if fieldNames?seq_contains(attribute.name)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#assign fieldNames += [attribute.name]>
|
||||
</#list>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["messagesPerField", "get"])>
|
||||
|
||||
<#local jsFunctionCode = "function (fieldName) { ">
|
||||
|
||||
<#list fieldNames as fieldName>
|
||||
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/217 -->
|
||||
<#if xKeycloakify.pageId == "login.ftl" >
|
||||
|
||||
<#if fieldName == "username">
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === 'username' || fieldName === 'password' ){ ">
|
||||
|
||||
<#if messagesPerField.exists('username') || messagesPerField.exists('password')>
|
||||
<#local jsFunctionCode += "return kcContext.message && kcContext.message.summary ? kcContext.message.summary : 'error'; ">
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return ''; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if fieldName == "password">
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === '" + fieldName + "'){ ">
|
||||
|
||||
<#if messagesPerField.exists('${fieldName}')>
|
||||
<#local jsFunctionCode += 'return decodeHtmlEntities("' + messagesPerField.get('${fieldName}')?js_string + '"); '>
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return ''; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
</#list>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
<#return jsFunctionCode>
|
||||
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["messagesPerField", "existsError"])>
|
||||
|
||||
<#local jsFunctionCode = "function (fieldName) { ">
|
||||
|
||||
<#list fieldNames as fieldName>
|
||||
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/217 -->
|
||||
<#if xKeycloakify.pageId == "login.ftl" >
|
||||
<#if fieldName == "username">
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === 'username' || fieldName === 'password' ){ ">
|
||||
|
||||
<#if messagesPerField.existsError('username') || messagesPerField.existsError('password')>
|
||||
<#local jsFunctionCode += "return true; ">
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return false; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if fieldName == "password">
|
||||
<#continue>
|
||||
</#if>
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === '" + fieldName + "' ){ ">
|
||||
|
||||
<#if messagesPerField.existsError('${fieldName}')>
|
||||
<#local jsFunctionCode += 'return true; '>
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return false; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
</#list>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
<#return jsFunctionCode>
|
||||
|
||||
</#if>
|
||||
|
||||
<#if xKeycloakify.themeType == "account" && areSamePath(path, ["realm", "isInternationalizationEnabled"])>
|
||||
<#attempt>
|
||||
<#return realm.isInternationalizationEnabled()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate realm.isInternationalizationEnabled()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#return "ABORT: It's a method">
|
||||
</#if>
|
||||
|
||||
<#local isBoolean = -1>
|
||||
<#attempt>
|
||||
<#local isBoolean = object?is_boolean>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a boolean">
|
||||
</#attempt>
|
||||
|
||||
<#if isBoolean>
|
||||
<#return object?c>
|
||||
</#if>
|
||||
|
||||
<#local isEnumerable = -1>
|
||||
<#attempt>
|
||||
<#local isEnumerable = object?is_enumerable>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's an enumerable">
|
||||
</#attempt>
|
||||
|
||||
|
||||
<#if isEnumerable>
|
||||
|
||||
<#local outSeq = []>
|
||||
|
||||
<#local i = 0>
|
||||
|
||||
<#list object as array_item>
|
||||
|
||||
<#if !array_item??>
|
||||
<#local outSeq += ["null,"]>
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local recOut = toJsDeclarationString(array_item, path + [ i ])>
|
||||
|
||||
<#local i = i + 1>
|
||||
|
||||
<#if recOut?starts_with("ABORT:")>
|
||||
|
||||
<#local errorMessage = recOut?remove_beginning("ABORT:")>
|
||||
|
||||
<#if errorMessage != " It's a method" >
|
||||
<#local outSeq += ["/*" + i?string + ": " + errorMessage + "*/"]>
|
||||
</#if>
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local outSeq += [recOut + ","]>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return (["["] + outSeq?map(str -> ""?right_pad(4 * (path?size + 1)) + str) + [ ""?right_pad(4 * path?size) + "]"])?join("\n")>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local isDate = -1>
|
||||
<#attempt>
|
||||
<#local isDate = object?is_date_like>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a date">
|
||||
</#attempt>
|
||||
|
||||
<#if isDate>
|
||||
<#return '"' + object?datetime?iso_utc + '"'>
|
||||
</#if>
|
||||
|
||||
<#local isNumber = -1>
|
||||
<#attempt>
|
||||
<#local isNumber = object?is_number>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a number">
|
||||
</#attempt>
|
||||
|
||||
<#if isNumber>
|
||||
<#return object?c>
|
||||
</#if>
|
||||
|
||||
<#local isString = -1>
|
||||
<#attempt>
|
||||
<#local isString = object?is_string>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a string">
|
||||
</#attempt>
|
||||
|
||||
<#if isString>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str=object />
|
||||
</#if>
|
||||
|
||||
<#attempt>
|
||||
<#return '"' + object?js_string + '"'>;
|
||||
<#recover>
|
||||
</#attempt>
|
||||
|
||||
<#return "ABORT: Couldn't convert into string non hash, non method, non boolean, non number, non enumerable object">
|
||||
|
||||
</#function>
|
||||
<#function isSubpath path searchedPath>
|
||||
|
||||
<#if path?size < searchedPath?size>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#local i=0>
|
||||
|
||||
<#list path as property>
|
||||
|
||||
<#if i == searchedPath?size >
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local searchedProperty=searchedPath[i]>
|
||||
|
||||
<#local i+= 1>
|
||||
|
||||
<#if searchedProperty?is_string && searchedProperty == "*">
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?is_string && !property?is_string>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?is_number && !property?is_number>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?string != property?string>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return true>
|
||||
|
||||
</#function>
|
||||
|
||||
<#function areSamePath path searchedPath>
|
||||
<#return path?size == searchedPath?size && isSubpath(path, searchedPath)>
|
||||
</#function>
|
||||
|
||||
<#macro addToXKeycloakifyMessagesIfMessageKey str>
|
||||
<#if !msg?? || !msg?is_method>
|
||||
<#return>
|
||||
</#if>
|
||||
<#if (str?length > 200)>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local key=removeBrackets(str)>
|
||||
<#if key?length==0>
|
||||
<#return>
|
||||
</#if>
|
||||
<#if !(key?matches(r"^[a-zA-Z0-9-_.]*$"))>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local resolvedMsg=msg(key)>
|
||||
<#if resolvedMsg==key>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local messages=xKeycloakify.messages>
|
||||
<#local messages = messages + { key: resolvedMsg }>
|
||||
<#assign xKeycloakify = xKeycloakify + { "messages": messages }>
|
||||
</#macro>
|
||||
|
||||
<#function removeBrackets str>
|
||||
<#if str?starts_with("${") && str?ends_with("}")>
|
||||
<#return str[2..(str?length-2)]>
|
||||
<#else>
|
||||
<#return str>
|
||||
</#if>
|
||||
</#function>
|
||||
|
||||
<#macro addNonAutomaticallyGatherableMessagesToXKeycloakifyMessages>
|
||||
<#if profile?? && profile?is_hash && profile.attributes?? && profile.attributes?is_enumerable>
|
||||
<#list profile.attributes as attribute>
|
||||
<#if !(
|
||||
attribute.annotations?? && attribute.annotations?is_hash &&
|
||||
attribute.annotations.inputOptionLabelsI18nPrefix?? && attribute.annotations.inputOptionLabelsI18nPrefix?is_string
|
||||
)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#local prefix=attribute.annotations.inputOptionLabelsI18nPrefix>
|
||||
<#if !(
|
||||
attribute.validators?? && attribute.validators?is_hash &&
|
||||
attribute.validators.options?? && attribute.validators.options?is_hash &&
|
||||
attribute.validators.options.options?? && attribute.validators.options.options?is_enumerable
|
||||
)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#list attribute.validators.options.options as option>
|
||||
<#if !option?is_string>
|
||||
<#continue>
|
||||
</#if>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="${prefix}.${option}" />
|
||||
</#list>
|
||||
</#list>
|
||||
</#if>
|
||||
<#if xKeycloakify.pageId == "terms.ftl" || termsAcceptanceRequired?? && termsAcceptanceRequired>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="termsText" />
|
||||
</#if>
|
||||
<#if requiredActions?? && requiredActions?is_enumerable>
|
||||
<#list requiredActions as requiredAction>
|
||||
<#if !requiredAction?is_string>
|
||||
<#continue>
|
||||
</#if>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="requiredAction.${requiredAction}" />
|
||||
</#list>
|
||||
</#if>
|
||||
</#macro>
|
||||
|
||||
</script>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="${xKeycloakify.resourcesPath}/dist/favicon-32x32.png">
|
||||
<script type="module" crossorigin="" src="${xKeycloakify.resourcesPath}/dist/assets/index-6-NnS-wp.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="root"></div>
|
||||
|
||||
|
||||
</body></html>
|
739
dist_keycloak/theme/keycloakify-starter/login/login-otp.ftl
Normal file
739
dist_keycloak/theme/keycloakify-starter/login/login-otp.ftl
Normal file
@ -0,0 +1,739 @@
|
||||
<!DOCTYPE html><html><head><script>
|
||||
<#assign xKeycloakify={
|
||||
"messages": {},
|
||||
"pageId": "login-otp.ftl",
|
||||
"ftlTemplateFileName": "login-otp.ftl",
|
||||
"themeType": "login",
|
||||
"themeName": "keycloakify-starter",
|
||||
"keycloakifyVersion": "11.4.4",
|
||||
"themeVersion": "0.0.0",
|
||||
"resourcesPath": ""
|
||||
}>
|
||||
|
||||
<#if url?? && url?is_hash && url.resourcesPath?? && url.resourcesPath?is_string>
|
||||
<#assign xKeycloakify = xKeycloakify + { "resourcesPath": url.resourcesPath }>
|
||||
</#if>
|
||||
<#if resourceUrl?? && resourceUrl?is_string>
|
||||
<#assign xKeycloakify = xKeycloakify + { "resourcesPath": resourceUrl }>
|
||||
</#if>
|
||||
|
||||
const kcContext = ${toJsDeclarationString(.data_model, [])?no_esc};
|
||||
kcContext.keycloakifyVersion = "${xKeycloakify.keycloakifyVersion}";
|
||||
kcContext.themeVersion = "${xKeycloakify.themeVersion}";
|
||||
kcContext.themeType = "${xKeycloakify.themeType}";
|
||||
kcContext.themeName = "${xKeycloakify.themeName}";
|
||||
kcContext.pageId = "${xKeycloakify.pageId}";
|
||||
kcContext.ftlTemplateFileName = "${xKeycloakify.ftlTemplateFileName}";
|
||||
|
||||
<@addNonAutomaticallyGatherableMessagesToXKeycloakifyMessages />
|
||||
|
||||
kcContext["x-keycloakify"] = {};
|
||||
|
||||
kcContext["x-keycloakify"].resourcesPath = "${xKeycloakify.resourcesPath}";
|
||||
|
||||
{
|
||||
var messages = {};
|
||||
<#list xKeycloakify.messages as key, resolvedMsg>
|
||||
messages["${key}"] = decodeHtmlEntities("${resolvedMsg?js_string}");
|
||||
</#list>
|
||||
kcContext["x-keycloakify"].messages = messages;
|
||||
}
|
||||
|
||||
if(
|
||||
kcContext.url instanceof Object &&
|
||||
typeof kcContext.url.resourcesPath === "string"
|
||||
){
|
||||
kcContext.url.resourcesCommonPath = kcContext.url.resourcesPath + "/resources-common";
|
||||
}
|
||||
|
||||
if( kcContext.messagesPerField ){
|
||||
var existsError_singleFieldName = kcContext.messagesPerField.existsError;
|
||||
kcContext.messagesPerField.existsError = function (){
|
||||
for( let i = 0; i < arguments.length; i++ ){
|
||||
if( existsError_singleFieldName(arguments[i]) ){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
};
|
||||
kcContext.messagesPerField.exists = function (fieldName) {
|
||||
return kcContext.messagesPerField.get(fieldName) !== "";
|
||||
};
|
||||
kcContext.messagesPerField.printIfExists = function (fieldName, text) {
|
||||
return kcContext.messagesPerField.exists(fieldName) ? text : undefined;
|
||||
};
|
||||
kcContext.messagesPerField.getFirstError = function () {
|
||||
for( let i = 0; i < arguments.length; i++ ){
|
||||
const fieldName = arguments[i];
|
||||
if( kcContext.messagesPerField.existsError(fieldName) ){
|
||||
return kcContext.messagesPerField.get(fieldName);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
attributes_to_attributesByName: {
|
||||
if( !kcContext.profile ){
|
||||
break attributes_to_attributesByName;
|
||||
}
|
||||
if( !kcContext.profile.attributes ){
|
||||
break attributes_to_attributesByName;
|
||||
}
|
||||
var attributes = kcContext.profile.attributes;
|
||||
delete kcContext.profile.attributes;
|
||||
kcContext.profile.attributesByName = {};
|
||||
attributes.forEach(function(attribute){
|
||||
kcContext.profile.attributesByName[attribute.name] = attribute;
|
||||
});
|
||||
}
|
||||
|
||||
redirect_to_dev_server: {
|
||||
|
||||
switch(kcContext.themeType){
|
||||
case "login":
|
||||
break redirect_to_dev_server;
|
||||
case "account":
|
||||
if( kcContext.pageId !== "index.ftl" ){
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
break;
|
||||
case "admin":
|
||||
break;
|
||||
default:
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
|
||||
const devSeverPort = kcContext.properties.KEYCLOAKIFY_SPA_DEV_SERVER_PORT;
|
||||
|
||||
if( !devSeverPort ){
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
|
||||
const redirectUrl = new URL(window.location.href);
|
||||
|
||||
redirectUrl.port = devSeverPort;
|
||||
|
||||
delete kcContext.msgJSON;
|
||||
|
||||
console.log(kcContext);
|
||||
|
||||
redirectUrl.searchParams.set("kcContext", encodeURIComponent(JSON.stringify(kcContext)));
|
||||
|
||||
window.location.href = redirectUrl.toString();
|
||||
|
||||
}
|
||||
|
||||
|
||||
window.kcContext = kcContext;
|
||||
|
||||
|
||||
<#if xKeycloakify.themeType == "login" >
|
||||
{
|
||||
const script = document.createElement("script");
|
||||
script.type = "importmap";
|
||||
script.textContent = JSON.stringify({
|
||||
imports: {
|
||||
"rfc4648": kcContext.url.resourcesCommonPath + "/node_modules/rfc4648/lib/rfc4648.js"
|
||||
}
|
||||
}, null, 2);
|
||||
|
||||
document.head.appendChild(script);
|
||||
}
|
||||
</#if>
|
||||
|
||||
function decodeHtmlEntities(htmlStr){
|
||||
var element = decodeHtmlEntities.element;
|
||||
if (!element) {
|
||||
element = document.createElement("textarea");
|
||||
decodeHtmlEntities.element = element;
|
||||
}
|
||||
element.innerHTML = htmlStr;
|
||||
return element.value;
|
||||
}
|
||||
|
||||
<#function toJsDeclarationString object path>
|
||||
<#local isHash = -1>
|
||||
<#attempt>
|
||||
<#local isHash = object?is_hash || object?is_hash_ex>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't evaluate if " + path?join(".") + " is a hash">
|
||||
</#attempt>
|
||||
|
||||
<#if isHash>
|
||||
<#if path?size gt 10>
|
||||
<#return "ABORT: Too many recursive calls, path: " + path?join(".")>
|
||||
</#if>
|
||||
<#local keys = -1>
|
||||
|
||||
<#attempt>
|
||||
<#local keys = object?keys>
|
||||
<#recover>
|
||||
<#return "ABORT: We can't list keys on object">
|
||||
</#attempt>
|
||||
|
||||
<#local outSeq = []>
|
||||
|
||||
<#list keys as key>
|
||||
<#if ["class","declaredConstructors","superclass","declaringClass" ]?seq_contains(key) >
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if (
|
||||
areSamePath(path, ["url"]) &&
|
||||
["loginUpdatePasswordUrl", "loginUpdateProfileUrl", "loginUsernameReminderUrl", "loginUpdateTotpUrl"]?seq_contains(key)
|
||||
) || (
|
||||
key == "updateProfileCtx" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
<#-- https://github.com/keycloakify/keycloakify/pull/65#issuecomment-991896344 (reports with saml-post-form.ftl) -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/91#issue-1212319466 (reports with error.ftl and Kc18) -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/109#issuecomment-1134610163 -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/357 -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/discussions/406#discussioncomment-7514787 -->
|
||||
key == "loginAction" &&
|
||||
areSamePath(path, ["url"]) &&
|
||||
["saml-post-form.ftl", "error.ftl", "info.ftl", "login-oauth-grant.ftl", "logout-confirm.ftl", "login-oauth2-device-verify-user-code.ftl"]?seq_contains(xKeycloakify.pageId) &&
|
||||
!(auth?has_content && auth.showTryAnotherWayLink())
|
||||
) || (
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/362 -->
|
||||
["secretData", "value"]?seq_contains(key) &&
|
||||
areSamePath(path, [ "totp", "otpCredentials", "*" ])
|
||||
) || (
|
||||
["contextData", "idpConfig", "idp", "authenticationSession"]?seq_contains(key) &&
|
||||
areSamePath(path, ["brokerContext"]) &&
|
||||
["login-idp-link-confirm.ftl", "login-idp-link-email.ftl" ]?seq_contains(xKeycloakify.pageId)
|
||||
) || (
|
||||
key == "identityProviderBrokerCtx" &&
|
||||
areSamePath(path, []) &&
|
||||
["login-idp-link-confirm.ftl", "login-idp-link-email.ftl" ]?seq_contains(xKeycloakify.pageId)
|
||||
) || (
|
||||
["masterAdminClient", "delegateForUpdate", "defaultRole", "smtpConfig"]?seq_contains(key) &&
|
||||
areSamePath(path, ["realm"])
|
||||
) || (
|
||||
xKeycloakify.pageId == "error.ftl" &&
|
||||
areSamePath(path, ["realm"]) &&
|
||||
!["name", "displayName", "displayNameHtml", "internationalizationEnabled", "registrationEmailAsUsername" ]?seq_contains(key)
|
||||
) || (
|
||||
xKeycloakify.pageId == "applications.ftl" &&
|
||||
(
|
||||
key == "realm" ||
|
||||
key == "container"
|
||||
) &&
|
||||
isSubpath(path, ["applications", "applications"])
|
||||
) || (
|
||||
key == "delegateForUpdate" &&
|
||||
areSamePath(path, ["user"])
|
||||
) || (
|
||||
<#-- Security audit forwarded by Garth (Gmail) -->
|
||||
key == "saml.signing.private.key" &&
|
||||
areSamePath(path, ["client", "attributes"])
|
||||
) || (
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/534 -->
|
||||
key == "password" &&
|
||||
areSamePath(path, ["login"])
|
||||
) || (
|
||||
<#-- Remove realmAttributes added by https://github.com/jcputney/keycloak-theme-additional-info-extension for peace of mind. -->
|
||||
key == "realmAttributes" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
<#-- attributesByName adds a lot of noise to the output and is not needed, we already have profile.attributes -->
|
||||
key == "attributesByName" &&
|
||||
areSamePath(path, ["profile"])
|
||||
) || (
|
||||
<#-- We already have the attributes in profile speedup the rendering by filtering it out from the register object -->
|
||||
(key == "attributes" || key == "attributesByName") &&
|
||||
areSamePath(path, ["register"])
|
||||
) || (
|
||||
areSamePath(path, ["properties"]) &&
|
||||
(
|
||||
key?starts_with("kc") ||
|
||||
key == "locales" ||
|
||||
key == "import" ||
|
||||
key == "parent" ||
|
||||
key == "meta" ||
|
||||
key == "stylesCommon" ||
|
||||
key == "styles" ||
|
||||
key == "accountResourceProvider"
|
||||
)
|
||||
) || (
|
||||
key == "execution" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
key == "entity" &&
|
||||
areSamePath(path, ["user"])
|
||||
) || (
|
||||
key == "attributes" &&
|
||||
areSamePath(path, ["realm"])
|
||||
) || (
|
||||
xKeycloakify.pageId == "index.ftl" &&
|
||||
xKeycloakify.themeType == "account" &&
|
||||
areSamePath(path, ["realm"]) &&
|
||||
![
|
||||
"name",
|
||||
"registrationEmailAsUsername",
|
||||
"editUsernameAllowed",
|
||||
"isInternationalizationEnabled",
|
||||
"identityFederationEnabled",
|
||||
"userManagedAccessAllowed"
|
||||
]?seq_contains(key)
|
||||
) || (
|
||||
["flowContext", "session", "realm"]?seq_contains(key) &&
|
||||
areSamePath(path, ["social"])
|
||||
)
|
||||
>
|
||||
<#-- <#local outSeq += ["/*" + path?join(".") + "." + key + " excluded*/"]> -->
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#-- https://github.com/keycloakify/keycloakify/discussions/406 -->
|
||||
<#if (
|
||||
key == "attemptedUsername" &&
|
||||
areSamePath(path, ["auth"]) &&
|
||||
[
|
||||
"register.ftl", "terms.ftl", "info.ftl", "login.ftl",
|
||||
"login-update-password.ftl", "login-oauth2-device-verify-user-code.ftl"
|
||||
]?seq_contains(xKeycloakify.pageId)
|
||||
)>
|
||||
<#attempt>
|
||||
<#-- https://github.com/keycloak/keycloak/blob/3a2bf0c04bcde185e497aaa32d0bb7ab7520cf4a/themes/src/main/resources/theme/base/login/template.ftl#L63 -->
|
||||
<#if !(auth?has_content && auth.showUsername() && !auth.showResetCredentials())>
|
||||
<#local outSeq += ["/*" + path?join(".") + "." + key + " excluded*/"]>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Accessing attemptedUsername throwed an exception */"]>
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
|
||||
|
||||
<#attempt>
|
||||
<#if !object[key]??>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Couldn't test if '" + key + "' is available on this object*/"]>
|
||||
<#continue>
|
||||
</#attempt>
|
||||
|
||||
<#local propertyValue = -1>
|
||||
|
||||
<#attempt>
|
||||
<#local propertyValue = object[key]>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Couldn't dereference '" + key + "' on this object*/"]>
|
||||
<#continue>
|
||||
</#attempt>
|
||||
|
||||
<#local recOut = toJsDeclarationString(propertyValue, path + [ key ])>
|
||||
|
||||
<#if recOut?starts_with("ABORT:")>
|
||||
|
||||
<#local errorMessage = recOut?remove_beginning("ABORT:")>
|
||||
|
||||
<#if errorMessage != " It's a method" >
|
||||
<#local outSeq += ["/*" + key + ": " + errorMessage + "*/"]>
|
||||
</#if>
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local outSeq += ['"' + key + '": ' + recOut + ","]>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return (["{"] + outSeq?map(str -> ""?right_pad(4 * (path?size + 1)) + str) + [ ""?right_pad(4 * path?size) + "}"])?join("\n")>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local isMethod = -1>
|
||||
<#attempt>
|
||||
<#local isMethod = object?is_method>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it'sa method.">
|
||||
</#attempt>
|
||||
|
||||
<#if isMethod>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showUsername"])>
|
||||
<#attempt>
|
||||
<#return auth.showUsername()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showUsername()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showResetCredentials"])>
|
||||
<#attempt>
|
||||
<#return auth.showResetCredentials()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showResetCredentials()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showTryAnotherWayLink"])>
|
||||
<#attempt>
|
||||
<#return auth.showTryAnotherWayLink()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showTryAnotherWayLink()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["url", "getLogoutUrl"])>
|
||||
<#local returnValue = -1>
|
||||
<#attempt>
|
||||
<#local returnValue = url.getLogoutUrl()>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate url.getLogoutUrl()">
|
||||
</#attempt>
|
||||
<#return 'function(){ return "' + returnValue + '"; }'>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["totp", "policy", "getAlgorithmKey"])>
|
||||
<#local returnValue = "error">
|
||||
<#if mode?? && mode = "manual">
|
||||
<#attempt>
|
||||
<#local returnValue = totp.policy.getAlgorithmKey()>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate totp.policy.getAlgorithmKey()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
<#return 'function(){ return "' + returnValue + '"; }'>
|
||||
</#if>
|
||||
|
||||
<#assign fieldNames = ["firstName", "lastName", "email", "username", "password", "password-confirm", "global", "totp", "userLabel", "recoveryCodeInput", "termsAccepted"]>
|
||||
<#if profile?? && profile.attributes??>
|
||||
<#list profile.attributes as attribute>
|
||||
<#if fieldNames?seq_contains(attribute.name)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#assign fieldNames += [attribute.name]>
|
||||
</#list>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["messagesPerField", "get"])>
|
||||
|
||||
<#local jsFunctionCode = "function (fieldName) { ">
|
||||
|
||||
<#list fieldNames as fieldName>
|
||||
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/217 -->
|
||||
<#if xKeycloakify.pageId == "login.ftl" >
|
||||
|
||||
<#if fieldName == "username">
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === 'username' || fieldName === 'password' ){ ">
|
||||
|
||||
<#if messagesPerField.exists('username') || messagesPerField.exists('password')>
|
||||
<#local jsFunctionCode += "return kcContext.message && kcContext.message.summary ? kcContext.message.summary : 'error'; ">
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return ''; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if fieldName == "password">
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === '" + fieldName + "'){ ">
|
||||
|
||||
<#if messagesPerField.exists('${fieldName}')>
|
||||
<#local jsFunctionCode += 'return decodeHtmlEntities("' + messagesPerField.get('${fieldName}')?js_string + '"); '>
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return ''; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
</#list>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
<#return jsFunctionCode>
|
||||
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["messagesPerField", "existsError"])>
|
||||
|
||||
<#local jsFunctionCode = "function (fieldName) { ">
|
||||
|
||||
<#list fieldNames as fieldName>
|
||||
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/217 -->
|
||||
<#if xKeycloakify.pageId == "login.ftl" >
|
||||
<#if fieldName == "username">
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === 'username' || fieldName === 'password' ){ ">
|
||||
|
||||
<#if messagesPerField.existsError('username') || messagesPerField.existsError('password')>
|
||||
<#local jsFunctionCode += "return true; ">
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return false; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if fieldName == "password">
|
||||
<#continue>
|
||||
</#if>
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === '" + fieldName + "' ){ ">
|
||||
|
||||
<#if messagesPerField.existsError('${fieldName}')>
|
||||
<#local jsFunctionCode += 'return true; '>
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return false; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
</#list>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
<#return jsFunctionCode>
|
||||
|
||||
</#if>
|
||||
|
||||
<#if xKeycloakify.themeType == "account" && areSamePath(path, ["realm", "isInternationalizationEnabled"])>
|
||||
<#attempt>
|
||||
<#return realm.isInternationalizationEnabled()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate realm.isInternationalizationEnabled()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#return "ABORT: It's a method">
|
||||
</#if>
|
||||
|
||||
<#local isBoolean = -1>
|
||||
<#attempt>
|
||||
<#local isBoolean = object?is_boolean>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a boolean">
|
||||
</#attempt>
|
||||
|
||||
<#if isBoolean>
|
||||
<#return object?c>
|
||||
</#if>
|
||||
|
||||
<#local isEnumerable = -1>
|
||||
<#attempt>
|
||||
<#local isEnumerable = object?is_enumerable>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's an enumerable">
|
||||
</#attempt>
|
||||
|
||||
|
||||
<#if isEnumerable>
|
||||
|
||||
<#local outSeq = []>
|
||||
|
||||
<#local i = 0>
|
||||
|
||||
<#list object as array_item>
|
||||
|
||||
<#if !array_item??>
|
||||
<#local outSeq += ["null,"]>
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local recOut = toJsDeclarationString(array_item, path + [ i ])>
|
||||
|
||||
<#local i = i + 1>
|
||||
|
||||
<#if recOut?starts_with("ABORT:")>
|
||||
|
||||
<#local errorMessage = recOut?remove_beginning("ABORT:")>
|
||||
|
||||
<#if errorMessage != " It's a method" >
|
||||
<#local outSeq += ["/*" + i?string + ": " + errorMessage + "*/"]>
|
||||
</#if>
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local outSeq += [recOut + ","]>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return (["["] + outSeq?map(str -> ""?right_pad(4 * (path?size + 1)) + str) + [ ""?right_pad(4 * path?size) + "]"])?join("\n")>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local isDate = -1>
|
||||
<#attempt>
|
||||
<#local isDate = object?is_date_like>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a date">
|
||||
</#attempt>
|
||||
|
||||
<#if isDate>
|
||||
<#return '"' + object?datetime?iso_utc + '"'>
|
||||
</#if>
|
||||
|
||||
<#local isNumber = -1>
|
||||
<#attempt>
|
||||
<#local isNumber = object?is_number>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a number">
|
||||
</#attempt>
|
||||
|
||||
<#if isNumber>
|
||||
<#return object?c>
|
||||
</#if>
|
||||
|
||||
<#local isString = -1>
|
||||
<#attempt>
|
||||
<#local isString = object?is_string>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a string">
|
||||
</#attempt>
|
||||
|
||||
<#if isString>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str=object />
|
||||
</#if>
|
||||
|
||||
<#attempt>
|
||||
<#return '"' + object?js_string + '"'>;
|
||||
<#recover>
|
||||
</#attempt>
|
||||
|
||||
<#return "ABORT: Couldn't convert into string non hash, non method, non boolean, non number, non enumerable object">
|
||||
|
||||
</#function>
|
||||
<#function isSubpath path searchedPath>
|
||||
|
||||
<#if path?size < searchedPath?size>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#local i=0>
|
||||
|
||||
<#list path as property>
|
||||
|
||||
<#if i == searchedPath?size >
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local searchedProperty=searchedPath[i]>
|
||||
|
||||
<#local i+= 1>
|
||||
|
||||
<#if searchedProperty?is_string && searchedProperty == "*">
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?is_string && !property?is_string>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?is_number && !property?is_number>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?string != property?string>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return true>
|
||||
|
||||
</#function>
|
||||
|
||||
<#function areSamePath path searchedPath>
|
||||
<#return path?size == searchedPath?size && isSubpath(path, searchedPath)>
|
||||
</#function>
|
||||
|
||||
<#macro addToXKeycloakifyMessagesIfMessageKey str>
|
||||
<#if !msg?? || !msg?is_method>
|
||||
<#return>
|
||||
</#if>
|
||||
<#if (str?length > 200)>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local key=removeBrackets(str)>
|
||||
<#if key?length==0>
|
||||
<#return>
|
||||
</#if>
|
||||
<#if !(key?matches(r"^[a-zA-Z0-9-_.]*$"))>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local resolvedMsg=msg(key)>
|
||||
<#if resolvedMsg==key>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local messages=xKeycloakify.messages>
|
||||
<#local messages = messages + { key: resolvedMsg }>
|
||||
<#assign xKeycloakify = xKeycloakify + { "messages": messages }>
|
||||
</#macro>
|
||||
|
||||
<#function removeBrackets str>
|
||||
<#if str?starts_with("${") && str?ends_with("}")>
|
||||
<#return str[2..(str?length-2)]>
|
||||
<#else>
|
||||
<#return str>
|
||||
</#if>
|
||||
</#function>
|
||||
|
||||
<#macro addNonAutomaticallyGatherableMessagesToXKeycloakifyMessages>
|
||||
<#if profile?? && profile?is_hash && profile.attributes?? && profile.attributes?is_enumerable>
|
||||
<#list profile.attributes as attribute>
|
||||
<#if !(
|
||||
attribute.annotations?? && attribute.annotations?is_hash &&
|
||||
attribute.annotations.inputOptionLabelsI18nPrefix?? && attribute.annotations.inputOptionLabelsI18nPrefix?is_string
|
||||
)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#local prefix=attribute.annotations.inputOptionLabelsI18nPrefix>
|
||||
<#if !(
|
||||
attribute.validators?? && attribute.validators?is_hash &&
|
||||
attribute.validators.options?? && attribute.validators.options?is_hash &&
|
||||
attribute.validators.options.options?? && attribute.validators.options.options?is_enumerable
|
||||
)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#list attribute.validators.options.options as option>
|
||||
<#if !option?is_string>
|
||||
<#continue>
|
||||
</#if>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="${prefix}.${option}" />
|
||||
</#list>
|
||||
</#list>
|
||||
</#if>
|
||||
<#if xKeycloakify.pageId == "terms.ftl" || termsAcceptanceRequired?? && termsAcceptanceRequired>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="termsText" />
|
||||
</#if>
|
||||
<#if requiredActions?? && requiredActions?is_enumerable>
|
||||
<#list requiredActions as requiredAction>
|
||||
<#if !requiredAction?is_string>
|
||||
<#continue>
|
||||
</#if>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="requiredAction.${requiredAction}" />
|
||||
</#list>
|
||||
</#if>
|
||||
</#macro>
|
||||
|
||||
</script>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="${xKeycloakify.resourcesPath}/dist/favicon-32x32.png">
|
||||
<script type="module" crossorigin="" src="${xKeycloakify.resourcesPath}/dist/assets/index-6-NnS-wp.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="root"></div>
|
||||
|
||||
|
||||
</body></html>
|
@ -0,0 +1,739 @@
|
||||
<!DOCTYPE html><html><head><script>
|
||||
<#assign xKeycloakify={
|
||||
"messages": {},
|
||||
"pageId": "login-page-expired.ftl",
|
||||
"ftlTemplateFileName": "login-page-expired.ftl",
|
||||
"themeType": "login",
|
||||
"themeName": "keycloakify-starter",
|
||||
"keycloakifyVersion": "11.4.4",
|
||||
"themeVersion": "0.0.0",
|
||||
"resourcesPath": ""
|
||||
}>
|
||||
|
||||
<#if url?? && url?is_hash && url.resourcesPath?? && url.resourcesPath?is_string>
|
||||
<#assign xKeycloakify = xKeycloakify + { "resourcesPath": url.resourcesPath }>
|
||||
</#if>
|
||||
<#if resourceUrl?? && resourceUrl?is_string>
|
||||
<#assign xKeycloakify = xKeycloakify + { "resourcesPath": resourceUrl }>
|
||||
</#if>
|
||||
|
||||
const kcContext = ${toJsDeclarationString(.data_model, [])?no_esc};
|
||||
kcContext.keycloakifyVersion = "${xKeycloakify.keycloakifyVersion}";
|
||||
kcContext.themeVersion = "${xKeycloakify.themeVersion}";
|
||||
kcContext.themeType = "${xKeycloakify.themeType}";
|
||||
kcContext.themeName = "${xKeycloakify.themeName}";
|
||||
kcContext.pageId = "${xKeycloakify.pageId}";
|
||||
kcContext.ftlTemplateFileName = "${xKeycloakify.ftlTemplateFileName}";
|
||||
|
||||
<@addNonAutomaticallyGatherableMessagesToXKeycloakifyMessages />
|
||||
|
||||
kcContext["x-keycloakify"] = {};
|
||||
|
||||
kcContext["x-keycloakify"].resourcesPath = "${xKeycloakify.resourcesPath}";
|
||||
|
||||
{
|
||||
var messages = {};
|
||||
<#list xKeycloakify.messages as key, resolvedMsg>
|
||||
messages["${key}"] = decodeHtmlEntities("${resolvedMsg?js_string}");
|
||||
</#list>
|
||||
kcContext["x-keycloakify"].messages = messages;
|
||||
}
|
||||
|
||||
if(
|
||||
kcContext.url instanceof Object &&
|
||||
typeof kcContext.url.resourcesPath === "string"
|
||||
){
|
||||
kcContext.url.resourcesCommonPath = kcContext.url.resourcesPath + "/resources-common";
|
||||
}
|
||||
|
||||
if( kcContext.messagesPerField ){
|
||||
var existsError_singleFieldName = kcContext.messagesPerField.existsError;
|
||||
kcContext.messagesPerField.existsError = function (){
|
||||
for( let i = 0; i < arguments.length; i++ ){
|
||||
if( existsError_singleFieldName(arguments[i]) ){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
};
|
||||
kcContext.messagesPerField.exists = function (fieldName) {
|
||||
return kcContext.messagesPerField.get(fieldName) !== "";
|
||||
};
|
||||
kcContext.messagesPerField.printIfExists = function (fieldName, text) {
|
||||
return kcContext.messagesPerField.exists(fieldName) ? text : undefined;
|
||||
};
|
||||
kcContext.messagesPerField.getFirstError = function () {
|
||||
for( let i = 0; i < arguments.length; i++ ){
|
||||
const fieldName = arguments[i];
|
||||
if( kcContext.messagesPerField.existsError(fieldName) ){
|
||||
return kcContext.messagesPerField.get(fieldName);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
attributes_to_attributesByName: {
|
||||
if( !kcContext.profile ){
|
||||
break attributes_to_attributesByName;
|
||||
}
|
||||
if( !kcContext.profile.attributes ){
|
||||
break attributes_to_attributesByName;
|
||||
}
|
||||
var attributes = kcContext.profile.attributes;
|
||||
delete kcContext.profile.attributes;
|
||||
kcContext.profile.attributesByName = {};
|
||||
attributes.forEach(function(attribute){
|
||||
kcContext.profile.attributesByName[attribute.name] = attribute;
|
||||
});
|
||||
}
|
||||
|
||||
redirect_to_dev_server: {
|
||||
|
||||
switch(kcContext.themeType){
|
||||
case "login":
|
||||
break redirect_to_dev_server;
|
||||
case "account":
|
||||
if( kcContext.pageId !== "index.ftl" ){
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
break;
|
||||
case "admin":
|
||||
break;
|
||||
default:
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
|
||||
const devSeverPort = kcContext.properties.KEYCLOAKIFY_SPA_DEV_SERVER_PORT;
|
||||
|
||||
if( !devSeverPort ){
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
|
||||
const redirectUrl = new URL(window.location.href);
|
||||
|
||||
redirectUrl.port = devSeverPort;
|
||||
|
||||
delete kcContext.msgJSON;
|
||||
|
||||
console.log(kcContext);
|
||||
|
||||
redirectUrl.searchParams.set("kcContext", encodeURIComponent(JSON.stringify(kcContext)));
|
||||
|
||||
window.location.href = redirectUrl.toString();
|
||||
|
||||
}
|
||||
|
||||
|
||||
window.kcContext = kcContext;
|
||||
|
||||
|
||||
<#if xKeycloakify.themeType == "login" >
|
||||
{
|
||||
const script = document.createElement("script");
|
||||
script.type = "importmap";
|
||||
script.textContent = JSON.stringify({
|
||||
imports: {
|
||||
"rfc4648": kcContext.url.resourcesCommonPath + "/node_modules/rfc4648/lib/rfc4648.js"
|
||||
}
|
||||
}, null, 2);
|
||||
|
||||
document.head.appendChild(script);
|
||||
}
|
||||
</#if>
|
||||
|
||||
function decodeHtmlEntities(htmlStr){
|
||||
var element = decodeHtmlEntities.element;
|
||||
if (!element) {
|
||||
element = document.createElement("textarea");
|
||||
decodeHtmlEntities.element = element;
|
||||
}
|
||||
element.innerHTML = htmlStr;
|
||||
return element.value;
|
||||
}
|
||||
|
||||
<#function toJsDeclarationString object path>
|
||||
<#local isHash = -1>
|
||||
<#attempt>
|
||||
<#local isHash = object?is_hash || object?is_hash_ex>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't evaluate if " + path?join(".") + " is a hash">
|
||||
</#attempt>
|
||||
|
||||
<#if isHash>
|
||||
<#if path?size gt 10>
|
||||
<#return "ABORT: Too many recursive calls, path: " + path?join(".")>
|
||||
</#if>
|
||||
<#local keys = -1>
|
||||
|
||||
<#attempt>
|
||||
<#local keys = object?keys>
|
||||
<#recover>
|
||||
<#return "ABORT: We can't list keys on object">
|
||||
</#attempt>
|
||||
|
||||
<#local outSeq = []>
|
||||
|
||||
<#list keys as key>
|
||||
<#if ["class","declaredConstructors","superclass","declaringClass" ]?seq_contains(key) >
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if (
|
||||
areSamePath(path, ["url"]) &&
|
||||
["loginUpdatePasswordUrl", "loginUpdateProfileUrl", "loginUsernameReminderUrl", "loginUpdateTotpUrl"]?seq_contains(key)
|
||||
) || (
|
||||
key == "updateProfileCtx" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
<#-- https://github.com/keycloakify/keycloakify/pull/65#issuecomment-991896344 (reports with saml-post-form.ftl) -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/91#issue-1212319466 (reports with error.ftl and Kc18) -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/109#issuecomment-1134610163 -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/357 -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/discussions/406#discussioncomment-7514787 -->
|
||||
key == "loginAction" &&
|
||||
areSamePath(path, ["url"]) &&
|
||||
["saml-post-form.ftl", "error.ftl", "info.ftl", "login-oauth-grant.ftl", "logout-confirm.ftl", "login-oauth2-device-verify-user-code.ftl"]?seq_contains(xKeycloakify.pageId) &&
|
||||
!(auth?has_content && auth.showTryAnotherWayLink())
|
||||
) || (
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/362 -->
|
||||
["secretData", "value"]?seq_contains(key) &&
|
||||
areSamePath(path, [ "totp", "otpCredentials", "*" ])
|
||||
) || (
|
||||
["contextData", "idpConfig", "idp", "authenticationSession"]?seq_contains(key) &&
|
||||
areSamePath(path, ["brokerContext"]) &&
|
||||
["login-idp-link-confirm.ftl", "login-idp-link-email.ftl" ]?seq_contains(xKeycloakify.pageId)
|
||||
) || (
|
||||
key == "identityProviderBrokerCtx" &&
|
||||
areSamePath(path, []) &&
|
||||
["login-idp-link-confirm.ftl", "login-idp-link-email.ftl" ]?seq_contains(xKeycloakify.pageId)
|
||||
) || (
|
||||
["masterAdminClient", "delegateForUpdate", "defaultRole", "smtpConfig"]?seq_contains(key) &&
|
||||
areSamePath(path, ["realm"])
|
||||
) || (
|
||||
xKeycloakify.pageId == "error.ftl" &&
|
||||
areSamePath(path, ["realm"]) &&
|
||||
!["name", "displayName", "displayNameHtml", "internationalizationEnabled", "registrationEmailAsUsername" ]?seq_contains(key)
|
||||
) || (
|
||||
xKeycloakify.pageId == "applications.ftl" &&
|
||||
(
|
||||
key == "realm" ||
|
||||
key == "container"
|
||||
) &&
|
||||
isSubpath(path, ["applications", "applications"])
|
||||
) || (
|
||||
key == "delegateForUpdate" &&
|
||||
areSamePath(path, ["user"])
|
||||
) || (
|
||||
<#-- Security audit forwarded by Garth (Gmail) -->
|
||||
key == "saml.signing.private.key" &&
|
||||
areSamePath(path, ["client", "attributes"])
|
||||
) || (
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/534 -->
|
||||
key == "password" &&
|
||||
areSamePath(path, ["login"])
|
||||
) || (
|
||||
<#-- Remove realmAttributes added by https://github.com/jcputney/keycloak-theme-additional-info-extension for peace of mind. -->
|
||||
key == "realmAttributes" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
<#-- attributesByName adds a lot of noise to the output and is not needed, we already have profile.attributes -->
|
||||
key == "attributesByName" &&
|
||||
areSamePath(path, ["profile"])
|
||||
) || (
|
||||
<#-- We already have the attributes in profile speedup the rendering by filtering it out from the register object -->
|
||||
(key == "attributes" || key == "attributesByName") &&
|
||||
areSamePath(path, ["register"])
|
||||
) || (
|
||||
areSamePath(path, ["properties"]) &&
|
||||
(
|
||||
key?starts_with("kc") ||
|
||||
key == "locales" ||
|
||||
key == "import" ||
|
||||
key == "parent" ||
|
||||
key == "meta" ||
|
||||
key == "stylesCommon" ||
|
||||
key == "styles" ||
|
||||
key == "accountResourceProvider"
|
||||
)
|
||||
) || (
|
||||
key == "execution" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
key == "entity" &&
|
||||
areSamePath(path, ["user"])
|
||||
) || (
|
||||
key == "attributes" &&
|
||||
areSamePath(path, ["realm"])
|
||||
) || (
|
||||
xKeycloakify.pageId == "index.ftl" &&
|
||||
xKeycloakify.themeType == "account" &&
|
||||
areSamePath(path, ["realm"]) &&
|
||||
![
|
||||
"name",
|
||||
"registrationEmailAsUsername",
|
||||
"editUsernameAllowed",
|
||||
"isInternationalizationEnabled",
|
||||
"identityFederationEnabled",
|
||||
"userManagedAccessAllowed"
|
||||
]?seq_contains(key)
|
||||
) || (
|
||||
["flowContext", "session", "realm"]?seq_contains(key) &&
|
||||
areSamePath(path, ["social"])
|
||||
)
|
||||
>
|
||||
<#-- <#local outSeq += ["/*" + path?join(".") + "." + key + " excluded*/"]> -->
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#-- https://github.com/keycloakify/keycloakify/discussions/406 -->
|
||||
<#if (
|
||||
key == "attemptedUsername" &&
|
||||
areSamePath(path, ["auth"]) &&
|
||||
[
|
||||
"register.ftl", "terms.ftl", "info.ftl", "login.ftl",
|
||||
"login-update-password.ftl", "login-oauth2-device-verify-user-code.ftl"
|
||||
]?seq_contains(xKeycloakify.pageId)
|
||||
)>
|
||||
<#attempt>
|
||||
<#-- https://github.com/keycloak/keycloak/blob/3a2bf0c04bcde185e497aaa32d0bb7ab7520cf4a/themes/src/main/resources/theme/base/login/template.ftl#L63 -->
|
||||
<#if !(auth?has_content && auth.showUsername() && !auth.showResetCredentials())>
|
||||
<#local outSeq += ["/*" + path?join(".") + "." + key + " excluded*/"]>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Accessing attemptedUsername throwed an exception */"]>
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
|
||||
|
||||
<#attempt>
|
||||
<#if !object[key]??>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Couldn't test if '" + key + "' is available on this object*/"]>
|
||||
<#continue>
|
||||
</#attempt>
|
||||
|
||||
<#local propertyValue = -1>
|
||||
|
||||
<#attempt>
|
||||
<#local propertyValue = object[key]>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Couldn't dereference '" + key + "' on this object*/"]>
|
||||
<#continue>
|
||||
</#attempt>
|
||||
|
||||
<#local recOut = toJsDeclarationString(propertyValue, path + [ key ])>
|
||||
|
||||
<#if recOut?starts_with("ABORT:")>
|
||||
|
||||
<#local errorMessage = recOut?remove_beginning("ABORT:")>
|
||||
|
||||
<#if errorMessage != " It's a method" >
|
||||
<#local outSeq += ["/*" + key + ": " + errorMessage + "*/"]>
|
||||
</#if>
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local outSeq += ['"' + key + '": ' + recOut + ","]>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return (["{"] + outSeq?map(str -> ""?right_pad(4 * (path?size + 1)) + str) + [ ""?right_pad(4 * path?size) + "}"])?join("\n")>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local isMethod = -1>
|
||||
<#attempt>
|
||||
<#local isMethod = object?is_method>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it'sa method.">
|
||||
</#attempt>
|
||||
|
||||
<#if isMethod>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showUsername"])>
|
||||
<#attempt>
|
||||
<#return auth.showUsername()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showUsername()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showResetCredentials"])>
|
||||
<#attempt>
|
||||
<#return auth.showResetCredentials()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showResetCredentials()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showTryAnotherWayLink"])>
|
||||
<#attempt>
|
||||
<#return auth.showTryAnotherWayLink()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showTryAnotherWayLink()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["url", "getLogoutUrl"])>
|
||||
<#local returnValue = -1>
|
||||
<#attempt>
|
||||
<#local returnValue = url.getLogoutUrl()>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate url.getLogoutUrl()">
|
||||
</#attempt>
|
||||
<#return 'function(){ return "' + returnValue + '"; }'>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["totp", "policy", "getAlgorithmKey"])>
|
||||
<#local returnValue = "error">
|
||||
<#if mode?? && mode = "manual">
|
||||
<#attempt>
|
||||
<#local returnValue = totp.policy.getAlgorithmKey()>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate totp.policy.getAlgorithmKey()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
<#return 'function(){ return "' + returnValue + '"; }'>
|
||||
</#if>
|
||||
|
||||
<#assign fieldNames = ["firstName", "lastName", "email", "username", "password", "password-confirm", "global", "totp", "userLabel", "recoveryCodeInput", "termsAccepted"]>
|
||||
<#if profile?? && profile.attributes??>
|
||||
<#list profile.attributes as attribute>
|
||||
<#if fieldNames?seq_contains(attribute.name)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#assign fieldNames += [attribute.name]>
|
||||
</#list>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["messagesPerField", "get"])>
|
||||
|
||||
<#local jsFunctionCode = "function (fieldName) { ">
|
||||
|
||||
<#list fieldNames as fieldName>
|
||||
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/217 -->
|
||||
<#if xKeycloakify.pageId == "login.ftl" >
|
||||
|
||||
<#if fieldName == "username">
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === 'username' || fieldName === 'password' ){ ">
|
||||
|
||||
<#if messagesPerField.exists('username') || messagesPerField.exists('password')>
|
||||
<#local jsFunctionCode += "return kcContext.message && kcContext.message.summary ? kcContext.message.summary : 'error'; ">
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return ''; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if fieldName == "password">
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === '" + fieldName + "'){ ">
|
||||
|
||||
<#if messagesPerField.exists('${fieldName}')>
|
||||
<#local jsFunctionCode += 'return decodeHtmlEntities("' + messagesPerField.get('${fieldName}')?js_string + '"); '>
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return ''; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
</#list>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
<#return jsFunctionCode>
|
||||
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["messagesPerField", "existsError"])>
|
||||
|
||||
<#local jsFunctionCode = "function (fieldName) { ">
|
||||
|
||||
<#list fieldNames as fieldName>
|
||||
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/217 -->
|
||||
<#if xKeycloakify.pageId == "login.ftl" >
|
||||
<#if fieldName == "username">
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === 'username' || fieldName === 'password' ){ ">
|
||||
|
||||
<#if messagesPerField.existsError('username') || messagesPerField.existsError('password')>
|
||||
<#local jsFunctionCode += "return true; ">
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return false; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if fieldName == "password">
|
||||
<#continue>
|
||||
</#if>
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === '" + fieldName + "' ){ ">
|
||||
|
||||
<#if messagesPerField.existsError('${fieldName}')>
|
||||
<#local jsFunctionCode += 'return true; '>
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return false; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
</#list>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
<#return jsFunctionCode>
|
||||
|
||||
</#if>
|
||||
|
||||
<#if xKeycloakify.themeType == "account" && areSamePath(path, ["realm", "isInternationalizationEnabled"])>
|
||||
<#attempt>
|
||||
<#return realm.isInternationalizationEnabled()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate realm.isInternationalizationEnabled()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#return "ABORT: It's a method">
|
||||
</#if>
|
||||
|
||||
<#local isBoolean = -1>
|
||||
<#attempt>
|
||||
<#local isBoolean = object?is_boolean>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a boolean">
|
||||
</#attempt>
|
||||
|
||||
<#if isBoolean>
|
||||
<#return object?c>
|
||||
</#if>
|
||||
|
||||
<#local isEnumerable = -1>
|
||||
<#attempt>
|
||||
<#local isEnumerable = object?is_enumerable>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's an enumerable">
|
||||
</#attempt>
|
||||
|
||||
|
||||
<#if isEnumerable>
|
||||
|
||||
<#local outSeq = []>
|
||||
|
||||
<#local i = 0>
|
||||
|
||||
<#list object as array_item>
|
||||
|
||||
<#if !array_item??>
|
||||
<#local outSeq += ["null,"]>
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local recOut = toJsDeclarationString(array_item, path + [ i ])>
|
||||
|
||||
<#local i = i + 1>
|
||||
|
||||
<#if recOut?starts_with("ABORT:")>
|
||||
|
||||
<#local errorMessage = recOut?remove_beginning("ABORT:")>
|
||||
|
||||
<#if errorMessage != " It's a method" >
|
||||
<#local outSeq += ["/*" + i?string + ": " + errorMessage + "*/"]>
|
||||
</#if>
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local outSeq += [recOut + ","]>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return (["["] + outSeq?map(str -> ""?right_pad(4 * (path?size + 1)) + str) + [ ""?right_pad(4 * path?size) + "]"])?join("\n")>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local isDate = -1>
|
||||
<#attempt>
|
||||
<#local isDate = object?is_date_like>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a date">
|
||||
</#attempt>
|
||||
|
||||
<#if isDate>
|
||||
<#return '"' + object?datetime?iso_utc + '"'>
|
||||
</#if>
|
||||
|
||||
<#local isNumber = -1>
|
||||
<#attempt>
|
||||
<#local isNumber = object?is_number>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a number">
|
||||
</#attempt>
|
||||
|
||||
<#if isNumber>
|
||||
<#return object?c>
|
||||
</#if>
|
||||
|
||||
<#local isString = -1>
|
||||
<#attempt>
|
||||
<#local isString = object?is_string>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a string">
|
||||
</#attempt>
|
||||
|
||||
<#if isString>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str=object />
|
||||
</#if>
|
||||
|
||||
<#attempt>
|
||||
<#return '"' + object?js_string + '"'>;
|
||||
<#recover>
|
||||
</#attempt>
|
||||
|
||||
<#return "ABORT: Couldn't convert into string non hash, non method, non boolean, non number, non enumerable object">
|
||||
|
||||
</#function>
|
||||
<#function isSubpath path searchedPath>
|
||||
|
||||
<#if path?size < searchedPath?size>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#local i=0>
|
||||
|
||||
<#list path as property>
|
||||
|
||||
<#if i == searchedPath?size >
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local searchedProperty=searchedPath[i]>
|
||||
|
||||
<#local i+= 1>
|
||||
|
||||
<#if searchedProperty?is_string && searchedProperty == "*">
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?is_string && !property?is_string>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?is_number && !property?is_number>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?string != property?string>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return true>
|
||||
|
||||
</#function>
|
||||
|
||||
<#function areSamePath path searchedPath>
|
||||
<#return path?size == searchedPath?size && isSubpath(path, searchedPath)>
|
||||
</#function>
|
||||
|
||||
<#macro addToXKeycloakifyMessagesIfMessageKey str>
|
||||
<#if !msg?? || !msg?is_method>
|
||||
<#return>
|
||||
</#if>
|
||||
<#if (str?length > 200)>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local key=removeBrackets(str)>
|
||||
<#if key?length==0>
|
||||
<#return>
|
||||
</#if>
|
||||
<#if !(key?matches(r"^[a-zA-Z0-9-_.]*$"))>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local resolvedMsg=msg(key)>
|
||||
<#if resolvedMsg==key>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local messages=xKeycloakify.messages>
|
||||
<#local messages = messages + { key: resolvedMsg }>
|
||||
<#assign xKeycloakify = xKeycloakify + { "messages": messages }>
|
||||
</#macro>
|
||||
|
||||
<#function removeBrackets str>
|
||||
<#if str?starts_with("${") && str?ends_with("}")>
|
||||
<#return str[2..(str?length-2)]>
|
||||
<#else>
|
||||
<#return str>
|
||||
</#if>
|
||||
</#function>
|
||||
|
||||
<#macro addNonAutomaticallyGatherableMessagesToXKeycloakifyMessages>
|
||||
<#if profile?? && profile?is_hash && profile.attributes?? && profile.attributes?is_enumerable>
|
||||
<#list profile.attributes as attribute>
|
||||
<#if !(
|
||||
attribute.annotations?? && attribute.annotations?is_hash &&
|
||||
attribute.annotations.inputOptionLabelsI18nPrefix?? && attribute.annotations.inputOptionLabelsI18nPrefix?is_string
|
||||
)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#local prefix=attribute.annotations.inputOptionLabelsI18nPrefix>
|
||||
<#if !(
|
||||
attribute.validators?? && attribute.validators?is_hash &&
|
||||
attribute.validators.options?? && attribute.validators.options?is_hash &&
|
||||
attribute.validators.options.options?? && attribute.validators.options.options?is_enumerable
|
||||
)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#list attribute.validators.options.options as option>
|
||||
<#if !option?is_string>
|
||||
<#continue>
|
||||
</#if>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="${prefix}.${option}" />
|
||||
</#list>
|
||||
</#list>
|
||||
</#if>
|
||||
<#if xKeycloakify.pageId == "terms.ftl" || termsAcceptanceRequired?? && termsAcceptanceRequired>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="termsText" />
|
||||
</#if>
|
||||
<#if requiredActions?? && requiredActions?is_enumerable>
|
||||
<#list requiredActions as requiredAction>
|
||||
<#if !requiredAction?is_string>
|
||||
<#continue>
|
||||
</#if>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="requiredAction.${requiredAction}" />
|
||||
</#list>
|
||||
</#if>
|
||||
</#macro>
|
||||
|
||||
</script>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="${xKeycloakify.resourcesPath}/dist/favicon-32x32.png">
|
||||
<script type="module" crossorigin="" src="${xKeycloakify.resourcesPath}/dist/assets/index-6-NnS-wp.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="root"></div>
|
||||
|
||||
|
||||
</body></html>
|
@ -0,0 +1,739 @@
|
||||
<!DOCTYPE html><html><head><script>
|
||||
<#assign xKeycloakify={
|
||||
"messages": {},
|
||||
"pageId": "login-passkeys-conditional-authenticate.ftl",
|
||||
"ftlTemplateFileName": "login-passkeys-conditional-authenticate.ftl",
|
||||
"themeType": "login",
|
||||
"themeName": "keycloakify-starter",
|
||||
"keycloakifyVersion": "11.4.4",
|
||||
"themeVersion": "0.0.0",
|
||||
"resourcesPath": ""
|
||||
}>
|
||||
|
||||
<#if url?? && url?is_hash && url.resourcesPath?? && url.resourcesPath?is_string>
|
||||
<#assign xKeycloakify = xKeycloakify + { "resourcesPath": url.resourcesPath }>
|
||||
</#if>
|
||||
<#if resourceUrl?? && resourceUrl?is_string>
|
||||
<#assign xKeycloakify = xKeycloakify + { "resourcesPath": resourceUrl }>
|
||||
</#if>
|
||||
|
||||
const kcContext = ${toJsDeclarationString(.data_model, [])?no_esc};
|
||||
kcContext.keycloakifyVersion = "${xKeycloakify.keycloakifyVersion}";
|
||||
kcContext.themeVersion = "${xKeycloakify.themeVersion}";
|
||||
kcContext.themeType = "${xKeycloakify.themeType}";
|
||||
kcContext.themeName = "${xKeycloakify.themeName}";
|
||||
kcContext.pageId = "${xKeycloakify.pageId}";
|
||||
kcContext.ftlTemplateFileName = "${xKeycloakify.ftlTemplateFileName}";
|
||||
|
||||
<@addNonAutomaticallyGatherableMessagesToXKeycloakifyMessages />
|
||||
|
||||
kcContext["x-keycloakify"] = {};
|
||||
|
||||
kcContext["x-keycloakify"].resourcesPath = "${xKeycloakify.resourcesPath}";
|
||||
|
||||
{
|
||||
var messages = {};
|
||||
<#list xKeycloakify.messages as key, resolvedMsg>
|
||||
messages["${key}"] = decodeHtmlEntities("${resolvedMsg?js_string}");
|
||||
</#list>
|
||||
kcContext["x-keycloakify"].messages = messages;
|
||||
}
|
||||
|
||||
if(
|
||||
kcContext.url instanceof Object &&
|
||||
typeof kcContext.url.resourcesPath === "string"
|
||||
){
|
||||
kcContext.url.resourcesCommonPath = kcContext.url.resourcesPath + "/resources-common";
|
||||
}
|
||||
|
||||
if( kcContext.messagesPerField ){
|
||||
var existsError_singleFieldName = kcContext.messagesPerField.existsError;
|
||||
kcContext.messagesPerField.existsError = function (){
|
||||
for( let i = 0; i < arguments.length; i++ ){
|
||||
if( existsError_singleFieldName(arguments[i]) ){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
};
|
||||
kcContext.messagesPerField.exists = function (fieldName) {
|
||||
return kcContext.messagesPerField.get(fieldName) !== "";
|
||||
};
|
||||
kcContext.messagesPerField.printIfExists = function (fieldName, text) {
|
||||
return kcContext.messagesPerField.exists(fieldName) ? text : undefined;
|
||||
};
|
||||
kcContext.messagesPerField.getFirstError = function () {
|
||||
for( let i = 0; i < arguments.length; i++ ){
|
||||
const fieldName = arguments[i];
|
||||
if( kcContext.messagesPerField.existsError(fieldName) ){
|
||||
return kcContext.messagesPerField.get(fieldName);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
attributes_to_attributesByName: {
|
||||
if( !kcContext.profile ){
|
||||
break attributes_to_attributesByName;
|
||||
}
|
||||
if( !kcContext.profile.attributes ){
|
||||
break attributes_to_attributesByName;
|
||||
}
|
||||
var attributes = kcContext.profile.attributes;
|
||||
delete kcContext.profile.attributes;
|
||||
kcContext.profile.attributesByName = {};
|
||||
attributes.forEach(function(attribute){
|
||||
kcContext.profile.attributesByName[attribute.name] = attribute;
|
||||
});
|
||||
}
|
||||
|
||||
redirect_to_dev_server: {
|
||||
|
||||
switch(kcContext.themeType){
|
||||
case "login":
|
||||
break redirect_to_dev_server;
|
||||
case "account":
|
||||
if( kcContext.pageId !== "index.ftl" ){
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
break;
|
||||
case "admin":
|
||||
break;
|
||||
default:
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
|
||||
const devSeverPort = kcContext.properties.KEYCLOAKIFY_SPA_DEV_SERVER_PORT;
|
||||
|
||||
if( !devSeverPort ){
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
|
||||
const redirectUrl = new URL(window.location.href);
|
||||
|
||||
redirectUrl.port = devSeverPort;
|
||||
|
||||
delete kcContext.msgJSON;
|
||||
|
||||
console.log(kcContext);
|
||||
|
||||
redirectUrl.searchParams.set("kcContext", encodeURIComponent(JSON.stringify(kcContext)));
|
||||
|
||||
window.location.href = redirectUrl.toString();
|
||||
|
||||
}
|
||||
|
||||
|
||||
window.kcContext = kcContext;
|
||||
|
||||
|
||||
<#if xKeycloakify.themeType == "login" >
|
||||
{
|
||||
const script = document.createElement("script");
|
||||
script.type = "importmap";
|
||||
script.textContent = JSON.stringify({
|
||||
imports: {
|
||||
"rfc4648": kcContext.url.resourcesCommonPath + "/node_modules/rfc4648/lib/rfc4648.js"
|
||||
}
|
||||
}, null, 2);
|
||||
|
||||
document.head.appendChild(script);
|
||||
}
|
||||
</#if>
|
||||
|
||||
function decodeHtmlEntities(htmlStr){
|
||||
var element = decodeHtmlEntities.element;
|
||||
if (!element) {
|
||||
element = document.createElement("textarea");
|
||||
decodeHtmlEntities.element = element;
|
||||
}
|
||||
element.innerHTML = htmlStr;
|
||||
return element.value;
|
||||
}
|
||||
|
||||
<#function toJsDeclarationString object path>
|
||||
<#local isHash = -1>
|
||||
<#attempt>
|
||||
<#local isHash = object?is_hash || object?is_hash_ex>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't evaluate if " + path?join(".") + " is a hash">
|
||||
</#attempt>
|
||||
|
||||
<#if isHash>
|
||||
<#if path?size gt 10>
|
||||
<#return "ABORT: Too many recursive calls, path: " + path?join(".")>
|
||||
</#if>
|
||||
<#local keys = -1>
|
||||
|
||||
<#attempt>
|
||||
<#local keys = object?keys>
|
||||
<#recover>
|
||||
<#return "ABORT: We can't list keys on object">
|
||||
</#attempt>
|
||||
|
||||
<#local outSeq = []>
|
||||
|
||||
<#list keys as key>
|
||||
<#if ["class","declaredConstructors","superclass","declaringClass" ]?seq_contains(key) >
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if (
|
||||
areSamePath(path, ["url"]) &&
|
||||
["loginUpdatePasswordUrl", "loginUpdateProfileUrl", "loginUsernameReminderUrl", "loginUpdateTotpUrl"]?seq_contains(key)
|
||||
) || (
|
||||
key == "updateProfileCtx" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
<#-- https://github.com/keycloakify/keycloakify/pull/65#issuecomment-991896344 (reports with saml-post-form.ftl) -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/91#issue-1212319466 (reports with error.ftl and Kc18) -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/109#issuecomment-1134610163 -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/357 -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/discussions/406#discussioncomment-7514787 -->
|
||||
key == "loginAction" &&
|
||||
areSamePath(path, ["url"]) &&
|
||||
["saml-post-form.ftl", "error.ftl", "info.ftl", "login-oauth-grant.ftl", "logout-confirm.ftl", "login-oauth2-device-verify-user-code.ftl"]?seq_contains(xKeycloakify.pageId) &&
|
||||
!(auth?has_content && auth.showTryAnotherWayLink())
|
||||
) || (
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/362 -->
|
||||
["secretData", "value"]?seq_contains(key) &&
|
||||
areSamePath(path, [ "totp", "otpCredentials", "*" ])
|
||||
) || (
|
||||
["contextData", "idpConfig", "idp", "authenticationSession"]?seq_contains(key) &&
|
||||
areSamePath(path, ["brokerContext"]) &&
|
||||
["login-idp-link-confirm.ftl", "login-idp-link-email.ftl" ]?seq_contains(xKeycloakify.pageId)
|
||||
) || (
|
||||
key == "identityProviderBrokerCtx" &&
|
||||
areSamePath(path, []) &&
|
||||
["login-idp-link-confirm.ftl", "login-idp-link-email.ftl" ]?seq_contains(xKeycloakify.pageId)
|
||||
) || (
|
||||
["masterAdminClient", "delegateForUpdate", "defaultRole", "smtpConfig"]?seq_contains(key) &&
|
||||
areSamePath(path, ["realm"])
|
||||
) || (
|
||||
xKeycloakify.pageId == "error.ftl" &&
|
||||
areSamePath(path, ["realm"]) &&
|
||||
!["name", "displayName", "displayNameHtml", "internationalizationEnabled", "registrationEmailAsUsername" ]?seq_contains(key)
|
||||
) || (
|
||||
xKeycloakify.pageId == "applications.ftl" &&
|
||||
(
|
||||
key == "realm" ||
|
||||
key == "container"
|
||||
) &&
|
||||
isSubpath(path, ["applications", "applications"])
|
||||
) || (
|
||||
key == "delegateForUpdate" &&
|
||||
areSamePath(path, ["user"])
|
||||
) || (
|
||||
<#-- Security audit forwarded by Garth (Gmail) -->
|
||||
key == "saml.signing.private.key" &&
|
||||
areSamePath(path, ["client", "attributes"])
|
||||
) || (
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/534 -->
|
||||
key == "password" &&
|
||||
areSamePath(path, ["login"])
|
||||
) || (
|
||||
<#-- Remove realmAttributes added by https://github.com/jcputney/keycloak-theme-additional-info-extension for peace of mind. -->
|
||||
key == "realmAttributes" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
<#-- attributesByName adds a lot of noise to the output and is not needed, we already have profile.attributes -->
|
||||
key == "attributesByName" &&
|
||||
areSamePath(path, ["profile"])
|
||||
) || (
|
||||
<#-- We already have the attributes in profile speedup the rendering by filtering it out from the register object -->
|
||||
(key == "attributes" || key == "attributesByName") &&
|
||||
areSamePath(path, ["register"])
|
||||
) || (
|
||||
areSamePath(path, ["properties"]) &&
|
||||
(
|
||||
key?starts_with("kc") ||
|
||||
key == "locales" ||
|
||||
key == "import" ||
|
||||
key == "parent" ||
|
||||
key == "meta" ||
|
||||
key == "stylesCommon" ||
|
||||
key == "styles" ||
|
||||
key == "accountResourceProvider"
|
||||
)
|
||||
) || (
|
||||
key == "execution" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
key == "entity" &&
|
||||
areSamePath(path, ["user"])
|
||||
) || (
|
||||
key == "attributes" &&
|
||||
areSamePath(path, ["realm"])
|
||||
) || (
|
||||
xKeycloakify.pageId == "index.ftl" &&
|
||||
xKeycloakify.themeType == "account" &&
|
||||
areSamePath(path, ["realm"]) &&
|
||||
![
|
||||
"name",
|
||||
"registrationEmailAsUsername",
|
||||
"editUsernameAllowed",
|
||||
"isInternationalizationEnabled",
|
||||
"identityFederationEnabled",
|
||||
"userManagedAccessAllowed"
|
||||
]?seq_contains(key)
|
||||
) || (
|
||||
["flowContext", "session", "realm"]?seq_contains(key) &&
|
||||
areSamePath(path, ["social"])
|
||||
)
|
||||
>
|
||||
<#-- <#local outSeq += ["/*" + path?join(".") + "." + key + " excluded*/"]> -->
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#-- https://github.com/keycloakify/keycloakify/discussions/406 -->
|
||||
<#if (
|
||||
key == "attemptedUsername" &&
|
||||
areSamePath(path, ["auth"]) &&
|
||||
[
|
||||
"register.ftl", "terms.ftl", "info.ftl", "login.ftl",
|
||||
"login-update-password.ftl", "login-oauth2-device-verify-user-code.ftl"
|
||||
]?seq_contains(xKeycloakify.pageId)
|
||||
)>
|
||||
<#attempt>
|
||||
<#-- https://github.com/keycloak/keycloak/blob/3a2bf0c04bcde185e497aaa32d0bb7ab7520cf4a/themes/src/main/resources/theme/base/login/template.ftl#L63 -->
|
||||
<#if !(auth?has_content && auth.showUsername() && !auth.showResetCredentials())>
|
||||
<#local outSeq += ["/*" + path?join(".") + "." + key + " excluded*/"]>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Accessing attemptedUsername throwed an exception */"]>
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
|
||||
|
||||
<#attempt>
|
||||
<#if !object[key]??>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Couldn't test if '" + key + "' is available on this object*/"]>
|
||||
<#continue>
|
||||
</#attempt>
|
||||
|
||||
<#local propertyValue = -1>
|
||||
|
||||
<#attempt>
|
||||
<#local propertyValue = object[key]>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Couldn't dereference '" + key + "' on this object*/"]>
|
||||
<#continue>
|
||||
</#attempt>
|
||||
|
||||
<#local recOut = toJsDeclarationString(propertyValue, path + [ key ])>
|
||||
|
||||
<#if recOut?starts_with("ABORT:")>
|
||||
|
||||
<#local errorMessage = recOut?remove_beginning("ABORT:")>
|
||||
|
||||
<#if errorMessage != " It's a method" >
|
||||
<#local outSeq += ["/*" + key + ": " + errorMessage + "*/"]>
|
||||
</#if>
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local outSeq += ['"' + key + '": ' + recOut + ","]>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return (["{"] + outSeq?map(str -> ""?right_pad(4 * (path?size + 1)) + str) + [ ""?right_pad(4 * path?size) + "}"])?join("\n")>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local isMethod = -1>
|
||||
<#attempt>
|
||||
<#local isMethod = object?is_method>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it'sa method.">
|
||||
</#attempt>
|
||||
|
||||
<#if isMethod>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showUsername"])>
|
||||
<#attempt>
|
||||
<#return auth.showUsername()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showUsername()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showResetCredentials"])>
|
||||
<#attempt>
|
||||
<#return auth.showResetCredentials()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showResetCredentials()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showTryAnotherWayLink"])>
|
||||
<#attempt>
|
||||
<#return auth.showTryAnotherWayLink()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showTryAnotherWayLink()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["url", "getLogoutUrl"])>
|
||||
<#local returnValue = -1>
|
||||
<#attempt>
|
||||
<#local returnValue = url.getLogoutUrl()>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate url.getLogoutUrl()">
|
||||
</#attempt>
|
||||
<#return 'function(){ return "' + returnValue + '"; }'>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["totp", "policy", "getAlgorithmKey"])>
|
||||
<#local returnValue = "error">
|
||||
<#if mode?? && mode = "manual">
|
||||
<#attempt>
|
||||
<#local returnValue = totp.policy.getAlgorithmKey()>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate totp.policy.getAlgorithmKey()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
<#return 'function(){ return "' + returnValue + '"; }'>
|
||||
</#if>
|
||||
|
||||
<#assign fieldNames = ["firstName", "lastName", "email", "username", "password", "password-confirm", "global", "totp", "userLabel", "recoveryCodeInput", "termsAccepted"]>
|
||||
<#if profile?? && profile.attributes??>
|
||||
<#list profile.attributes as attribute>
|
||||
<#if fieldNames?seq_contains(attribute.name)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#assign fieldNames += [attribute.name]>
|
||||
</#list>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["messagesPerField", "get"])>
|
||||
|
||||
<#local jsFunctionCode = "function (fieldName) { ">
|
||||
|
||||
<#list fieldNames as fieldName>
|
||||
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/217 -->
|
||||
<#if xKeycloakify.pageId == "login.ftl" >
|
||||
|
||||
<#if fieldName == "username">
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === 'username' || fieldName === 'password' ){ ">
|
||||
|
||||
<#if messagesPerField.exists('username') || messagesPerField.exists('password')>
|
||||
<#local jsFunctionCode += "return kcContext.message && kcContext.message.summary ? kcContext.message.summary : 'error'; ">
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return ''; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if fieldName == "password">
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === '" + fieldName + "'){ ">
|
||||
|
||||
<#if messagesPerField.exists('${fieldName}')>
|
||||
<#local jsFunctionCode += 'return decodeHtmlEntities("' + messagesPerField.get('${fieldName}')?js_string + '"); '>
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return ''; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
</#list>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
<#return jsFunctionCode>
|
||||
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["messagesPerField", "existsError"])>
|
||||
|
||||
<#local jsFunctionCode = "function (fieldName) { ">
|
||||
|
||||
<#list fieldNames as fieldName>
|
||||
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/217 -->
|
||||
<#if xKeycloakify.pageId == "login.ftl" >
|
||||
<#if fieldName == "username">
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === 'username' || fieldName === 'password' ){ ">
|
||||
|
||||
<#if messagesPerField.existsError('username') || messagesPerField.existsError('password')>
|
||||
<#local jsFunctionCode += "return true; ">
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return false; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if fieldName == "password">
|
||||
<#continue>
|
||||
</#if>
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === '" + fieldName + "' ){ ">
|
||||
|
||||
<#if messagesPerField.existsError('${fieldName}')>
|
||||
<#local jsFunctionCode += 'return true; '>
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return false; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
</#list>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
<#return jsFunctionCode>
|
||||
|
||||
</#if>
|
||||
|
||||
<#if xKeycloakify.themeType == "account" && areSamePath(path, ["realm", "isInternationalizationEnabled"])>
|
||||
<#attempt>
|
||||
<#return realm.isInternationalizationEnabled()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate realm.isInternationalizationEnabled()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#return "ABORT: It's a method">
|
||||
</#if>
|
||||
|
||||
<#local isBoolean = -1>
|
||||
<#attempt>
|
||||
<#local isBoolean = object?is_boolean>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a boolean">
|
||||
</#attempt>
|
||||
|
||||
<#if isBoolean>
|
||||
<#return object?c>
|
||||
</#if>
|
||||
|
||||
<#local isEnumerable = -1>
|
||||
<#attempt>
|
||||
<#local isEnumerable = object?is_enumerable>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's an enumerable">
|
||||
</#attempt>
|
||||
|
||||
|
||||
<#if isEnumerable>
|
||||
|
||||
<#local outSeq = []>
|
||||
|
||||
<#local i = 0>
|
||||
|
||||
<#list object as array_item>
|
||||
|
||||
<#if !array_item??>
|
||||
<#local outSeq += ["null,"]>
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local recOut = toJsDeclarationString(array_item, path + [ i ])>
|
||||
|
||||
<#local i = i + 1>
|
||||
|
||||
<#if recOut?starts_with("ABORT:")>
|
||||
|
||||
<#local errorMessage = recOut?remove_beginning("ABORT:")>
|
||||
|
||||
<#if errorMessage != " It's a method" >
|
||||
<#local outSeq += ["/*" + i?string + ": " + errorMessage + "*/"]>
|
||||
</#if>
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local outSeq += [recOut + ","]>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return (["["] + outSeq?map(str -> ""?right_pad(4 * (path?size + 1)) + str) + [ ""?right_pad(4 * path?size) + "]"])?join("\n")>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local isDate = -1>
|
||||
<#attempt>
|
||||
<#local isDate = object?is_date_like>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a date">
|
||||
</#attempt>
|
||||
|
||||
<#if isDate>
|
||||
<#return '"' + object?datetime?iso_utc + '"'>
|
||||
</#if>
|
||||
|
||||
<#local isNumber = -1>
|
||||
<#attempt>
|
||||
<#local isNumber = object?is_number>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a number">
|
||||
</#attempt>
|
||||
|
||||
<#if isNumber>
|
||||
<#return object?c>
|
||||
</#if>
|
||||
|
||||
<#local isString = -1>
|
||||
<#attempt>
|
||||
<#local isString = object?is_string>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a string">
|
||||
</#attempt>
|
||||
|
||||
<#if isString>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str=object />
|
||||
</#if>
|
||||
|
||||
<#attempt>
|
||||
<#return '"' + object?js_string + '"'>;
|
||||
<#recover>
|
||||
</#attempt>
|
||||
|
||||
<#return "ABORT: Couldn't convert into string non hash, non method, non boolean, non number, non enumerable object">
|
||||
|
||||
</#function>
|
||||
<#function isSubpath path searchedPath>
|
||||
|
||||
<#if path?size < searchedPath?size>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#local i=0>
|
||||
|
||||
<#list path as property>
|
||||
|
||||
<#if i == searchedPath?size >
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local searchedProperty=searchedPath[i]>
|
||||
|
||||
<#local i+= 1>
|
||||
|
||||
<#if searchedProperty?is_string && searchedProperty == "*">
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?is_string && !property?is_string>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?is_number && !property?is_number>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?string != property?string>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return true>
|
||||
|
||||
</#function>
|
||||
|
||||
<#function areSamePath path searchedPath>
|
||||
<#return path?size == searchedPath?size && isSubpath(path, searchedPath)>
|
||||
</#function>
|
||||
|
||||
<#macro addToXKeycloakifyMessagesIfMessageKey str>
|
||||
<#if !msg?? || !msg?is_method>
|
||||
<#return>
|
||||
</#if>
|
||||
<#if (str?length > 200)>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local key=removeBrackets(str)>
|
||||
<#if key?length==0>
|
||||
<#return>
|
||||
</#if>
|
||||
<#if !(key?matches(r"^[a-zA-Z0-9-_.]*$"))>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local resolvedMsg=msg(key)>
|
||||
<#if resolvedMsg==key>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local messages=xKeycloakify.messages>
|
||||
<#local messages = messages + { key: resolvedMsg }>
|
||||
<#assign xKeycloakify = xKeycloakify + { "messages": messages }>
|
||||
</#macro>
|
||||
|
||||
<#function removeBrackets str>
|
||||
<#if str?starts_with("${") && str?ends_with("}")>
|
||||
<#return str[2..(str?length-2)]>
|
||||
<#else>
|
||||
<#return str>
|
||||
</#if>
|
||||
</#function>
|
||||
|
||||
<#macro addNonAutomaticallyGatherableMessagesToXKeycloakifyMessages>
|
||||
<#if profile?? && profile?is_hash && profile.attributes?? && profile.attributes?is_enumerable>
|
||||
<#list profile.attributes as attribute>
|
||||
<#if !(
|
||||
attribute.annotations?? && attribute.annotations?is_hash &&
|
||||
attribute.annotations.inputOptionLabelsI18nPrefix?? && attribute.annotations.inputOptionLabelsI18nPrefix?is_string
|
||||
)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#local prefix=attribute.annotations.inputOptionLabelsI18nPrefix>
|
||||
<#if !(
|
||||
attribute.validators?? && attribute.validators?is_hash &&
|
||||
attribute.validators.options?? && attribute.validators.options?is_hash &&
|
||||
attribute.validators.options.options?? && attribute.validators.options.options?is_enumerable
|
||||
)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#list attribute.validators.options.options as option>
|
||||
<#if !option?is_string>
|
||||
<#continue>
|
||||
</#if>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="${prefix}.${option}" />
|
||||
</#list>
|
||||
</#list>
|
||||
</#if>
|
||||
<#if xKeycloakify.pageId == "terms.ftl" || termsAcceptanceRequired?? && termsAcceptanceRequired>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="termsText" />
|
||||
</#if>
|
||||
<#if requiredActions?? && requiredActions?is_enumerable>
|
||||
<#list requiredActions as requiredAction>
|
||||
<#if !requiredAction?is_string>
|
||||
<#continue>
|
||||
</#if>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="requiredAction.${requiredAction}" />
|
||||
</#list>
|
||||
</#if>
|
||||
</#macro>
|
||||
|
||||
</script>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="${xKeycloakify.resourcesPath}/dist/favicon-32x32.png">
|
||||
<script type="module" crossorigin="" src="${xKeycloakify.resourcesPath}/dist/assets/index-6-NnS-wp.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="root"></div>
|
||||
|
||||
|
||||
</body></html>
|
739
dist_keycloak/theme/keycloakify-starter/login/login-password.ftl
Normal file
739
dist_keycloak/theme/keycloakify-starter/login/login-password.ftl
Normal file
@ -0,0 +1,739 @@
|
||||
<!DOCTYPE html><html><head><script>
|
||||
<#assign xKeycloakify={
|
||||
"messages": {},
|
||||
"pageId": "login-password.ftl",
|
||||
"ftlTemplateFileName": "login-password.ftl",
|
||||
"themeType": "login",
|
||||
"themeName": "keycloakify-starter",
|
||||
"keycloakifyVersion": "11.4.4",
|
||||
"themeVersion": "0.0.0",
|
||||
"resourcesPath": ""
|
||||
}>
|
||||
|
||||
<#if url?? && url?is_hash && url.resourcesPath?? && url.resourcesPath?is_string>
|
||||
<#assign xKeycloakify = xKeycloakify + { "resourcesPath": url.resourcesPath }>
|
||||
</#if>
|
||||
<#if resourceUrl?? && resourceUrl?is_string>
|
||||
<#assign xKeycloakify = xKeycloakify + { "resourcesPath": resourceUrl }>
|
||||
</#if>
|
||||
|
||||
const kcContext = ${toJsDeclarationString(.data_model, [])?no_esc};
|
||||
kcContext.keycloakifyVersion = "${xKeycloakify.keycloakifyVersion}";
|
||||
kcContext.themeVersion = "${xKeycloakify.themeVersion}";
|
||||
kcContext.themeType = "${xKeycloakify.themeType}";
|
||||
kcContext.themeName = "${xKeycloakify.themeName}";
|
||||
kcContext.pageId = "${xKeycloakify.pageId}";
|
||||
kcContext.ftlTemplateFileName = "${xKeycloakify.ftlTemplateFileName}";
|
||||
|
||||
<@addNonAutomaticallyGatherableMessagesToXKeycloakifyMessages />
|
||||
|
||||
kcContext["x-keycloakify"] = {};
|
||||
|
||||
kcContext["x-keycloakify"].resourcesPath = "${xKeycloakify.resourcesPath}";
|
||||
|
||||
{
|
||||
var messages = {};
|
||||
<#list xKeycloakify.messages as key, resolvedMsg>
|
||||
messages["${key}"] = decodeHtmlEntities("${resolvedMsg?js_string}");
|
||||
</#list>
|
||||
kcContext["x-keycloakify"].messages = messages;
|
||||
}
|
||||
|
||||
if(
|
||||
kcContext.url instanceof Object &&
|
||||
typeof kcContext.url.resourcesPath === "string"
|
||||
){
|
||||
kcContext.url.resourcesCommonPath = kcContext.url.resourcesPath + "/resources-common";
|
||||
}
|
||||
|
||||
if( kcContext.messagesPerField ){
|
||||
var existsError_singleFieldName = kcContext.messagesPerField.existsError;
|
||||
kcContext.messagesPerField.existsError = function (){
|
||||
for( let i = 0; i < arguments.length; i++ ){
|
||||
if( existsError_singleFieldName(arguments[i]) ){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
};
|
||||
kcContext.messagesPerField.exists = function (fieldName) {
|
||||
return kcContext.messagesPerField.get(fieldName) !== "";
|
||||
};
|
||||
kcContext.messagesPerField.printIfExists = function (fieldName, text) {
|
||||
return kcContext.messagesPerField.exists(fieldName) ? text : undefined;
|
||||
};
|
||||
kcContext.messagesPerField.getFirstError = function () {
|
||||
for( let i = 0; i < arguments.length; i++ ){
|
||||
const fieldName = arguments[i];
|
||||
if( kcContext.messagesPerField.existsError(fieldName) ){
|
||||
return kcContext.messagesPerField.get(fieldName);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
attributes_to_attributesByName: {
|
||||
if( !kcContext.profile ){
|
||||
break attributes_to_attributesByName;
|
||||
}
|
||||
if( !kcContext.profile.attributes ){
|
||||
break attributes_to_attributesByName;
|
||||
}
|
||||
var attributes = kcContext.profile.attributes;
|
||||
delete kcContext.profile.attributes;
|
||||
kcContext.profile.attributesByName = {};
|
||||
attributes.forEach(function(attribute){
|
||||
kcContext.profile.attributesByName[attribute.name] = attribute;
|
||||
});
|
||||
}
|
||||
|
||||
redirect_to_dev_server: {
|
||||
|
||||
switch(kcContext.themeType){
|
||||
case "login":
|
||||
break redirect_to_dev_server;
|
||||
case "account":
|
||||
if( kcContext.pageId !== "index.ftl" ){
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
break;
|
||||
case "admin":
|
||||
break;
|
||||
default:
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
|
||||
const devSeverPort = kcContext.properties.KEYCLOAKIFY_SPA_DEV_SERVER_PORT;
|
||||
|
||||
if( !devSeverPort ){
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
|
||||
const redirectUrl = new URL(window.location.href);
|
||||
|
||||
redirectUrl.port = devSeverPort;
|
||||
|
||||
delete kcContext.msgJSON;
|
||||
|
||||
console.log(kcContext);
|
||||
|
||||
redirectUrl.searchParams.set("kcContext", encodeURIComponent(JSON.stringify(kcContext)));
|
||||
|
||||
window.location.href = redirectUrl.toString();
|
||||
|
||||
}
|
||||
|
||||
|
||||
window.kcContext = kcContext;
|
||||
|
||||
|
||||
<#if xKeycloakify.themeType == "login" >
|
||||
{
|
||||
const script = document.createElement("script");
|
||||
script.type = "importmap";
|
||||
script.textContent = JSON.stringify({
|
||||
imports: {
|
||||
"rfc4648": kcContext.url.resourcesCommonPath + "/node_modules/rfc4648/lib/rfc4648.js"
|
||||
}
|
||||
}, null, 2);
|
||||
|
||||
document.head.appendChild(script);
|
||||
}
|
||||
</#if>
|
||||
|
||||
function decodeHtmlEntities(htmlStr){
|
||||
var element = decodeHtmlEntities.element;
|
||||
if (!element) {
|
||||
element = document.createElement("textarea");
|
||||
decodeHtmlEntities.element = element;
|
||||
}
|
||||
element.innerHTML = htmlStr;
|
||||
return element.value;
|
||||
}
|
||||
|
||||
<#function toJsDeclarationString object path>
|
||||
<#local isHash = -1>
|
||||
<#attempt>
|
||||
<#local isHash = object?is_hash || object?is_hash_ex>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't evaluate if " + path?join(".") + " is a hash">
|
||||
</#attempt>
|
||||
|
||||
<#if isHash>
|
||||
<#if path?size gt 10>
|
||||
<#return "ABORT: Too many recursive calls, path: " + path?join(".")>
|
||||
</#if>
|
||||
<#local keys = -1>
|
||||
|
||||
<#attempt>
|
||||
<#local keys = object?keys>
|
||||
<#recover>
|
||||
<#return "ABORT: We can't list keys on object">
|
||||
</#attempt>
|
||||
|
||||
<#local outSeq = []>
|
||||
|
||||
<#list keys as key>
|
||||
<#if ["class","declaredConstructors","superclass","declaringClass" ]?seq_contains(key) >
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if (
|
||||
areSamePath(path, ["url"]) &&
|
||||
["loginUpdatePasswordUrl", "loginUpdateProfileUrl", "loginUsernameReminderUrl", "loginUpdateTotpUrl"]?seq_contains(key)
|
||||
) || (
|
||||
key == "updateProfileCtx" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
<#-- https://github.com/keycloakify/keycloakify/pull/65#issuecomment-991896344 (reports with saml-post-form.ftl) -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/91#issue-1212319466 (reports with error.ftl and Kc18) -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/109#issuecomment-1134610163 -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/357 -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/discussions/406#discussioncomment-7514787 -->
|
||||
key == "loginAction" &&
|
||||
areSamePath(path, ["url"]) &&
|
||||
["saml-post-form.ftl", "error.ftl", "info.ftl", "login-oauth-grant.ftl", "logout-confirm.ftl", "login-oauth2-device-verify-user-code.ftl"]?seq_contains(xKeycloakify.pageId) &&
|
||||
!(auth?has_content && auth.showTryAnotherWayLink())
|
||||
) || (
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/362 -->
|
||||
["secretData", "value"]?seq_contains(key) &&
|
||||
areSamePath(path, [ "totp", "otpCredentials", "*" ])
|
||||
) || (
|
||||
["contextData", "idpConfig", "idp", "authenticationSession"]?seq_contains(key) &&
|
||||
areSamePath(path, ["brokerContext"]) &&
|
||||
["login-idp-link-confirm.ftl", "login-idp-link-email.ftl" ]?seq_contains(xKeycloakify.pageId)
|
||||
) || (
|
||||
key == "identityProviderBrokerCtx" &&
|
||||
areSamePath(path, []) &&
|
||||
["login-idp-link-confirm.ftl", "login-idp-link-email.ftl" ]?seq_contains(xKeycloakify.pageId)
|
||||
) || (
|
||||
["masterAdminClient", "delegateForUpdate", "defaultRole", "smtpConfig"]?seq_contains(key) &&
|
||||
areSamePath(path, ["realm"])
|
||||
) || (
|
||||
xKeycloakify.pageId == "error.ftl" &&
|
||||
areSamePath(path, ["realm"]) &&
|
||||
!["name", "displayName", "displayNameHtml", "internationalizationEnabled", "registrationEmailAsUsername" ]?seq_contains(key)
|
||||
) || (
|
||||
xKeycloakify.pageId == "applications.ftl" &&
|
||||
(
|
||||
key == "realm" ||
|
||||
key == "container"
|
||||
) &&
|
||||
isSubpath(path, ["applications", "applications"])
|
||||
) || (
|
||||
key == "delegateForUpdate" &&
|
||||
areSamePath(path, ["user"])
|
||||
) || (
|
||||
<#-- Security audit forwarded by Garth (Gmail) -->
|
||||
key == "saml.signing.private.key" &&
|
||||
areSamePath(path, ["client", "attributes"])
|
||||
) || (
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/534 -->
|
||||
key == "password" &&
|
||||
areSamePath(path, ["login"])
|
||||
) || (
|
||||
<#-- Remove realmAttributes added by https://github.com/jcputney/keycloak-theme-additional-info-extension for peace of mind. -->
|
||||
key == "realmAttributes" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
<#-- attributesByName adds a lot of noise to the output and is not needed, we already have profile.attributes -->
|
||||
key == "attributesByName" &&
|
||||
areSamePath(path, ["profile"])
|
||||
) || (
|
||||
<#-- We already have the attributes in profile speedup the rendering by filtering it out from the register object -->
|
||||
(key == "attributes" || key == "attributesByName") &&
|
||||
areSamePath(path, ["register"])
|
||||
) || (
|
||||
areSamePath(path, ["properties"]) &&
|
||||
(
|
||||
key?starts_with("kc") ||
|
||||
key == "locales" ||
|
||||
key == "import" ||
|
||||
key == "parent" ||
|
||||
key == "meta" ||
|
||||
key == "stylesCommon" ||
|
||||
key == "styles" ||
|
||||
key == "accountResourceProvider"
|
||||
)
|
||||
) || (
|
||||
key == "execution" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
key == "entity" &&
|
||||
areSamePath(path, ["user"])
|
||||
) || (
|
||||
key == "attributes" &&
|
||||
areSamePath(path, ["realm"])
|
||||
) || (
|
||||
xKeycloakify.pageId == "index.ftl" &&
|
||||
xKeycloakify.themeType == "account" &&
|
||||
areSamePath(path, ["realm"]) &&
|
||||
![
|
||||
"name",
|
||||
"registrationEmailAsUsername",
|
||||
"editUsernameAllowed",
|
||||
"isInternationalizationEnabled",
|
||||
"identityFederationEnabled",
|
||||
"userManagedAccessAllowed"
|
||||
]?seq_contains(key)
|
||||
) || (
|
||||
["flowContext", "session", "realm"]?seq_contains(key) &&
|
||||
areSamePath(path, ["social"])
|
||||
)
|
||||
>
|
||||
<#-- <#local outSeq += ["/*" + path?join(".") + "." + key + " excluded*/"]> -->
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#-- https://github.com/keycloakify/keycloakify/discussions/406 -->
|
||||
<#if (
|
||||
key == "attemptedUsername" &&
|
||||
areSamePath(path, ["auth"]) &&
|
||||
[
|
||||
"register.ftl", "terms.ftl", "info.ftl", "login.ftl",
|
||||
"login-update-password.ftl", "login-oauth2-device-verify-user-code.ftl"
|
||||
]?seq_contains(xKeycloakify.pageId)
|
||||
)>
|
||||
<#attempt>
|
||||
<#-- https://github.com/keycloak/keycloak/blob/3a2bf0c04bcde185e497aaa32d0bb7ab7520cf4a/themes/src/main/resources/theme/base/login/template.ftl#L63 -->
|
||||
<#if !(auth?has_content && auth.showUsername() && !auth.showResetCredentials())>
|
||||
<#local outSeq += ["/*" + path?join(".") + "." + key + " excluded*/"]>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Accessing attemptedUsername throwed an exception */"]>
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
|
||||
|
||||
<#attempt>
|
||||
<#if !object[key]??>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Couldn't test if '" + key + "' is available on this object*/"]>
|
||||
<#continue>
|
||||
</#attempt>
|
||||
|
||||
<#local propertyValue = -1>
|
||||
|
||||
<#attempt>
|
||||
<#local propertyValue = object[key]>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Couldn't dereference '" + key + "' on this object*/"]>
|
||||
<#continue>
|
||||
</#attempt>
|
||||
|
||||
<#local recOut = toJsDeclarationString(propertyValue, path + [ key ])>
|
||||
|
||||
<#if recOut?starts_with("ABORT:")>
|
||||
|
||||
<#local errorMessage = recOut?remove_beginning("ABORT:")>
|
||||
|
||||
<#if errorMessage != " It's a method" >
|
||||
<#local outSeq += ["/*" + key + ": " + errorMessage + "*/"]>
|
||||
</#if>
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local outSeq += ['"' + key + '": ' + recOut + ","]>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return (["{"] + outSeq?map(str -> ""?right_pad(4 * (path?size + 1)) + str) + [ ""?right_pad(4 * path?size) + "}"])?join("\n")>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local isMethod = -1>
|
||||
<#attempt>
|
||||
<#local isMethod = object?is_method>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it'sa method.">
|
||||
</#attempt>
|
||||
|
||||
<#if isMethod>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showUsername"])>
|
||||
<#attempt>
|
||||
<#return auth.showUsername()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showUsername()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showResetCredentials"])>
|
||||
<#attempt>
|
||||
<#return auth.showResetCredentials()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showResetCredentials()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showTryAnotherWayLink"])>
|
||||
<#attempt>
|
||||
<#return auth.showTryAnotherWayLink()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showTryAnotherWayLink()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["url", "getLogoutUrl"])>
|
||||
<#local returnValue = -1>
|
||||
<#attempt>
|
||||
<#local returnValue = url.getLogoutUrl()>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate url.getLogoutUrl()">
|
||||
</#attempt>
|
||||
<#return 'function(){ return "' + returnValue + '"; }'>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["totp", "policy", "getAlgorithmKey"])>
|
||||
<#local returnValue = "error">
|
||||
<#if mode?? && mode = "manual">
|
||||
<#attempt>
|
||||
<#local returnValue = totp.policy.getAlgorithmKey()>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate totp.policy.getAlgorithmKey()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
<#return 'function(){ return "' + returnValue + '"; }'>
|
||||
</#if>
|
||||
|
||||
<#assign fieldNames = ["firstName", "lastName", "email", "username", "password", "password-confirm", "global", "totp", "userLabel", "recoveryCodeInput", "termsAccepted"]>
|
||||
<#if profile?? && profile.attributes??>
|
||||
<#list profile.attributes as attribute>
|
||||
<#if fieldNames?seq_contains(attribute.name)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#assign fieldNames += [attribute.name]>
|
||||
</#list>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["messagesPerField", "get"])>
|
||||
|
||||
<#local jsFunctionCode = "function (fieldName) { ">
|
||||
|
||||
<#list fieldNames as fieldName>
|
||||
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/217 -->
|
||||
<#if xKeycloakify.pageId == "login.ftl" >
|
||||
|
||||
<#if fieldName == "username">
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === 'username' || fieldName === 'password' ){ ">
|
||||
|
||||
<#if messagesPerField.exists('username') || messagesPerField.exists('password')>
|
||||
<#local jsFunctionCode += "return kcContext.message && kcContext.message.summary ? kcContext.message.summary : 'error'; ">
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return ''; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if fieldName == "password">
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === '" + fieldName + "'){ ">
|
||||
|
||||
<#if messagesPerField.exists('${fieldName}')>
|
||||
<#local jsFunctionCode += 'return decodeHtmlEntities("' + messagesPerField.get('${fieldName}')?js_string + '"); '>
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return ''; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
</#list>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
<#return jsFunctionCode>
|
||||
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["messagesPerField", "existsError"])>
|
||||
|
||||
<#local jsFunctionCode = "function (fieldName) { ">
|
||||
|
||||
<#list fieldNames as fieldName>
|
||||
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/217 -->
|
||||
<#if xKeycloakify.pageId == "login.ftl" >
|
||||
<#if fieldName == "username">
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === 'username' || fieldName === 'password' ){ ">
|
||||
|
||||
<#if messagesPerField.existsError('username') || messagesPerField.existsError('password')>
|
||||
<#local jsFunctionCode += "return true; ">
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return false; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if fieldName == "password">
|
||||
<#continue>
|
||||
</#if>
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === '" + fieldName + "' ){ ">
|
||||
|
||||
<#if messagesPerField.existsError('${fieldName}')>
|
||||
<#local jsFunctionCode += 'return true; '>
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return false; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
</#list>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
<#return jsFunctionCode>
|
||||
|
||||
</#if>
|
||||
|
||||
<#if xKeycloakify.themeType == "account" && areSamePath(path, ["realm", "isInternationalizationEnabled"])>
|
||||
<#attempt>
|
||||
<#return realm.isInternationalizationEnabled()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate realm.isInternationalizationEnabled()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#return "ABORT: It's a method">
|
||||
</#if>
|
||||
|
||||
<#local isBoolean = -1>
|
||||
<#attempt>
|
||||
<#local isBoolean = object?is_boolean>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a boolean">
|
||||
</#attempt>
|
||||
|
||||
<#if isBoolean>
|
||||
<#return object?c>
|
||||
</#if>
|
||||
|
||||
<#local isEnumerable = -1>
|
||||
<#attempt>
|
||||
<#local isEnumerable = object?is_enumerable>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's an enumerable">
|
||||
</#attempt>
|
||||
|
||||
|
||||
<#if isEnumerable>
|
||||
|
||||
<#local outSeq = []>
|
||||
|
||||
<#local i = 0>
|
||||
|
||||
<#list object as array_item>
|
||||
|
||||
<#if !array_item??>
|
||||
<#local outSeq += ["null,"]>
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local recOut = toJsDeclarationString(array_item, path + [ i ])>
|
||||
|
||||
<#local i = i + 1>
|
||||
|
||||
<#if recOut?starts_with("ABORT:")>
|
||||
|
||||
<#local errorMessage = recOut?remove_beginning("ABORT:")>
|
||||
|
||||
<#if errorMessage != " It's a method" >
|
||||
<#local outSeq += ["/*" + i?string + ": " + errorMessage + "*/"]>
|
||||
</#if>
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local outSeq += [recOut + ","]>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return (["["] + outSeq?map(str -> ""?right_pad(4 * (path?size + 1)) + str) + [ ""?right_pad(4 * path?size) + "]"])?join("\n")>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local isDate = -1>
|
||||
<#attempt>
|
||||
<#local isDate = object?is_date_like>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a date">
|
||||
</#attempt>
|
||||
|
||||
<#if isDate>
|
||||
<#return '"' + object?datetime?iso_utc + '"'>
|
||||
</#if>
|
||||
|
||||
<#local isNumber = -1>
|
||||
<#attempt>
|
||||
<#local isNumber = object?is_number>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a number">
|
||||
</#attempt>
|
||||
|
||||
<#if isNumber>
|
||||
<#return object?c>
|
||||
</#if>
|
||||
|
||||
<#local isString = -1>
|
||||
<#attempt>
|
||||
<#local isString = object?is_string>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a string">
|
||||
</#attempt>
|
||||
|
||||
<#if isString>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str=object />
|
||||
</#if>
|
||||
|
||||
<#attempt>
|
||||
<#return '"' + object?js_string + '"'>;
|
||||
<#recover>
|
||||
</#attempt>
|
||||
|
||||
<#return "ABORT: Couldn't convert into string non hash, non method, non boolean, non number, non enumerable object">
|
||||
|
||||
</#function>
|
||||
<#function isSubpath path searchedPath>
|
||||
|
||||
<#if path?size < searchedPath?size>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#local i=0>
|
||||
|
||||
<#list path as property>
|
||||
|
||||
<#if i == searchedPath?size >
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local searchedProperty=searchedPath[i]>
|
||||
|
||||
<#local i+= 1>
|
||||
|
||||
<#if searchedProperty?is_string && searchedProperty == "*">
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?is_string && !property?is_string>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?is_number && !property?is_number>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?string != property?string>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return true>
|
||||
|
||||
</#function>
|
||||
|
||||
<#function areSamePath path searchedPath>
|
||||
<#return path?size == searchedPath?size && isSubpath(path, searchedPath)>
|
||||
</#function>
|
||||
|
||||
<#macro addToXKeycloakifyMessagesIfMessageKey str>
|
||||
<#if !msg?? || !msg?is_method>
|
||||
<#return>
|
||||
</#if>
|
||||
<#if (str?length > 200)>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local key=removeBrackets(str)>
|
||||
<#if key?length==0>
|
||||
<#return>
|
||||
</#if>
|
||||
<#if !(key?matches(r"^[a-zA-Z0-9-_.]*$"))>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local resolvedMsg=msg(key)>
|
||||
<#if resolvedMsg==key>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local messages=xKeycloakify.messages>
|
||||
<#local messages = messages + { key: resolvedMsg }>
|
||||
<#assign xKeycloakify = xKeycloakify + { "messages": messages }>
|
||||
</#macro>
|
||||
|
||||
<#function removeBrackets str>
|
||||
<#if str?starts_with("${") && str?ends_with("}")>
|
||||
<#return str[2..(str?length-2)]>
|
||||
<#else>
|
||||
<#return str>
|
||||
</#if>
|
||||
</#function>
|
||||
|
||||
<#macro addNonAutomaticallyGatherableMessagesToXKeycloakifyMessages>
|
||||
<#if profile?? && profile?is_hash && profile.attributes?? && profile.attributes?is_enumerable>
|
||||
<#list profile.attributes as attribute>
|
||||
<#if !(
|
||||
attribute.annotations?? && attribute.annotations?is_hash &&
|
||||
attribute.annotations.inputOptionLabelsI18nPrefix?? && attribute.annotations.inputOptionLabelsI18nPrefix?is_string
|
||||
)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#local prefix=attribute.annotations.inputOptionLabelsI18nPrefix>
|
||||
<#if !(
|
||||
attribute.validators?? && attribute.validators?is_hash &&
|
||||
attribute.validators.options?? && attribute.validators.options?is_hash &&
|
||||
attribute.validators.options.options?? && attribute.validators.options.options?is_enumerable
|
||||
)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#list attribute.validators.options.options as option>
|
||||
<#if !option?is_string>
|
||||
<#continue>
|
||||
</#if>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="${prefix}.${option}" />
|
||||
</#list>
|
||||
</#list>
|
||||
</#if>
|
||||
<#if xKeycloakify.pageId == "terms.ftl" || termsAcceptanceRequired?? && termsAcceptanceRequired>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="termsText" />
|
||||
</#if>
|
||||
<#if requiredActions?? && requiredActions?is_enumerable>
|
||||
<#list requiredActions as requiredAction>
|
||||
<#if !requiredAction?is_string>
|
||||
<#continue>
|
||||
</#if>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="requiredAction.${requiredAction}" />
|
||||
</#list>
|
||||
</#if>
|
||||
</#macro>
|
||||
|
||||
</script>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="${xKeycloakify.resourcesPath}/dist/favicon-32x32.png">
|
||||
<script type="module" crossorigin="" src="${xKeycloakify.resourcesPath}/dist/assets/index-6-NnS-wp.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="root"></div>
|
||||
|
||||
|
||||
</body></html>
|
@ -0,0 +1,739 @@
|
||||
<!DOCTYPE html><html><head><script>
|
||||
<#assign xKeycloakify={
|
||||
"messages": {},
|
||||
"pageId": "login-recovery-authn-code-config.ftl",
|
||||
"ftlTemplateFileName": "login-recovery-authn-code-config.ftl",
|
||||
"themeType": "login",
|
||||
"themeName": "keycloakify-starter",
|
||||
"keycloakifyVersion": "11.4.4",
|
||||
"themeVersion": "0.0.0",
|
||||
"resourcesPath": ""
|
||||
}>
|
||||
|
||||
<#if url?? && url?is_hash && url.resourcesPath?? && url.resourcesPath?is_string>
|
||||
<#assign xKeycloakify = xKeycloakify + { "resourcesPath": url.resourcesPath }>
|
||||
</#if>
|
||||
<#if resourceUrl?? && resourceUrl?is_string>
|
||||
<#assign xKeycloakify = xKeycloakify + { "resourcesPath": resourceUrl }>
|
||||
</#if>
|
||||
|
||||
const kcContext = ${toJsDeclarationString(.data_model, [])?no_esc};
|
||||
kcContext.keycloakifyVersion = "${xKeycloakify.keycloakifyVersion}";
|
||||
kcContext.themeVersion = "${xKeycloakify.themeVersion}";
|
||||
kcContext.themeType = "${xKeycloakify.themeType}";
|
||||
kcContext.themeName = "${xKeycloakify.themeName}";
|
||||
kcContext.pageId = "${xKeycloakify.pageId}";
|
||||
kcContext.ftlTemplateFileName = "${xKeycloakify.ftlTemplateFileName}";
|
||||
|
||||
<@addNonAutomaticallyGatherableMessagesToXKeycloakifyMessages />
|
||||
|
||||
kcContext["x-keycloakify"] = {};
|
||||
|
||||
kcContext["x-keycloakify"].resourcesPath = "${xKeycloakify.resourcesPath}";
|
||||
|
||||
{
|
||||
var messages = {};
|
||||
<#list xKeycloakify.messages as key, resolvedMsg>
|
||||
messages["${key}"] = decodeHtmlEntities("${resolvedMsg?js_string}");
|
||||
</#list>
|
||||
kcContext["x-keycloakify"].messages = messages;
|
||||
}
|
||||
|
||||
if(
|
||||
kcContext.url instanceof Object &&
|
||||
typeof kcContext.url.resourcesPath === "string"
|
||||
){
|
||||
kcContext.url.resourcesCommonPath = kcContext.url.resourcesPath + "/resources-common";
|
||||
}
|
||||
|
||||
if( kcContext.messagesPerField ){
|
||||
var existsError_singleFieldName = kcContext.messagesPerField.existsError;
|
||||
kcContext.messagesPerField.existsError = function (){
|
||||
for( let i = 0; i < arguments.length; i++ ){
|
||||
if( existsError_singleFieldName(arguments[i]) ){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
};
|
||||
kcContext.messagesPerField.exists = function (fieldName) {
|
||||
return kcContext.messagesPerField.get(fieldName) !== "";
|
||||
};
|
||||
kcContext.messagesPerField.printIfExists = function (fieldName, text) {
|
||||
return kcContext.messagesPerField.exists(fieldName) ? text : undefined;
|
||||
};
|
||||
kcContext.messagesPerField.getFirstError = function () {
|
||||
for( let i = 0; i < arguments.length; i++ ){
|
||||
const fieldName = arguments[i];
|
||||
if( kcContext.messagesPerField.existsError(fieldName) ){
|
||||
return kcContext.messagesPerField.get(fieldName);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
attributes_to_attributesByName: {
|
||||
if( !kcContext.profile ){
|
||||
break attributes_to_attributesByName;
|
||||
}
|
||||
if( !kcContext.profile.attributes ){
|
||||
break attributes_to_attributesByName;
|
||||
}
|
||||
var attributes = kcContext.profile.attributes;
|
||||
delete kcContext.profile.attributes;
|
||||
kcContext.profile.attributesByName = {};
|
||||
attributes.forEach(function(attribute){
|
||||
kcContext.profile.attributesByName[attribute.name] = attribute;
|
||||
});
|
||||
}
|
||||
|
||||
redirect_to_dev_server: {
|
||||
|
||||
switch(kcContext.themeType){
|
||||
case "login":
|
||||
break redirect_to_dev_server;
|
||||
case "account":
|
||||
if( kcContext.pageId !== "index.ftl" ){
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
break;
|
||||
case "admin":
|
||||
break;
|
||||
default:
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
|
||||
const devSeverPort = kcContext.properties.KEYCLOAKIFY_SPA_DEV_SERVER_PORT;
|
||||
|
||||
if( !devSeverPort ){
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
|
||||
const redirectUrl = new URL(window.location.href);
|
||||
|
||||
redirectUrl.port = devSeverPort;
|
||||
|
||||
delete kcContext.msgJSON;
|
||||
|
||||
console.log(kcContext);
|
||||
|
||||
redirectUrl.searchParams.set("kcContext", encodeURIComponent(JSON.stringify(kcContext)));
|
||||
|
||||
window.location.href = redirectUrl.toString();
|
||||
|
||||
}
|
||||
|
||||
|
||||
window.kcContext = kcContext;
|
||||
|
||||
|
||||
<#if xKeycloakify.themeType == "login" >
|
||||
{
|
||||
const script = document.createElement("script");
|
||||
script.type = "importmap";
|
||||
script.textContent = JSON.stringify({
|
||||
imports: {
|
||||
"rfc4648": kcContext.url.resourcesCommonPath + "/node_modules/rfc4648/lib/rfc4648.js"
|
||||
}
|
||||
}, null, 2);
|
||||
|
||||
document.head.appendChild(script);
|
||||
}
|
||||
</#if>
|
||||
|
||||
function decodeHtmlEntities(htmlStr){
|
||||
var element = decodeHtmlEntities.element;
|
||||
if (!element) {
|
||||
element = document.createElement("textarea");
|
||||
decodeHtmlEntities.element = element;
|
||||
}
|
||||
element.innerHTML = htmlStr;
|
||||
return element.value;
|
||||
}
|
||||
|
||||
<#function toJsDeclarationString object path>
|
||||
<#local isHash = -1>
|
||||
<#attempt>
|
||||
<#local isHash = object?is_hash || object?is_hash_ex>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't evaluate if " + path?join(".") + " is a hash">
|
||||
</#attempt>
|
||||
|
||||
<#if isHash>
|
||||
<#if path?size gt 10>
|
||||
<#return "ABORT: Too many recursive calls, path: " + path?join(".")>
|
||||
</#if>
|
||||
<#local keys = -1>
|
||||
|
||||
<#attempt>
|
||||
<#local keys = object?keys>
|
||||
<#recover>
|
||||
<#return "ABORT: We can't list keys on object">
|
||||
</#attempt>
|
||||
|
||||
<#local outSeq = []>
|
||||
|
||||
<#list keys as key>
|
||||
<#if ["class","declaredConstructors","superclass","declaringClass" ]?seq_contains(key) >
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if (
|
||||
areSamePath(path, ["url"]) &&
|
||||
["loginUpdatePasswordUrl", "loginUpdateProfileUrl", "loginUsernameReminderUrl", "loginUpdateTotpUrl"]?seq_contains(key)
|
||||
) || (
|
||||
key == "updateProfileCtx" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
<#-- https://github.com/keycloakify/keycloakify/pull/65#issuecomment-991896344 (reports with saml-post-form.ftl) -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/91#issue-1212319466 (reports with error.ftl and Kc18) -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/109#issuecomment-1134610163 -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/357 -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/discussions/406#discussioncomment-7514787 -->
|
||||
key == "loginAction" &&
|
||||
areSamePath(path, ["url"]) &&
|
||||
["saml-post-form.ftl", "error.ftl", "info.ftl", "login-oauth-grant.ftl", "logout-confirm.ftl", "login-oauth2-device-verify-user-code.ftl"]?seq_contains(xKeycloakify.pageId) &&
|
||||
!(auth?has_content && auth.showTryAnotherWayLink())
|
||||
) || (
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/362 -->
|
||||
["secretData", "value"]?seq_contains(key) &&
|
||||
areSamePath(path, [ "totp", "otpCredentials", "*" ])
|
||||
) || (
|
||||
["contextData", "idpConfig", "idp", "authenticationSession"]?seq_contains(key) &&
|
||||
areSamePath(path, ["brokerContext"]) &&
|
||||
["login-idp-link-confirm.ftl", "login-idp-link-email.ftl" ]?seq_contains(xKeycloakify.pageId)
|
||||
) || (
|
||||
key == "identityProviderBrokerCtx" &&
|
||||
areSamePath(path, []) &&
|
||||
["login-idp-link-confirm.ftl", "login-idp-link-email.ftl" ]?seq_contains(xKeycloakify.pageId)
|
||||
) || (
|
||||
["masterAdminClient", "delegateForUpdate", "defaultRole", "smtpConfig"]?seq_contains(key) &&
|
||||
areSamePath(path, ["realm"])
|
||||
) || (
|
||||
xKeycloakify.pageId == "error.ftl" &&
|
||||
areSamePath(path, ["realm"]) &&
|
||||
!["name", "displayName", "displayNameHtml", "internationalizationEnabled", "registrationEmailAsUsername" ]?seq_contains(key)
|
||||
) || (
|
||||
xKeycloakify.pageId == "applications.ftl" &&
|
||||
(
|
||||
key == "realm" ||
|
||||
key == "container"
|
||||
) &&
|
||||
isSubpath(path, ["applications", "applications"])
|
||||
) || (
|
||||
key == "delegateForUpdate" &&
|
||||
areSamePath(path, ["user"])
|
||||
) || (
|
||||
<#-- Security audit forwarded by Garth (Gmail) -->
|
||||
key == "saml.signing.private.key" &&
|
||||
areSamePath(path, ["client", "attributes"])
|
||||
) || (
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/534 -->
|
||||
key == "password" &&
|
||||
areSamePath(path, ["login"])
|
||||
) || (
|
||||
<#-- Remove realmAttributes added by https://github.com/jcputney/keycloak-theme-additional-info-extension for peace of mind. -->
|
||||
key == "realmAttributes" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
<#-- attributesByName adds a lot of noise to the output and is not needed, we already have profile.attributes -->
|
||||
key == "attributesByName" &&
|
||||
areSamePath(path, ["profile"])
|
||||
) || (
|
||||
<#-- We already have the attributes in profile speedup the rendering by filtering it out from the register object -->
|
||||
(key == "attributes" || key == "attributesByName") &&
|
||||
areSamePath(path, ["register"])
|
||||
) || (
|
||||
areSamePath(path, ["properties"]) &&
|
||||
(
|
||||
key?starts_with("kc") ||
|
||||
key == "locales" ||
|
||||
key == "import" ||
|
||||
key == "parent" ||
|
||||
key == "meta" ||
|
||||
key == "stylesCommon" ||
|
||||
key == "styles" ||
|
||||
key == "accountResourceProvider"
|
||||
)
|
||||
) || (
|
||||
key == "execution" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
key == "entity" &&
|
||||
areSamePath(path, ["user"])
|
||||
) || (
|
||||
key == "attributes" &&
|
||||
areSamePath(path, ["realm"])
|
||||
) || (
|
||||
xKeycloakify.pageId == "index.ftl" &&
|
||||
xKeycloakify.themeType == "account" &&
|
||||
areSamePath(path, ["realm"]) &&
|
||||
![
|
||||
"name",
|
||||
"registrationEmailAsUsername",
|
||||
"editUsernameAllowed",
|
||||
"isInternationalizationEnabled",
|
||||
"identityFederationEnabled",
|
||||
"userManagedAccessAllowed"
|
||||
]?seq_contains(key)
|
||||
) || (
|
||||
["flowContext", "session", "realm"]?seq_contains(key) &&
|
||||
areSamePath(path, ["social"])
|
||||
)
|
||||
>
|
||||
<#-- <#local outSeq += ["/*" + path?join(".") + "." + key + " excluded*/"]> -->
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#-- https://github.com/keycloakify/keycloakify/discussions/406 -->
|
||||
<#if (
|
||||
key == "attemptedUsername" &&
|
||||
areSamePath(path, ["auth"]) &&
|
||||
[
|
||||
"register.ftl", "terms.ftl", "info.ftl", "login.ftl",
|
||||
"login-update-password.ftl", "login-oauth2-device-verify-user-code.ftl"
|
||||
]?seq_contains(xKeycloakify.pageId)
|
||||
)>
|
||||
<#attempt>
|
||||
<#-- https://github.com/keycloak/keycloak/blob/3a2bf0c04bcde185e497aaa32d0bb7ab7520cf4a/themes/src/main/resources/theme/base/login/template.ftl#L63 -->
|
||||
<#if !(auth?has_content && auth.showUsername() && !auth.showResetCredentials())>
|
||||
<#local outSeq += ["/*" + path?join(".") + "." + key + " excluded*/"]>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Accessing attemptedUsername throwed an exception */"]>
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
|
||||
|
||||
<#attempt>
|
||||
<#if !object[key]??>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Couldn't test if '" + key + "' is available on this object*/"]>
|
||||
<#continue>
|
||||
</#attempt>
|
||||
|
||||
<#local propertyValue = -1>
|
||||
|
||||
<#attempt>
|
||||
<#local propertyValue = object[key]>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Couldn't dereference '" + key + "' on this object*/"]>
|
||||
<#continue>
|
||||
</#attempt>
|
||||
|
||||
<#local recOut = toJsDeclarationString(propertyValue, path + [ key ])>
|
||||
|
||||
<#if recOut?starts_with("ABORT:")>
|
||||
|
||||
<#local errorMessage = recOut?remove_beginning("ABORT:")>
|
||||
|
||||
<#if errorMessage != " It's a method" >
|
||||
<#local outSeq += ["/*" + key + ": " + errorMessage + "*/"]>
|
||||
</#if>
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local outSeq += ['"' + key + '": ' + recOut + ","]>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return (["{"] + outSeq?map(str -> ""?right_pad(4 * (path?size + 1)) + str) + [ ""?right_pad(4 * path?size) + "}"])?join("\n")>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local isMethod = -1>
|
||||
<#attempt>
|
||||
<#local isMethod = object?is_method>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it'sa method.">
|
||||
</#attempt>
|
||||
|
||||
<#if isMethod>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showUsername"])>
|
||||
<#attempt>
|
||||
<#return auth.showUsername()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showUsername()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showResetCredentials"])>
|
||||
<#attempt>
|
||||
<#return auth.showResetCredentials()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showResetCredentials()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showTryAnotherWayLink"])>
|
||||
<#attempt>
|
||||
<#return auth.showTryAnotherWayLink()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showTryAnotherWayLink()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["url", "getLogoutUrl"])>
|
||||
<#local returnValue = -1>
|
||||
<#attempt>
|
||||
<#local returnValue = url.getLogoutUrl()>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate url.getLogoutUrl()">
|
||||
</#attempt>
|
||||
<#return 'function(){ return "' + returnValue + '"; }'>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["totp", "policy", "getAlgorithmKey"])>
|
||||
<#local returnValue = "error">
|
||||
<#if mode?? && mode = "manual">
|
||||
<#attempt>
|
||||
<#local returnValue = totp.policy.getAlgorithmKey()>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate totp.policy.getAlgorithmKey()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
<#return 'function(){ return "' + returnValue + '"; }'>
|
||||
</#if>
|
||||
|
||||
<#assign fieldNames = ["firstName", "lastName", "email", "username", "password", "password-confirm", "global", "totp", "userLabel", "recoveryCodeInput", "termsAccepted"]>
|
||||
<#if profile?? && profile.attributes??>
|
||||
<#list profile.attributes as attribute>
|
||||
<#if fieldNames?seq_contains(attribute.name)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#assign fieldNames += [attribute.name]>
|
||||
</#list>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["messagesPerField", "get"])>
|
||||
|
||||
<#local jsFunctionCode = "function (fieldName) { ">
|
||||
|
||||
<#list fieldNames as fieldName>
|
||||
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/217 -->
|
||||
<#if xKeycloakify.pageId == "login.ftl" >
|
||||
|
||||
<#if fieldName == "username">
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === 'username' || fieldName === 'password' ){ ">
|
||||
|
||||
<#if messagesPerField.exists('username') || messagesPerField.exists('password')>
|
||||
<#local jsFunctionCode += "return kcContext.message && kcContext.message.summary ? kcContext.message.summary : 'error'; ">
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return ''; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if fieldName == "password">
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === '" + fieldName + "'){ ">
|
||||
|
||||
<#if messagesPerField.exists('${fieldName}')>
|
||||
<#local jsFunctionCode += 'return decodeHtmlEntities("' + messagesPerField.get('${fieldName}')?js_string + '"); '>
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return ''; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
</#list>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
<#return jsFunctionCode>
|
||||
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["messagesPerField", "existsError"])>
|
||||
|
||||
<#local jsFunctionCode = "function (fieldName) { ">
|
||||
|
||||
<#list fieldNames as fieldName>
|
||||
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/217 -->
|
||||
<#if xKeycloakify.pageId == "login.ftl" >
|
||||
<#if fieldName == "username">
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === 'username' || fieldName === 'password' ){ ">
|
||||
|
||||
<#if messagesPerField.existsError('username') || messagesPerField.existsError('password')>
|
||||
<#local jsFunctionCode += "return true; ">
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return false; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if fieldName == "password">
|
||||
<#continue>
|
||||
</#if>
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === '" + fieldName + "' ){ ">
|
||||
|
||||
<#if messagesPerField.existsError('${fieldName}')>
|
||||
<#local jsFunctionCode += 'return true; '>
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return false; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
</#list>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
<#return jsFunctionCode>
|
||||
|
||||
</#if>
|
||||
|
||||
<#if xKeycloakify.themeType == "account" && areSamePath(path, ["realm", "isInternationalizationEnabled"])>
|
||||
<#attempt>
|
||||
<#return realm.isInternationalizationEnabled()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate realm.isInternationalizationEnabled()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#return "ABORT: It's a method">
|
||||
</#if>
|
||||
|
||||
<#local isBoolean = -1>
|
||||
<#attempt>
|
||||
<#local isBoolean = object?is_boolean>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a boolean">
|
||||
</#attempt>
|
||||
|
||||
<#if isBoolean>
|
||||
<#return object?c>
|
||||
</#if>
|
||||
|
||||
<#local isEnumerable = -1>
|
||||
<#attempt>
|
||||
<#local isEnumerable = object?is_enumerable>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's an enumerable">
|
||||
</#attempt>
|
||||
|
||||
|
||||
<#if isEnumerable>
|
||||
|
||||
<#local outSeq = []>
|
||||
|
||||
<#local i = 0>
|
||||
|
||||
<#list object as array_item>
|
||||
|
||||
<#if !array_item??>
|
||||
<#local outSeq += ["null,"]>
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local recOut = toJsDeclarationString(array_item, path + [ i ])>
|
||||
|
||||
<#local i = i + 1>
|
||||
|
||||
<#if recOut?starts_with("ABORT:")>
|
||||
|
||||
<#local errorMessage = recOut?remove_beginning("ABORT:")>
|
||||
|
||||
<#if errorMessage != " It's a method" >
|
||||
<#local outSeq += ["/*" + i?string + ": " + errorMessage + "*/"]>
|
||||
</#if>
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local outSeq += [recOut + ","]>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return (["["] + outSeq?map(str -> ""?right_pad(4 * (path?size + 1)) + str) + [ ""?right_pad(4 * path?size) + "]"])?join("\n")>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local isDate = -1>
|
||||
<#attempt>
|
||||
<#local isDate = object?is_date_like>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a date">
|
||||
</#attempt>
|
||||
|
||||
<#if isDate>
|
||||
<#return '"' + object?datetime?iso_utc + '"'>
|
||||
</#if>
|
||||
|
||||
<#local isNumber = -1>
|
||||
<#attempt>
|
||||
<#local isNumber = object?is_number>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a number">
|
||||
</#attempt>
|
||||
|
||||
<#if isNumber>
|
||||
<#return object?c>
|
||||
</#if>
|
||||
|
||||
<#local isString = -1>
|
||||
<#attempt>
|
||||
<#local isString = object?is_string>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a string">
|
||||
</#attempt>
|
||||
|
||||
<#if isString>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str=object />
|
||||
</#if>
|
||||
|
||||
<#attempt>
|
||||
<#return '"' + object?js_string + '"'>;
|
||||
<#recover>
|
||||
</#attempt>
|
||||
|
||||
<#return "ABORT: Couldn't convert into string non hash, non method, non boolean, non number, non enumerable object">
|
||||
|
||||
</#function>
|
||||
<#function isSubpath path searchedPath>
|
||||
|
||||
<#if path?size < searchedPath?size>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#local i=0>
|
||||
|
||||
<#list path as property>
|
||||
|
||||
<#if i == searchedPath?size >
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local searchedProperty=searchedPath[i]>
|
||||
|
||||
<#local i+= 1>
|
||||
|
||||
<#if searchedProperty?is_string && searchedProperty == "*">
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?is_string && !property?is_string>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?is_number && !property?is_number>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?string != property?string>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return true>
|
||||
|
||||
</#function>
|
||||
|
||||
<#function areSamePath path searchedPath>
|
||||
<#return path?size == searchedPath?size && isSubpath(path, searchedPath)>
|
||||
</#function>
|
||||
|
||||
<#macro addToXKeycloakifyMessagesIfMessageKey str>
|
||||
<#if !msg?? || !msg?is_method>
|
||||
<#return>
|
||||
</#if>
|
||||
<#if (str?length > 200)>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local key=removeBrackets(str)>
|
||||
<#if key?length==0>
|
||||
<#return>
|
||||
</#if>
|
||||
<#if !(key?matches(r"^[a-zA-Z0-9-_.]*$"))>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local resolvedMsg=msg(key)>
|
||||
<#if resolvedMsg==key>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local messages=xKeycloakify.messages>
|
||||
<#local messages = messages + { key: resolvedMsg }>
|
||||
<#assign xKeycloakify = xKeycloakify + { "messages": messages }>
|
||||
</#macro>
|
||||
|
||||
<#function removeBrackets str>
|
||||
<#if str?starts_with("${") && str?ends_with("}")>
|
||||
<#return str[2..(str?length-2)]>
|
||||
<#else>
|
||||
<#return str>
|
||||
</#if>
|
||||
</#function>
|
||||
|
||||
<#macro addNonAutomaticallyGatherableMessagesToXKeycloakifyMessages>
|
||||
<#if profile?? && profile?is_hash && profile.attributes?? && profile.attributes?is_enumerable>
|
||||
<#list profile.attributes as attribute>
|
||||
<#if !(
|
||||
attribute.annotations?? && attribute.annotations?is_hash &&
|
||||
attribute.annotations.inputOptionLabelsI18nPrefix?? && attribute.annotations.inputOptionLabelsI18nPrefix?is_string
|
||||
)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#local prefix=attribute.annotations.inputOptionLabelsI18nPrefix>
|
||||
<#if !(
|
||||
attribute.validators?? && attribute.validators?is_hash &&
|
||||
attribute.validators.options?? && attribute.validators.options?is_hash &&
|
||||
attribute.validators.options.options?? && attribute.validators.options.options?is_enumerable
|
||||
)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#list attribute.validators.options.options as option>
|
||||
<#if !option?is_string>
|
||||
<#continue>
|
||||
</#if>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="${prefix}.${option}" />
|
||||
</#list>
|
||||
</#list>
|
||||
</#if>
|
||||
<#if xKeycloakify.pageId == "terms.ftl" || termsAcceptanceRequired?? && termsAcceptanceRequired>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="termsText" />
|
||||
</#if>
|
||||
<#if requiredActions?? && requiredActions?is_enumerable>
|
||||
<#list requiredActions as requiredAction>
|
||||
<#if !requiredAction?is_string>
|
||||
<#continue>
|
||||
</#if>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="requiredAction.${requiredAction}" />
|
||||
</#list>
|
||||
</#if>
|
||||
</#macro>
|
||||
|
||||
</script>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="${xKeycloakify.resourcesPath}/dist/favicon-32x32.png">
|
||||
<script type="module" crossorigin="" src="${xKeycloakify.resourcesPath}/dist/assets/index-6-NnS-wp.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="root"></div>
|
||||
|
||||
|
||||
</body></html>
|
@ -0,0 +1,739 @@
|
||||
<!DOCTYPE html><html><head><script>
|
||||
<#assign xKeycloakify={
|
||||
"messages": {},
|
||||
"pageId": "login-recovery-authn-code-input.ftl",
|
||||
"ftlTemplateFileName": "login-recovery-authn-code-input.ftl",
|
||||
"themeType": "login",
|
||||
"themeName": "keycloakify-starter",
|
||||
"keycloakifyVersion": "11.4.4",
|
||||
"themeVersion": "0.0.0",
|
||||
"resourcesPath": ""
|
||||
}>
|
||||
|
||||
<#if url?? && url?is_hash && url.resourcesPath?? && url.resourcesPath?is_string>
|
||||
<#assign xKeycloakify = xKeycloakify + { "resourcesPath": url.resourcesPath }>
|
||||
</#if>
|
||||
<#if resourceUrl?? && resourceUrl?is_string>
|
||||
<#assign xKeycloakify = xKeycloakify + { "resourcesPath": resourceUrl }>
|
||||
</#if>
|
||||
|
||||
const kcContext = ${toJsDeclarationString(.data_model, [])?no_esc};
|
||||
kcContext.keycloakifyVersion = "${xKeycloakify.keycloakifyVersion}";
|
||||
kcContext.themeVersion = "${xKeycloakify.themeVersion}";
|
||||
kcContext.themeType = "${xKeycloakify.themeType}";
|
||||
kcContext.themeName = "${xKeycloakify.themeName}";
|
||||
kcContext.pageId = "${xKeycloakify.pageId}";
|
||||
kcContext.ftlTemplateFileName = "${xKeycloakify.ftlTemplateFileName}";
|
||||
|
||||
<@addNonAutomaticallyGatherableMessagesToXKeycloakifyMessages />
|
||||
|
||||
kcContext["x-keycloakify"] = {};
|
||||
|
||||
kcContext["x-keycloakify"].resourcesPath = "${xKeycloakify.resourcesPath}";
|
||||
|
||||
{
|
||||
var messages = {};
|
||||
<#list xKeycloakify.messages as key, resolvedMsg>
|
||||
messages["${key}"] = decodeHtmlEntities("${resolvedMsg?js_string}");
|
||||
</#list>
|
||||
kcContext["x-keycloakify"].messages = messages;
|
||||
}
|
||||
|
||||
if(
|
||||
kcContext.url instanceof Object &&
|
||||
typeof kcContext.url.resourcesPath === "string"
|
||||
){
|
||||
kcContext.url.resourcesCommonPath = kcContext.url.resourcesPath + "/resources-common";
|
||||
}
|
||||
|
||||
if( kcContext.messagesPerField ){
|
||||
var existsError_singleFieldName = kcContext.messagesPerField.existsError;
|
||||
kcContext.messagesPerField.existsError = function (){
|
||||
for( let i = 0; i < arguments.length; i++ ){
|
||||
if( existsError_singleFieldName(arguments[i]) ){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
};
|
||||
kcContext.messagesPerField.exists = function (fieldName) {
|
||||
return kcContext.messagesPerField.get(fieldName) !== "";
|
||||
};
|
||||
kcContext.messagesPerField.printIfExists = function (fieldName, text) {
|
||||
return kcContext.messagesPerField.exists(fieldName) ? text : undefined;
|
||||
};
|
||||
kcContext.messagesPerField.getFirstError = function () {
|
||||
for( let i = 0; i < arguments.length; i++ ){
|
||||
const fieldName = arguments[i];
|
||||
if( kcContext.messagesPerField.existsError(fieldName) ){
|
||||
return kcContext.messagesPerField.get(fieldName);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
attributes_to_attributesByName: {
|
||||
if( !kcContext.profile ){
|
||||
break attributes_to_attributesByName;
|
||||
}
|
||||
if( !kcContext.profile.attributes ){
|
||||
break attributes_to_attributesByName;
|
||||
}
|
||||
var attributes = kcContext.profile.attributes;
|
||||
delete kcContext.profile.attributes;
|
||||
kcContext.profile.attributesByName = {};
|
||||
attributes.forEach(function(attribute){
|
||||
kcContext.profile.attributesByName[attribute.name] = attribute;
|
||||
});
|
||||
}
|
||||
|
||||
redirect_to_dev_server: {
|
||||
|
||||
switch(kcContext.themeType){
|
||||
case "login":
|
||||
break redirect_to_dev_server;
|
||||
case "account":
|
||||
if( kcContext.pageId !== "index.ftl" ){
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
break;
|
||||
case "admin":
|
||||
break;
|
||||
default:
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
|
||||
const devSeverPort = kcContext.properties.KEYCLOAKIFY_SPA_DEV_SERVER_PORT;
|
||||
|
||||
if( !devSeverPort ){
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
|
||||
const redirectUrl = new URL(window.location.href);
|
||||
|
||||
redirectUrl.port = devSeverPort;
|
||||
|
||||
delete kcContext.msgJSON;
|
||||
|
||||
console.log(kcContext);
|
||||
|
||||
redirectUrl.searchParams.set("kcContext", encodeURIComponent(JSON.stringify(kcContext)));
|
||||
|
||||
window.location.href = redirectUrl.toString();
|
||||
|
||||
}
|
||||
|
||||
|
||||
window.kcContext = kcContext;
|
||||
|
||||
|
||||
<#if xKeycloakify.themeType == "login" >
|
||||
{
|
||||
const script = document.createElement("script");
|
||||
script.type = "importmap";
|
||||
script.textContent = JSON.stringify({
|
||||
imports: {
|
||||
"rfc4648": kcContext.url.resourcesCommonPath + "/node_modules/rfc4648/lib/rfc4648.js"
|
||||
}
|
||||
}, null, 2);
|
||||
|
||||
document.head.appendChild(script);
|
||||
}
|
||||
</#if>
|
||||
|
||||
function decodeHtmlEntities(htmlStr){
|
||||
var element = decodeHtmlEntities.element;
|
||||
if (!element) {
|
||||
element = document.createElement("textarea");
|
||||
decodeHtmlEntities.element = element;
|
||||
}
|
||||
element.innerHTML = htmlStr;
|
||||
return element.value;
|
||||
}
|
||||
|
||||
<#function toJsDeclarationString object path>
|
||||
<#local isHash = -1>
|
||||
<#attempt>
|
||||
<#local isHash = object?is_hash || object?is_hash_ex>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't evaluate if " + path?join(".") + " is a hash">
|
||||
</#attempt>
|
||||
|
||||
<#if isHash>
|
||||
<#if path?size gt 10>
|
||||
<#return "ABORT: Too many recursive calls, path: " + path?join(".")>
|
||||
</#if>
|
||||
<#local keys = -1>
|
||||
|
||||
<#attempt>
|
||||
<#local keys = object?keys>
|
||||
<#recover>
|
||||
<#return "ABORT: We can't list keys on object">
|
||||
</#attempt>
|
||||
|
||||
<#local outSeq = []>
|
||||
|
||||
<#list keys as key>
|
||||
<#if ["class","declaredConstructors","superclass","declaringClass" ]?seq_contains(key) >
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if (
|
||||
areSamePath(path, ["url"]) &&
|
||||
["loginUpdatePasswordUrl", "loginUpdateProfileUrl", "loginUsernameReminderUrl", "loginUpdateTotpUrl"]?seq_contains(key)
|
||||
) || (
|
||||
key == "updateProfileCtx" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
<#-- https://github.com/keycloakify/keycloakify/pull/65#issuecomment-991896344 (reports with saml-post-form.ftl) -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/91#issue-1212319466 (reports with error.ftl and Kc18) -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/109#issuecomment-1134610163 -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/357 -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/discussions/406#discussioncomment-7514787 -->
|
||||
key == "loginAction" &&
|
||||
areSamePath(path, ["url"]) &&
|
||||
["saml-post-form.ftl", "error.ftl", "info.ftl", "login-oauth-grant.ftl", "logout-confirm.ftl", "login-oauth2-device-verify-user-code.ftl"]?seq_contains(xKeycloakify.pageId) &&
|
||||
!(auth?has_content && auth.showTryAnotherWayLink())
|
||||
) || (
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/362 -->
|
||||
["secretData", "value"]?seq_contains(key) &&
|
||||
areSamePath(path, [ "totp", "otpCredentials", "*" ])
|
||||
) || (
|
||||
["contextData", "idpConfig", "idp", "authenticationSession"]?seq_contains(key) &&
|
||||
areSamePath(path, ["brokerContext"]) &&
|
||||
["login-idp-link-confirm.ftl", "login-idp-link-email.ftl" ]?seq_contains(xKeycloakify.pageId)
|
||||
) || (
|
||||
key == "identityProviderBrokerCtx" &&
|
||||
areSamePath(path, []) &&
|
||||
["login-idp-link-confirm.ftl", "login-idp-link-email.ftl" ]?seq_contains(xKeycloakify.pageId)
|
||||
) || (
|
||||
["masterAdminClient", "delegateForUpdate", "defaultRole", "smtpConfig"]?seq_contains(key) &&
|
||||
areSamePath(path, ["realm"])
|
||||
) || (
|
||||
xKeycloakify.pageId == "error.ftl" &&
|
||||
areSamePath(path, ["realm"]) &&
|
||||
!["name", "displayName", "displayNameHtml", "internationalizationEnabled", "registrationEmailAsUsername" ]?seq_contains(key)
|
||||
) || (
|
||||
xKeycloakify.pageId == "applications.ftl" &&
|
||||
(
|
||||
key == "realm" ||
|
||||
key == "container"
|
||||
) &&
|
||||
isSubpath(path, ["applications", "applications"])
|
||||
) || (
|
||||
key == "delegateForUpdate" &&
|
||||
areSamePath(path, ["user"])
|
||||
) || (
|
||||
<#-- Security audit forwarded by Garth (Gmail) -->
|
||||
key == "saml.signing.private.key" &&
|
||||
areSamePath(path, ["client", "attributes"])
|
||||
) || (
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/534 -->
|
||||
key == "password" &&
|
||||
areSamePath(path, ["login"])
|
||||
) || (
|
||||
<#-- Remove realmAttributes added by https://github.com/jcputney/keycloak-theme-additional-info-extension for peace of mind. -->
|
||||
key == "realmAttributes" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
<#-- attributesByName adds a lot of noise to the output and is not needed, we already have profile.attributes -->
|
||||
key == "attributesByName" &&
|
||||
areSamePath(path, ["profile"])
|
||||
) || (
|
||||
<#-- We already have the attributes in profile speedup the rendering by filtering it out from the register object -->
|
||||
(key == "attributes" || key == "attributesByName") &&
|
||||
areSamePath(path, ["register"])
|
||||
) || (
|
||||
areSamePath(path, ["properties"]) &&
|
||||
(
|
||||
key?starts_with("kc") ||
|
||||
key == "locales" ||
|
||||
key == "import" ||
|
||||
key == "parent" ||
|
||||
key == "meta" ||
|
||||
key == "stylesCommon" ||
|
||||
key == "styles" ||
|
||||
key == "accountResourceProvider"
|
||||
)
|
||||
) || (
|
||||
key == "execution" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
key == "entity" &&
|
||||
areSamePath(path, ["user"])
|
||||
) || (
|
||||
key == "attributes" &&
|
||||
areSamePath(path, ["realm"])
|
||||
) || (
|
||||
xKeycloakify.pageId == "index.ftl" &&
|
||||
xKeycloakify.themeType == "account" &&
|
||||
areSamePath(path, ["realm"]) &&
|
||||
![
|
||||
"name",
|
||||
"registrationEmailAsUsername",
|
||||
"editUsernameAllowed",
|
||||
"isInternationalizationEnabled",
|
||||
"identityFederationEnabled",
|
||||
"userManagedAccessAllowed"
|
||||
]?seq_contains(key)
|
||||
) || (
|
||||
["flowContext", "session", "realm"]?seq_contains(key) &&
|
||||
areSamePath(path, ["social"])
|
||||
)
|
||||
>
|
||||
<#-- <#local outSeq += ["/*" + path?join(".") + "." + key + " excluded*/"]> -->
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#-- https://github.com/keycloakify/keycloakify/discussions/406 -->
|
||||
<#if (
|
||||
key == "attemptedUsername" &&
|
||||
areSamePath(path, ["auth"]) &&
|
||||
[
|
||||
"register.ftl", "terms.ftl", "info.ftl", "login.ftl",
|
||||
"login-update-password.ftl", "login-oauth2-device-verify-user-code.ftl"
|
||||
]?seq_contains(xKeycloakify.pageId)
|
||||
)>
|
||||
<#attempt>
|
||||
<#-- https://github.com/keycloak/keycloak/blob/3a2bf0c04bcde185e497aaa32d0bb7ab7520cf4a/themes/src/main/resources/theme/base/login/template.ftl#L63 -->
|
||||
<#if !(auth?has_content && auth.showUsername() && !auth.showResetCredentials())>
|
||||
<#local outSeq += ["/*" + path?join(".") + "." + key + " excluded*/"]>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Accessing attemptedUsername throwed an exception */"]>
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
|
||||
|
||||
<#attempt>
|
||||
<#if !object[key]??>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Couldn't test if '" + key + "' is available on this object*/"]>
|
||||
<#continue>
|
||||
</#attempt>
|
||||
|
||||
<#local propertyValue = -1>
|
||||
|
||||
<#attempt>
|
||||
<#local propertyValue = object[key]>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Couldn't dereference '" + key + "' on this object*/"]>
|
||||
<#continue>
|
||||
</#attempt>
|
||||
|
||||
<#local recOut = toJsDeclarationString(propertyValue, path + [ key ])>
|
||||
|
||||
<#if recOut?starts_with("ABORT:")>
|
||||
|
||||
<#local errorMessage = recOut?remove_beginning("ABORT:")>
|
||||
|
||||
<#if errorMessage != " It's a method" >
|
||||
<#local outSeq += ["/*" + key + ": " + errorMessage + "*/"]>
|
||||
</#if>
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local outSeq += ['"' + key + '": ' + recOut + ","]>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return (["{"] + outSeq?map(str -> ""?right_pad(4 * (path?size + 1)) + str) + [ ""?right_pad(4 * path?size) + "}"])?join("\n")>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local isMethod = -1>
|
||||
<#attempt>
|
||||
<#local isMethod = object?is_method>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it'sa method.">
|
||||
</#attempt>
|
||||
|
||||
<#if isMethod>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showUsername"])>
|
||||
<#attempt>
|
||||
<#return auth.showUsername()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showUsername()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showResetCredentials"])>
|
||||
<#attempt>
|
||||
<#return auth.showResetCredentials()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showResetCredentials()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showTryAnotherWayLink"])>
|
||||
<#attempt>
|
||||
<#return auth.showTryAnotherWayLink()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showTryAnotherWayLink()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["url", "getLogoutUrl"])>
|
||||
<#local returnValue = -1>
|
||||
<#attempt>
|
||||
<#local returnValue = url.getLogoutUrl()>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate url.getLogoutUrl()">
|
||||
</#attempt>
|
||||
<#return 'function(){ return "' + returnValue + '"; }'>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["totp", "policy", "getAlgorithmKey"])>
|
||||
<#local returnValue = "error">
|
||||
<#if mode?? && mode = "manual">
|
||||
<#attempt>
|
||||
<#local returnValue = totp.policy.getAlgorithmKey()>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate totp.policy.getAlgorithmKey()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
<#return 'function(){ return "' + returnValue + '"; }'>
|
||||
</#if>
|
||||
|
||||
<#assign fieldNames = ["firstName", "lastName", "email", "username", "password", "password-confirm", "global", "totp", "userLabel", "recoveryCodeInput", "termsAccepted"]>
|
||||
<#if profile?? && profile.attributes??>
|
||||
<#list profile.attributes as attribute>
|
||||
<#if fieldNames?seq_contains(attribute.name)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#assign fieldNames += [attribute.name]>
|
||||
</#list>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["messagesPerField", "get"])>
|
||||
|
||||
<#local jsFunctionCode = "function (fieldName) { ">
|
||||
|
||||
<#list fieldNames as fieldName>
|
||||
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/217 -->
|
||||
<#if xKeycloakify.pageId == "login.ftl" >
|
||||
|
||||
<#if fieldName == "username">
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === 'username' || fieldName === 'password' ){ ">
|
||||
|
||||
<#if messagesPerField.exists('username') || messagesPerField.exists('password')>
|
||||
<#local jsFunctionCode += "return kcContext.message && kcContext.message.summary ? kcContext.message.summary : 'error'; ">
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return ''; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if fieldName == "password">
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === '" + fieldName + "'){ ">
|
||||
|
||||
<#if messagesPerField.exists('${fieldName}')>
|
||||
<#local jsFunctionCode += 'return decodeHtmlEntities("' + messagesPerField.get('${fieldName}')?js_string + '"); '>
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return ''; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
</#list>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
<#return jsFunctionCode>
|
||||
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["messagesPerField", "existsError"])>
|
||||
|
||||
<#local jsFunctionCode = "function (fieldName) { ">
|
||||
|
||||
<#list fieldNames as fieldName>
|
||||
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/217 -->
|
||||
<#if xKeycloakify.pageId == "login.ftl" >
|
||||
<#if fieldName == "username">
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === 'username' || fieldName === 'password' ){ ">
|
||||
|
||||
<#if messagesPerField.existsError('username') || messagesPerField.existsError('password')>
|
||||
<#local jsFunctionCode += "return true; ">
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return false; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if fieldName == "password">
|
||||
<#continue>
|
||||
</#if>
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === '" + fieldName + "' ){ ">
|
||||
|
||||
<#if messagesPerField.existsError('${fieldName}')>
|
||||
<#local jsFunctionCode += 'return true; '>
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return false; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
</#list>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
<#return jsFunctionCode>
|
||||
|
||||
</#if>
|
||||
|
||||
<#if xKeycloakify.themeType == "account" && areSamePath(path, ["realm", "isInternationalizationEnabled"])>
|
||||
<#attempt>
|
||||
<#return realm.isInternationalizationEnabled()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate realm.isInternationalizationEnabled()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#return "ABORT: It's a method">
|
||||
</#if>
|
||||
|
||||
<#local isBoolean = -1>
|
||||
<#attempt>
|
||||
<#local isBoolean = object?is_boolean>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a boolean">
|
||||
</#attempt>
|
||||
|
||||
<#if isBoolean>
|
||||
<#return object?c>
|
||||
</#if>
|
||||
|
||||
<#local isEnumerable = -1>
|
||||
<#attempt>
|
||||
<#local isEnumerable = object?is_enumerable>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's an enumerable">
|
||||
</#attempt>
|
||||
|
||||
|
||||
<#if isEnumerable>
|
||||
|
||||
<#local outSeq = []>
|
||||
|
||||
<#local i = 0>
|
||||
|
||||
<#list object as array_item>
|
||||
|
||||
<#if !array_item??>
|
||||
<#local outSeq += ["null,"]>
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local recOut = toJsDeclarationString(array_item, path + [ i ])>
|
||||
|
||||
<#local i = i + 1>
|
||||
|
||||
<#if recOut?starts_with("ABORT:")>
|
||||
|
||||
<#local errorMessage = recOut?remove_beginning("ABORT:")>
|
||||
|
||||
<#if errorMessage != " It's a method" >
|
||||
<#local outSeq += ["/*" + i?string + ": " + errorMessage + "*/"]>
|
||||
</#if>
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local outSeq += [recOut + ","]>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return (["["] + outSeq?map(str -> ""?right_pad(4 * (path?size + 1)) + str) + [ ""?right_pad(4 * path?size) + "]"])?join("\n")>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local isDate = -1>
|
||||
<#attempt>
|
||||
<#local isDate = object?is_date_like>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a date">
|
||||
</#attempt>
|
||||
|
||||
<#if isDate>
|
||||
<#return '"' + object?datetime?iso_utc + '"'>
|
||||
</#if>
|
||||
|
||||
<#local isNumber = -1>
|
||||
<#attempt>
|
||||
<#local isNumber = object?is_number>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a number">
|
||||
</#attempt>
|
||||
|
||||
<#if isNumber>
|
||||
<#return object?c>
|
||||
</#if>
|
||||
|
||||
<#local isString = -1>
|
||||
<#attempt>
|
||||
<#local isString = object?is_string>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a string">
|
||||
</#attempt>
|
||||
|
||||
<#if isString>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str=object />
|
||||
</#if>
|
||||
|
||||
<#attempt>
|
||||
<#return '"' + object?js_string + '"'>;
|
||||
<#recover>
|
||||
</#attempt>
|
||||
|
||||
<#return "ABORT: Couldn't convert into string non hash, non method, non boolean, non number, non enumerable object">
|
||||
|
||||
</#function>
|
||||
<#function isSubpath path searchedPath>
|
||||
|
||||
<#if path?size < searchedPath?size>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#local i=0>
|
||||
|
||||
<#list path as property>
|
||||
|
||||
<#if i == searchedPath?size >
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local searchedProperty=searchedPath[i]>
|
||||
|
||||
<#local i+= 1>
|
||||
|
||||
<#if searchedProperty?is_string && searchedProperty == "*">
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?is_string && !property?is_string>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?is_number && !property?is_number>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?string != property?string>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return true>
|
||||
|
||||
</#function>
|
||||
|
||||
<#function areSamePath path searchedPath>
|
||||
<#return path?size == searchedPath?size && isSubpath(path, searchedPath)>
|
||||
</#function>
|
||||
|
||||
<#macro addToXKeycloakifyMessagesIfMessageKey str>
|
||||
<#if !msg?? || !msg?is_method>
|
||||
<#return>
|
||||
</#if>
|
||||
<#if (str?length > 200)>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local key=removeBrackets(str)>
|
||||
<#if key?length==0>
|
||||
<#return>
|
||||
</#if>
|
||||
<#if !(key?matches(r"^[a-zA-Z0-9-_.]*$"))>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local resolvedMsg=msg(key)>
|
||||
<#if resolvedMsg==key>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local messages=xKeycloakify.messages>
|
||||
<#local messages = messages + { key: resolvedMsg }>
|
||||
<#assign xKeycloakify = xKeycloakify + { "messages": messages }>
|
||||
</#macro>
|
||||
|
||||
<#function removeBrackets str>
|
||||
<#if str?starts_with("${") && str?ends_with("}")>
|
||||
<#return str[2..(str?length-2)]>
|
||||
<#else>
|
||||
<#return str>
|
||||
</#if>
|
||||
</#function>
|
||||
|
||||
<#macro addNonAutomaticallyGatherableMessagesToXKeycloakifyMessages>
|
||||
<#if profile?? && profile?is_hash && profile.attributes?? && profile.attributes?is_enumerable>
|
||||
<#list profile.attributes as attribute>
|
||||
<#if !(
|
||||
attribute.annotations?? && attribute.annotations?is_hash &&
|
||||
attribute.annotations.inputOptionLabelsI18nPrefix?? && attribute.annotations.inputOptionLabelsI18nPrefix?is_string
|
||||
)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#local prefix=attribute.annotations.inputOptionLabelsI18nPrefix>
|
||||
<#if !(
|
||||
attribute.validators?? && attribute.validators?is_hash &&
|
||||
attribute.validators.options?? && attribute.validators.options?is_hash &&
|
||||
attribute.validators.options.options?? && attribute.validators.options.options?is_enumerable
|
||||
)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#list attribute.validators.options.options as option>
|
||||
<#if !option?is_string>
|
||||
<#continue>
|
||||
</#if>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="${prefix}.${option}" />
|
||||
</#list>
|
||||
</#list>
|
||||
</#if>
|
||||
<#if xKeycloakify.pageId == "terms.ftl" || termsAcceptanceRequired?? && termsAcceptanceRequired>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="termsText" />
|
||||
</#if>
|
||||
<#if requiredActions?? && requiredActions?is_enumerable>
|
||||
<#list requiredActions as requiredAction>
|
||||
<#if !requiredAction?is_string>
|
||||
<#continue>
|
||||
</#if>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="requiredAction.${requiredAction}" />
|
||||
</#list>
|
||||
</#if>
|
||||
</#macro>
|
||||
|
||||
</script>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="${xKeycloakify.resourcesPath}/dist/favicon-32x32.png">
|
||||
<script type="module" crossorigin="" src="${xKeycloakify.resourcesPath}/dist/assets/index-6-NnS-wp.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="root"></div>
|
||||
|
||||
|
||||
</body></html>
|
@ -0,0 +1,739 @@
|
||||
<!DOCTYPE html><html><head><script>
|
||||
<#assign xKeycloakify={
|
||||
"messages": {},
|
||||
"pageId": "login-reset-otp.ftl",
|
||||
"ftlTemplateFileName": "login-reset-otp.ftl",
|
||||
"themeType": "login",
|
||||
"themeName": "keycloakify-starter",
|
||||
"keycloakifyVersion": "11.4.4",
|
||||
"themeVersion": "0.0.0",
|
||||
"resourcesPath": ""
|
||||
}>
|
||||
|
||||
<#if url?? && url?is_hash && url.resourcesPath?? && url.resourcesPath?is_string>
|
||||
<#assign xKeycloakify = xKeycloakify + { "resourcesPath": url.resourcesPath }>
|
||||
</#if>
|
||||
<#if resourceUrl?? && resourceUrl?is_string>
|
||||
<#assign xKeycloakify = xKeycloakify + { "resourcesPath": resourceUrl }>
|
||||
</#if>
|
||||
|
||||
const kcContext = ${toJsDeclarationString(.data_model, [])?no_esc};
|
||||
kcContext.keycloakifyVersion = "${xKeycloakify.keycloakifyVersion}";
|
||||
kcContext.themeVersion = "${xKeycloakify.themeVersion}";
|
||||
kcContext.themeType = "${xKeycloakify.themeType}";
|
||||
kcContext.themeName = "${xKeycloakify.themeName}";
|
||||
kcContext.pageId = "${xKeycloakify.pageId}";
|
||||
kcContext.ftlTemplateFileName = "${xKeycloakify.ftlTemplateFileName}";
|
||||
|
||||
<@addNonAutomaticallyGatherableMessagesToXKeycloakifyMessages />
|
||||
|
||||
kcContext["x-keycloakify"] = {};
|
||||
|
||||
kcContext["x-keycloakify"].resourcesPath = "${xKeycloakify.resourcesPath}";
|
||||
|
||||
{
|
||||
var messages = {};
|
||||
<#list xKeycloakify.messages as key, resolvedMsg>
|
||||
messages["${key}"] = decodeHtmlEntities("${resolvedMsg?js_string}");
|
||||
</#list>
|
||||
kcContext["x-keycloakify"].messages = messages;
|
||||
}
|
||||
|
||||
if(
|
||||
kcContext.url instanceof Object &&
|
||||
typeof kcContext.url.resourcesPath === "string"
|
||||
){
|
||||
kcContext.url.resourcesCommonPath = kcContext.url.resourcesPath + "/resources-common";
|
||||
}
|
||||
|
||||
if( kcContext.messagesPerField ){
|
||||
var existsError_singleFieldName = kcContext.messagesPerField.existsError;
|
||||
kcContext.messagesPerField.existsError = function (){
|
||||
for( let i = 0; i < arguments.length; i++ ){
|
||||
if( existsError_singleFieldName(arguments[i]) ){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
};
|
||||
kcContext.messagesPerField.exists = function (fieldName) {
|
||||
return kcContext.messagesPerField.get(fieldName) !== "";
|
||||
};
|
||||
kcContext.messagesPerField.printIfExists = function (fieldName, text) {
|
||||
return kcContext.messagesPerField.exists(fieldName) ? text : undefined;
|
||||
};
|
||||
kcContext.messagesPerField.getFirstError = function () {
|
||||
for( let i = 0; i < arguments.length; i++ ){
|
||||
const fieldName = arguments[i];
|
||||
if( kcContext.messagesPerField.existsError(fieldName) ){
|
||||
return kcContext.messagesPerField.get(fieldName);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
attributes_to_attributesByName: {
|
||||
if( !kcContext.profile ){
|
||||
break attributes_to_attributesByName;
|
||||
}
|
||||
if( !kcContext.profile.attributes ){
|
||||
break attributes_to_attributesByName;
|
||||
}
|
||||
var attributes = kcContext.profile.attributes;
|
||||
delete kcContext.profile.attributes;
|
||||
kcContext.profile.attributesByName = {};
|
||||
attributes.forEach(function(attribute){
|
||||
kcContext.profile.attributesByName[attribute.name] = attribute;
|
||||
});
|
||||
}
|
||||
|
||||
redirect_to_dev_server: {
|
||||
|
||||
switch(kcContext.themeType){
|
||||
case "login":
|
||||
break redirect_to_dev_server;
|
||||
case "account":
|
||||
if( kcContext.pageId !== "index.ftl" ){
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
break;
|
||||
case "admin":
|
||||
break;
|
||||
default:
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
|
||||
const devSeverPort = kcContext.properties.KEYCLOAKIFY_SPA_DEV_SERVER_PORT;
|
||||
|
||||
if( !devSeverPort ){
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
|
||||
const redirectUrl = new URL(window.location.href);
|
||||
|
||||
redirectUrl.port = devSeverPort;
|
||||
|
||||
delete kcContext.msgJSON;
|
||||
|
||||
console.log(kcContext);
|
||||
|
||||
redirectUrl.searchParams.set("kcContext", encodeURIComponent(JSON.stringify(kcContext)));
|
||||
|
||||
window.location.href = redirectUrl.toString();
|
||||
|
||||
}
|
||||
|
||||
|
||||
window.kcContext = kcContext;
|
||||
|
||||
|
||||
<#if xKeycloakify.themeType == "login" >
|
||||
{
|
||||
const script = document.createElement("script");
|
||||
script.type = "importmap";
|
||||
script.textContent = JSON.stringify({
|
||||
imports: {
|
||||
"rfc4648": kcContext.url.resourcesCommonPath + "/node_modules/rfc4648/lib/rfc4648.js"
|
||||
}
|
||||
}, null, 2);
|
||||
|
||||
document.head.appendChild(script);
|
||||
}
|
||||
</#if>
|
||||
|
||||
function decodeHtmlEntities(htmlStr){
|
||||
var element = decodeHtmlEntities.element;
|
||||
if (!element) {
|
||||
element = document.createElement("textarea");
|
||||
decodeHtmlEntities.element = element;
|
||||
}
|
||||
element.innerHTML = htmlStr;
|
||||
return element.value;
|
||||
}
|
||||
|
||||
<#function toJsDeclarationString object path>
|
||||
<#local isHash = -1>
|
||||
<#attempt>
|
||||
<#local isHash = object?is_hash || object?is_hash_ex>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't evaluate if " + path?join(".") + " is a hash">
|
||||
</#attempt>
|
||||
|
||||
<#if isHash>
|
||||
<#if path?size gt 10>
|
||||
<#return "ABORT: Too many recursive calls, path: " + path?join(".")>
|
||||
</#if>
|
||||
<#local keys = -1>
|
||||
|
||||
<#attempt>
|
||||
<#local keys = object?keys>
|
||||
<#recover>
|
||||
<#return "ABORT: We can't list keys on object">
|
||||
</#attempt>
|
||||
|
||||
<#local outSeq = []>
|
||||
|
||||
<#list keys as key>
|
||||
<#if ["class","declaredConstructors","superclass","declaringClass" ]?seq_contains(key) >
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if (
|
||||
areSamePath(path, ["url"]) &&
|
||||
["loginUpdatePasswordUrl", "loginUpdateProfileUrl", "loginUsernameReminderUrl", "loginUpdateTotpUrl"]?seq_contains(key)
|
||||
) || (
|
||||
key == "updateProfileCtx" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
<#-- https://github.com/keycloakify/keycloakify/pull/65#issuecomment-991896344 (reports with saml-post-form.ftl) -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/91#issue-1212319466 (reports with error.ftl and Kc18) -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/109#issuecomment-1134610163 -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/357 -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/discussions/406#discussioncomment-7514787 -->
|
||||
key == "loginAction" &&
|
||||
areSamePath(path, ["url"]) &&
|
||||
["saml-post-form.ftl", "error.ftl", "info.ftl", "login-oauth-grant.ftl", "logout-confirm.ftl", "login-oauth2-device-verify-user-code.ftl"]?seq_contains(xKeycloakify.pageId) &&
|
||||
!(auth?has_content && auth.showTryAnotherWayLink())
|
||||
) || (
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/362 -->
|
||||
["secretData", "value"]?seq_contains(key) &&
|
||||
areSamePath(path, [ "totp", "otpCredentials", "*" ])
|
||||
) || (
|
||||
["contextData", "idpConfig", "idp", "authenticationSession"]?seq_contains(key) &&
|
||||
areSamePath(path, ["brokerContext"]) &&
|
||||
["login-idp-link-confirm.ftl", "login-idp-link-email.ftl" ]?seq_contains(xKeycloakify.pageId)
|
||||
) || (
|
||||
key == "identityProviderBrokerCtx" &&
|
||||
areSamePath(path, []) &&
|
||||
["login-idp-link-confirm.ftl", "login-idp-link-email.ftl" ]?seq_contains(xKeycloakify.pageId)
|
||||
) || (
|
||||
["masterAdminClient", "delegateForUpdate", "defaultRole", "smtpConfig"]?seq_contains(key) &&
|
||||
areSamePath(path, ["realm"])
|
||||
) || (
|
||||
xKeycloakify.pageId == "error.ftl" &&
|
||||
areSamePath(path, ["realm"]) &&
|
||||
!["name", "displayName", "displayNameHtml", "internationalizationEnabled", "registrationEmailAsUsername" ]?seq_contains(key)
|
||||
) || (
|
||||
xKeycloakify.pageId == "applications.ftl" &&
|
||||
(
|
||||
key == "realm" ||
|
||||
key == "container"
|
||||
) &&
|
||||
isSubpath(path, ["applications", "applications"])
|
||||
) || (
|
||||
key == "delegateForUpdate" &&
|
||||
areSamePath(path, ["user"])
|
||||
) || (
|
||||
<#-- Security audit forwarded by Garth (Gmail) -->
|
||||
key == "saml.signing.private.key" &&
|
||||
areSamePath(path, ["client", "attributes"])
|
||||
) || (
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/534 -->
|
||||
key == "password" &&
|
||||
areSamePath(path, ["login"])
|
||||
) || (
|
||||
<#-- Remove realmAttributes added by https://github.com/jcputney/keycloak-theme-additional-info-extension for peace of mind. -->
|
||||
key == "realmAttributes" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
<#-- attributesByName adds a lot of noise to the output and is not needed, we already have profile.attributes -->
|
||||
key == "attributesByName" &&
|
||||
areSamePath(path, ["profile"])
|
||||
) || (
|
||||
<#-- We already have the attributes in profile speedup the rendering by filtering it out from the register object -->
|
||||
(key == "attributes" || key == "attributesByName") &&
|
||||
areSamePath(path, ["register"])
|
||||
) || (
|
||||
areSamePath(path, ["properties"]) &&
|
||||
(
|
||||
key?starts_with("kc") ||
|
||||
key == "locales" ||
|
||||
key == "import" ||
|
||||
key == "parent" ||
|
||||
key == "meta" ||
|
||||
key == "stylesCommon" ||
|
||||
key == "styles" ||
|
||||
key == "accountResourceProvider"
|
||||
)
|
||||
) || (
|
||||
key == "execution" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
key == "entity" &&
|
||||
areSamePath(path, ["user"])
|
||||
) || (
|
||||
key == "attributes" &&
|
||||
areSamePath(path, ["realm"])
|
||||
) || (
|
||||
xKeycloakify.pageId == "index.ftl" &&
|
||||
xKeycloakify.themeType == "account" &&
|
||||
areSamePath(path, ["realm"]) &&
|
||||
![
|
||||
"name",
|
||||
"registrationEmailAsUsername",
|
||||
"editUsernameAllowed",
|
||||
"isInternationalizationEnabled",
|
||||
"identityFederationEnabled",
|
||||
"userManagedAccessAllowed"
|
||||
]?seq_contains(key)
|
||||
) || (
|
||||
["flowContext", "session", "realm"]?seq_contains(key) &&
|
||||
areSamePath(path, ["social"])
|
||||
)
|
||||
>
|
||||
<#-- <#local outSeq += ["/*" + path?join(".") + "." + key + " excluded*/"]> -->
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#-- https://github.com/keycloakify/keycloakify/discussions/406 -->
|
||||
<#if (
|
||||
key == "attemptedUsername" &&
|
||||
areSamePath(path, ["auth"]) &&
|
||||
[
|
||||
"register.ftl", "terms.ftl", "info.ftl", "login.ftl",
|
||||
"login-update-password.ftl", "login-oauth2-device-verify-user-code.ftl"
|
||||
]?seq_contains(xKeycloakify.pageId)
|
||||
)>
|
||||
<#attempt>
|
||||
<#-- https://github.com/keycloak/keycloak/blob/3a2bf0c04bcde185e497aaa32d0bb7ab7520cf4a/themes/src/main/resources/theme/base/login/template.ftl#L63 -->
|
||||
<#if !(auth?has_content && auth.showUsername() && !auth.showResetCredentials())>
|
||||
<#local outSeq += ["/*" + path?join(".") + "." + key + " excluded*/"]>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Accessing attemptedUsername throwed an exception */"]>
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
|
||||
|
||||
<#attempt>
|
||||
<#if !object[key]??>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Couldn't test if '" + key + "' is available on this object*/"]>
|
||||
<#continue>
|
||||
</#attempt>
|
||||
|
||||
<#local propertyValue = -1>
|
||||
|
||||
<#attempt>
|
||||
<#local propertyValue = object[key]>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Couldn't dereference '" + key + "' on this object*/"]>
|
||||
<#continue>
|
||||
</#attempt>
|
||||
|
||||
<#local recOut = toJsDeclarationString(propertyValue, path + [ key ])>
|
||||
|
||||
<#if recOut?starts_with("ABORT:")>
|
||||
|
||||
<#local errorMessage = recOut?remove_beginning("ABORT:")>
|
||||
|
||||
<#if errorMessage != " It's a method" >
|
||||
<#local outSeq += ["/*" + key + ": " + errorMessage + "*/"]>
|
||||
</#if>
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local outSeq += ['"' + key + '": ' + recOut + ","]>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return (["{"] + outSeq?map(str -> ""?right_pad(4 * (path?size + 1)) + str) + [ ""?right_pad(4 * path?size) + "}"])?join("\n")>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local isMethod = -1>
|
||||
<#attempt>
|
||||
<#local isMethod = object?is_method>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it'sa method.">
|
||||
</#attempt>
|
||||
|
||||
<#if isMethod>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showUsername"])>
|
||||
<#attempt>
|
||||
<#return auth.showUsername()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showUsername()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showResetCredentials"])>
|
||||
<#attempt>
|
||||
<#return auth.showResetCredentials()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showResetCredentials()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showTryAnotherWayLink"])>
|
||||
<#attempt>
|
||||
<#return auth.showTryAnotherWayLink()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showTryAnotherWayLink()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["url", "getLogoutUrl"])>
|
||||
<#local returnValue = -1>
|
||||
<#attempt>
|
||||
<#local returnValue = url.getLogoutUrl()>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate url.getLogoutUrl()">
|
||||
</#attempt>
|
||||
<#return 'function(){ return "' + returnValue + '"; }'>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["totp", "policy", "getAlgorithmKey"])>
|
||||
<#local returnValue = "error">
|
||||
<#if mode?? && mode = "manual">
|
||||
<#attempt>
|
||||
<#local returnValue = totp.policy.getAlgorithmKey()>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate totp.policy.getAlgorithmKey()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
<#return 'function(){ return "' + returnValue + '"; }'>
|
||||
</#if>
|
||||
|
||||
<#assign fieldNames = ["firstName", "lastName", "email", "username", "password", "password-confirm", "global", "totp", "userLabel", "recoveryCodeInput", "termsAccepted"]>
|
||||
<#if profile?? && profile.attributes??>
|
||||
<#list profile.attributes as attribute>
|
||||
<#if fieldNames?seq_contains(attribute.name)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#assign fieldNames += [attribute.name]>
|
||||
</#list>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["messagesPerField", "get"])>
|
||||
|
||||
<#local jsFunctionCode = "function (fieldName) { ">
|
||||
|
||||
<#list fieldNames as fieldName>
|
||||
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/217 -->
|
||||
<#if xKeycloakify.pageId == "login.ftl" >
|
||||
|
||||
<#if fieldName == "username">
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === 'username' || fieldName === 'password' ){ ">
|
||||
|
||||
<#if messagesPerField.exists('username') || messagesPerField.exists('password')>
|
||||
<#local jsFunctionCode += "return kcContext.message && kcContext.message.summary ? kcContext.message.summary : 'error'; ">
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return ''; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if fieldName == "password">
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === '" + fieldName + "'){ ">
|
||||
|
||||
<#if messagesPerField.exists('${fieldName}')>
|
||||
<#local jsFunctionCode += 'return decodeHtmlEntities("' + messagesPerField.get('${fieldName}')?js_string + '"); '>
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return ''; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
</#list>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
<#return jsFunctionCode>
|
||||
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["messagesPerField", "existsError"])>
|
||||
|
||||
<#local jsFunctionCode = "function (fieldName) { ">
|
||||
|
||||
<#list fieldNames as fieldName>
|
||||
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/217 -->
|
||||
<#if xKeycloakify.pageId == "login.ftl" >
|
||||
<#if fieldName == "username">
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === 'username' || fieldName === 'password' ){ ">
|
||||
|
||||
<#if messagesPerField.existsError('username') || messagesPerField.existsError('password')>
|
||||
<#local jsFunctionCode += "return true; ">
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return false; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if fieldName == "password">
|
||||
<#continue>
|
||||
</#if>
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === '" + fieldName + "' ){ ">
|
||||
|
||||
<#if messagesPerField.existsError('${fieldName}')>
|
||||
<#local jsFunctionCode += 'return true; '>
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return false; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
</#list>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
<#return jsFunctionCode>
|
||||
|
||||
</#if>
|
||||
|
||||
<#if xKeycloakify.themeType == "account" && areSamePath(path, ["realm", "isInternationalizationEnabled"])>
|
||||
<#attempt>
|
||||
<#return realm.isInternationalizationEnabled()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate realm.isInternationalizationEnabled()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#return "ABORT: It's a method">
|
||||
</#if>
|
||||
|
||||
<#local isBoolean = -1>
|
||||
<#attempt>
|
||||
<#local isBoolean = object?is_boolean>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a boolean">
|
||||
</#attempt>
|
||||
|
||||
<#if isBoolean>
|
||||
<#return object?c>
|
||||
</#if>
|
||||
|
||||
<#local isEnumerable = -1>
|
||||
<#attempt>
|
||||
<#local isEnumerable = object?is_enumerable>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's an enumerable">
|
||||
</#attempt>
|
||||
|
||||
|
||||
<#if isEnumerable>
|
||||
|
||||
<#local outSeq = []>
|
||||
|
||||
<#local i = 0>
|
||||
|
||||
<#list object as array_item>
|
||||
|
||||
<#if !array_item??>
|
||||
<#local outSeq += ["null,"]>
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local recOut = toJsDeclarationString(array_item, path + [ i ])>
|
||||
|
||||
<#local i = i + 1>
|
||||
|
||||
<#if recOut?starts_with("ABORT:")>
|
||||
|
||||
<#local errorMessage = recOut?remove_beginning("ABORT:")>
|
||||
|
||||
<#if errorMessage != " It's a method" >
|
||||
<#local outSeq += ["/*" + i?string + ": " + errorMessage + "*/"]>
|
||||
</#if>
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local outSeq += [recOut + ","]>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return (["["] + outSeq?map(str -> ""?right_pad(4 * (path?size + 1)) + str) + [ ""?right_pad(4 * path?size) + "]"])?join("\n")>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local isDate = -1>
|
||||
<#attempt>
|
||||
<#local isDate = object?is_date_like>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a date">
|
||||
</#attempt>
|
||||
|
||||
<#if isDate>
|
||||
<#return '"' + object?datetime?iso_utc + '"'>
|
||||
</#if>
|
||||
|
||||
<#local isNumber = -1>
|
||||
<#attempt>
|
||||
<#local isNumber = object?is_number>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a number">
|
||||
</#attempt>
|
||||
|
||||
<#if isNumber>
|
||||
<#return object?c>
|
||||
</#if>
|
||||
|
||||
<#local isString = -1>
|
||||
<#attempt>
|
||||
<#local isString = object?is_string>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a string">
|
||||
</#attempt>
|
||||
|
||||
<#if isString>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str=object />
|
||||
</#if>
|
||||
|
||||
<#attempt>
|
||||
<#return '"' + object?js_string + '"'>;
|
||||
<#recover>
|
||||
</#attempt>
|
||||
|
||||
<#return "ABORT: Couldn't convert into string non hash, non method, non boolean, non number, non enumerable object">
|
||||
|
||||
</#function>
|
||||
<#function isSubpath path searchedPath>
|
||||
|
||||
<#if path?size < searchedPath?size>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#local i=0>
|
||||
|
||||
<#list path as property>
|
||||
|
||||
<#if i == searchedPath?size >
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local searchedProperty=searchedPath[i]>
|
||||
|
||||
<#local i+= 1>
|
||||
|
||||
<#if searchedProperty?is_string && searchedProperty == "*">
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?is_string && !property?is_string>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?is_number && !property?is_number>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?string != property?string>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return true>
|
||||
|
||||
</#function>
|
||||
|
||||
<#function areSamePath path searchedPath>
|
||||
<#return path?size == searchedPath?size && isSubpath(path, searchedPath)>
|
||||
</#function>
|
||||
|
||||
<#macro addToXKeycloakifyMessagesIfMessageKey str>
|
||||
<#if !msg?? || !msg?is_method>
|
||||
<#return>
|
||||
</#if>
|
||||
<#if (str?length > 200)>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local key=removeBrackets(str)>
|
||||
<#if key?length==0>
|
||||
<#return>
|
||||
</#if>
|
||||
<#if !(key?matches(r"^[a-zA-Z0-9-_.]*$"))>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local resolvedMsg=msg(key)>
|
||||
<#if resolvedMsg==key>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local messages=xKeycloakify.messages>
|
||||
<#local messages = messages + { key: resolvedMsg }>
|
||||
<#assign xKeycloakify = xKeycloakify + { "messages": messages }>
|
||||
</#macro>
|
||||
|
||||
<#function removeBrackets str>
|
||||
<#if str?starts_with("${") && str?ends_with("}")>
|
||||
<#return str[2..(str?length-2)]>
|
||||
<#else>
|
||||
<#return str>
|
||||
</#if>
|
||||
</#function>
|
||||
|
||||
<#macro addNonAutomaticallyGatherableMessagesToXKeycloakifyMessages>
|
||||
<#if profile?? && profile?is_hash && profile.attributes?? && profile.attributes?is_enumerable>
|
||||
<#list profile.attributes as attribute>
|
||||
<#if !(
|
||||
attribute.annotations?? && attribute.annotations?is_hash &&
|
||||
attribute.annotations.inputOptionLabelsI18nPrefix?? && attribute.annotations.inputOptionLabelsI18nPrefix?is_string
|
||||
)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#local prefix=attribute.annotations.inputOptionLabelsI18nPrefix>
|
||||
<#if !(
|
||||
attribute.validators?? && attribute.validators?is_hash &&
|
||||
attribute.validators.options?? && attribute.validators.options?is_hash &&
|
||||
attribute.validators.options.options?? && attribute.validators.options.options?is_enumerable
|
||||
)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#list attribute.validators.options.options as option>
|
||||
<#if !option?is_string>
|
||||
<#continue>
|
||||
</#if>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="${prefix}.${option}" />
|
||||
</#list>
|
||||
</#list>
|
||||
</#if>
|
||||
<#if xKeycloakify.pageId == "terms.ftl" || termsAcceptanceRequired?? && termsAcceptanceRequired>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="termsText" />
|
||||
</#if>
|
||||
<#if requiredActions?? && requiredActions?is_enumerable>
|
||||
<#list requiredActions as requiredAction>
|
||||
<#if !requiredAction?is_string>
|
||||
<#continue>
|
||||
</#if>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="requiredAction.${requiredAction}" />
|
||||
</#list>
|
||||
</#if>
|
||||
</#macro>
|
||||
|
||||
</script>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="${xKeycloakify.resourcesPath}/dist/favicon-32x32.png">
|
||||
<script type="module" crossorigin="" src="${xKeycloakify.resourcesPath}/dist/assets/index-6-NnS-wp.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="root"></div>
|
||||
|
||||
|
||||
</body></html>
|
@ -0,0 +1,739 @@
|
||||
<!DOCTYPE html><html><head><script>
|
||||
<#assign xKeycloakify={
|
||||
"messages": {},
|
||||
"pageId": "login-reset-password.ftl",
|
||||
"ftlTemplateFileName": "login-reset-password.ftl",
|
||||
"themeType": "login",
|
||||
"themeName": "keycloakify-starter",
|
||||
"keycloakifyVersion": "11.4.4",
|
||||
"themeVersion": "0.0.0",
|
||||
"resourcesPath": ""
|
||||
}>
|
||||
|
||||
<#if url?? && url?is_hash && url.resourcesPath?? && url.resourcesPath?is_string>
|
||||
<#assign xKeycloakify = xKeycloakify + { "resourcesPath": url.resourcesPath }>
|
||||
</#if>
|
||||
<#if resourceUrl?? && resourceUrl?is_string>
|
||||
<#assign xKeycloakify = xKeycloakify + { "resourcesPath": resourceUrl }>
|
||||
</#if>
|
||||
|
||||
const kcContext = ${toJsDeclarationString(.data_model, [])?no_esc};
|
||||
kcContext.keycloakifyVersion = "${xKeycloakify.keycloakifyVersion}";
|
||||
kcContext.themeVersion = "${xKeycloakify.themeVersion}";
|
||||
kcContext.themeType = "${xKeycloakify.themeType}";
|
||||
kcContext.themeName = "${xKeycloakify.themeName}";
|
||||
kcContext.pageId = "${xKeycloakify.pageId}";
|
||||
kcContext.ftlTemplateFileName = "${xKeycloakify.ftlTemplateFileName}";
|
||||
|
||||
<@addNonAutomaticallyGatherableMessagesToXKeycloakifyMessages />
|
||||
|
||||
kcContext["x-keycloakify"] = {};
|
||||
|
||||
kcContext["x-keycloakify"].resourcesPath = "${xKeycloakify.resourcesPath}";
|
||||
|
||||
{
|
||||
var messages = {};
|
||||
<#list xKeycloakify.messages as key, resolvedMsg>
|
||||
messages["${key}"] = decodeHtmlEntities("${resolvedMsg?js_string}");
|
||||
</#list>
|
||||
kcContext["x-keycloakify"].messages = messages;
|
||||
}
|
||||
|
||||
if(
|
||||
kcContext.url instanceof Object &&
|
||||
typeof kcContext.url.resourcesPath === "string"
|
||||
){
|
||||
kcContext.url.resourcesCommonPath = kcContext.url.resourcesPath + "/resources-common";
|
||||
}
|
||||
|
||||
if( kcContext.messagesPerField ){
|
||||
var existsError_singleFieldName = kcContext.messagesPerField.existsError;
|
||||
kcContext.messagesPerField.existsError = function (){
|
||||
for( let i = 0; i < arguments.length; i++ ){
|
||||
if( existsError_singleFieldName(arguments[i]) ){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
};
|
||||
kcContext.messagesPerField.exists = function (fieldName) {
|
||||
return kcContext.messagesPerField.get(fieldName) !== "";
|
||||
};
|
||||
kcContext.messagesPerField.printIfExists = function (fieldName, text) {
|
||||
return kcContext.messagesPerField.exists(fieldName) ? text : undefined;
|
||||
};
|
||||
kcContext.messagesPerField.getFirstError = function () {
|
||||
for( let i = 0; i < arguments.length; i++ ){
|
||||
const fieldName = arguments[i];
|
||||
if( kcContext.messagesPerField.existsError(fieldName) ){
|
||||
return kcContext.messagesPerField.get(fieldName);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
attributes_to_attributesByName: {
|
||||
if( !kcContext.profile ){
|
||||
break attributes_to_attributesByName;
|
||||
}
|
||||
if( !kcContext.profile.attributes ){
|
||||
break attributes_to_attributesByName;
|
||||
}
|
||||
var attributes = kcContext.profile.attributes;
|
||||
delete kcContext.profile.attributes;
|
||||
kcContext.profile.attributesByName = {};
|
||||
attributes.forEach(function(attribute){
|
||||
kcContext.profile.attributesByName[attribute.name] = attribute;
|
||||
});
|
||||
}
|
||||
|
||||
redirect_to_dev_server: {
|
||||
|
||||
switch(kcContext.themeType){
|
||||
case "login":
|
||||
break redirect_to_dev_server;
|
||||
case "account":
|
||||
if( kcContext.pageId !== "index.ftl" ){
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
break;
|
||||
case "admin":
|
||||
break;
|
||||
default:
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
|
||||
const devSeverPort = kcContext.properties.KEYCLOAKIFY_SPA_DEV_SERVER_PORT;
|
||||
|
||||
if( !devSeverPort ){
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
|
||||
const redirectUrl = new URL(window.location.href);
|
||||
|
||||
redirectUrl.port = devSeverPort;
|
||||
|
||||
delete kcContext.msgJSON;
|
||||
|
||||
console.log(kcContext);
|
||||
|
||||
redirectUrl.searchParams.set("kcContext", encodeURIComponent(JSON.stringify(kcContext)));
|
||||
|
||||
window.location.href = redirectUrl.toString();
|
||||
|
||||
}
|
||||
|
||||
|
||||
window.kcContext = kcContext;
|
||||
|
||||
|
||||
<#if xKeycloakify.themeType == "login" >
|
||||
{
|
||||
const script = document.createElement("script");
|
||||
script.type = "importmap";
|
||||
script.textContent = JSON.stringify({
|
||||
imports: {
|
||||
"rfc4648": kcContext.url.resourcesCommonPath + "/node_modules/rfc4648/lib/rfc4648.js"
|
||||
}
|
||||
}, null, 2);
|
||||
|
||||
document.head.appendChild(script);
|
||||
}
|
||||
</#if>
|
||||
|
||||
function decodeHtmlEntities(htmlStr){
|
||||
var element = decodeHtmlEntities.element;
|
||||
if (!element) {
|
||||
element = document.createElement("textarea");
|
||||
decodeHtmlEntities.element = element;
|
||||
}
|
||||
element.innerHTML = htmlStr;
|
||||
return element.value;
|
||||
}
|
||||
|
||||
<#function toJsDeclarationString object path>
|
||||
<#local isHash = -1>
|
||||
<#attempt>
|
||||
<#local isHash = object?is_hash || object?is_hash_ex>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't evaluate if " + path?join(".") + " is a hash">
|
||||
</#attempt>
|
||||
|
||||
<#if isHash>
|
||||
<#if path?size gt 10>
|
||||
<#return "ABORT: Too many recursive calls, path: " + path?join(".")>
|
||||
</#if>
|
||||
<#local keys = -1>
|
||||
|
||||
<#attempt>
|
||||
<#local keys = object?keys>
|
||||
<#recover>
|
||||
<#return "ABORT: We can't list keys on object">
|
||||
</#attempt>
|
||||
|
||||
<#local outSeq = []>
|
||||
|
||||
<#list keys as key>
|
||||
<#if ["class","declaredConstructors","superclass","declaringClass" ]?seq_contains(key) >
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if (
|
||||
areSamePath(path, ["url"]) &&
|
||||
["loginUpdatePasswordUrl", "loginUpdateProfileUrl", "loginUsernameReminderUrl", "loginUpdateTotpUrl"]?seq_contains(key)
|
||||
) || (
|
||||
key == "updateProfileCtx" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
<#-- https://github.com/keycloakify/keycloakify/pull/65#issuecomment-991896344 (reports with saml-post-form.ftl) -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/91#issue-1212319466 (reports with error.ftl and Kc18) -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/109#issuecomment-1134610163 -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/357 -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/discussions/406#discussioncomment-7514787 -->
|
||||
key == "loginAction" &&
|
||||
areSamePath(path, ["url"]) &&
|
||||
["saml-post-form.ftl", "error.ftl", "info.ftl", "login-oauth-grant.ftl", "logout-confirm.ftl", "login-oauth2-device-verify-user-code.ftl"]?seq_contains(xKeycloakify.pageId) &&
|
||||
!(auth?has_content && auth.showTryAnotherWayLink())
|
||||
) || (
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/362 -->
|
||||
["secretData", "value"]?seq_contains(key) &&
|
||||
areSamePath(path, [ "totp", "otpCredentials", "*" ])
|
||||
) || (
|
||||
["contextData", "idpConfig", "idp", "authenticationSession"]?seq_contains(key) &&
|
||||
areSamePath(path, ["brokerContext"]) &&
|
||||
["login-idp-link-confirm.ftl", "login-idp-link-email.ftl" ]?seq_contains(xKeycloakify.pageId)
|
||||
) || (
|
||||
key == "identityProviderBrokerCtx" &&
|
||||
areSamePath(path, []) &&
|
||||
["login-idp-link-confirm.ftl", "login-idp-link-email.ftl" ]?seq_contains(xKeycloakify.pageId)
|
||||
) || (
|
||||
["masterAdminClient", "delegateForUpdate", "defaultRole", "smtpConfig"]?seq_contains(key) &&
|
||||
areSamePath(path, ["realm"])
|
||||
) || (
|
||||
xKeycloakify.pageId == "error.ftl" &&
|
||||
areSamePath(path, ["realm"]) &&
|
||||
!["name", "displayName", "displayNameHtml", "internationalizationEnabled", "registrationEmailAsUsername" ]?seq_contains(key)
|
||||
) || (
|
||||
xKeycloakify.pageId == "applications.ftl" &&
|
||||
(
|
||||
key == "realm" ||
|
||||
key == "container"
|
||||
) &&
|
||||
isSubpath(path, ["applications", "applications"])
|
||||
) || (
|
||||
key == "delegateForUpdate" &&
|
||||
areSamePath(path, ["user"])
|
||||
) || (
|
||||
<#-- Security audit forwarded by Garth (Gmail) -->
|
||||
key == "saml.signing.private.key" &&
|
||||
areSamePath(path, ["client", "attributes"])
|
||||
) || (
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/534 -->
|
||||
key == "password" &&
|
||||
areSamePath(path, ["login"])
|
||||
) || (
|
||||
<#-- Remove realmAttributes added by https://github.com/jcputney/keycloak-theme-additional-info-extension for peace of mind. -->
|
||||
key == "realmAttributes" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
<#-- attributesByName adds a lot of noise to the output and is not needed, we already have profile.attributes -->
|
||||
key == "attributesByName" &&
|
||||
areSamePath(path, ["profile"])
|
||||
) || (
|
||||
<#-- We already have the attributes in profile speedup the rendering by filtering it out from the register object -->
|
||||
(key == "attributes" || key == "attributesByName") &&
|
||||
areSamePath(path, ["register"])
|
||||
) || (
|
||||
areSamePath(path, ["properties"]) &&
|
||||
(
|
||||
key?starts_with("kc") ||
|
||||
key == "locales" ||
|
||||
key == "import" ||
|
||||
key == "parent" ||
|
||||
key == "meta" ||
|
||||
key == "stylesCommon" ||
|
||||
key == "styles" ||
|
||||
key == "accountResourceProvider"
|
||||
)
|
||||
) || (
|
||||
key == "execution" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
key == "entity" &&
|
||||
areSamePath(path, ["user"])
|
||||
) || (
|
||||
key == "attributes" &&
|
||||
areSamePath(path, ["realm"])
|
||||
) || (
|
||||
xKeycloakify.pageId == "index.ftl" &&
|
||||
xKeycloakify.themeType == "account" &&
|
||||
areSamePath(path, ["realm"]) &&
|
||||
![
|
||||
"name",
|
||||
"registrationEmailAsUsername",
|
||||
"editUsernameAllowed",
|
||||
"isInternationalizationEnabled",
|
||||
"identityFederationEnabled",
|
||||
"userManagedAccessAllowed"
|
||||
]?seq_contains(key)
|
||||
) || (
|
||||
["flowContext", "session", "realm"]?seq_contains(key) &&
|
||||
areSamePath(path, ["social"])
|
||||
)
|
||||
>
|
||||
<#-- <#local outSeq += ["/*" + path?join(".") + "." + key + " excluded*/"]> -->
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#-- https://github.com/keycloakify/keycloakify/discussions/406 -->
|
||||
<#if (
|
||||
key == "attemptedUsername" &&
|
||||
areSamePath(path, ["auth"]) &&
|
||||
[
|
||||
"register.ftl", "terms.ftl", "info.ftl", "login.ftl",
|
||||
"login-update-password.ftl", "login-oauth2-device-verify-user-code.ftl"
|
||||
]?seq_contains(xKeycloakify.pageId)
|
||||
)>
|
||||
<#attempt>
|
||||
<#-- https://github.com/keycloak/keycloak/blob/3a2bf0c04bcde185e497aaa32d0bb7ab7520cf4a/themes/src/main/resources/theme/base/login/template.ftl#L63 -->
|
||||
<#if !(auth?has_content && auth.showUsername() && !auth.showResetCredentials())>
|
||||
<#local outSeq += ["/*" + path?join(".") + "." + key + " excluded*/"]>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Accessing attemptedUsername throwed an exception */"]>
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
|
||||
|
||||
<#attempt>
|
||||
<#if !object[key]??>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Couldn't test if '" + key + "' is available on this object*/"]>
|
||||
<#continue>
|
||||
</#attempt>
|
||||
|
||||
<#local propertyValue = -1>
|
||||
|
||||
<#attempt>
|
||||
<#local propertyValue = object[key]>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Couldn't dereference '" + key + "' on this object*/"]>
|
||||
<#continue>
|
||||
</#attempt>
|
||||
|
||||
<#local recOut = toJsDeclarationString(propertyValue, path + [ key ])>
|
||||
|
||||
<#if recOut?starts_with("ABORT:")>
|
||||
|
||||
<#local errorMessage = recOut?remove_beginning("ABORT:")>
|
||||
|
||||
<#if errorMessage != " It's a method" >
|
||||
<#local outSeq += ["/*" + key + ": " + errorMessage + "*/"]>
|
||||
</#if>
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local outSeq += ['"' + key + '": ' + recOut + ","]>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return (["{"] + outSeq?map(str -> ""?right_pad(4 * (path?size + 1)) + str) + [ ""?right_pad(4 * path?size) + "}"])?join("\n")>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local isMethod = -1>
|
||||
<#attempt>
|
||||
<#local isMethod = object?is_method>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it'sa method.">
|
||||
</#attempt>
|
||||
|
||||
<#if isMethod>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showUsername"])>
|
||||
<#attempt>
|
||||
<#return auth.showUsername()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showUsername()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showResetCredentials"])>
|
||||
<#attempt>
|
||||
<#return auth.showResetCredentials()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showResetCredentials()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showTryAnotherWayLink"])>
|
||||
<#attempt>
|
||||
<#return auth.showTryAnotherWayLink()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showTryAnotherWayLink()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["url", "getLogoutUrl"])>
|
||||
<#local returnValue = -1>
|
||||
<#attempt>
|
||||
<#local returnValue = url.getLogoutUrl()>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate url.getLogoutUrl()">
|
||||
</#attempt>
|
||||
<#return 'function(){ return "' + returnValue + '"; }'>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["totp", "policy", "getAlgorithmKey"])>
|
||||
<#local returnValue = "error">
|
||||
<#if mode?? && mode = "manual">
|
||||
<#attempt>
|
||||
<#local returnValue = totp.policy.getAlgorithmKey()>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate totp.policy.getAlgorithmKey()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
<#return 'function(){ return "' + returnValue + '"; }'>
|
||||
</#if>
|
||||
|
||||
<#assign fieldNames = ["firstName", "lastName", "email", "username", "password", "password-confirm", "global", "totp", "userLabel", "recoveryCodeInput", "termsAccepted"]>
|
||||
<#if profile?? && profile.attributes??>
|
||||
<#list profile.attributes as attribute>
|
||||
<#if fieldNames?seq_contains(attribute.name)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#assign fieldNames += [attribute.name]>
|
||||
</#list>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["messagesPerField", "get"])>
|
||||
|
||||
<#local jsFunctionCode = "function (fieldName) { ">
|
||||
|
||||
<#list fieldNames as fieldName>
|
||||
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/217 -->
|
||||
<#if xKeycloakify.pageId == "login.ftl" >
|
||||
|
||||
<#if fieldName == "username">
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === 'username' || fieldName === 'password' ){ ">
|
||||
|
||||
<#if messagesPerField.exists('username') || messagesPerField.exists('password')>
|
||||
<#local jsFunctionCode += "return kcContext.message && kcContext.message.summary ? kcContext.message.summary : 'error'; ">
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return ''; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if fieldName == "password">
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === '" + fieldName + "'){ ">
|
||||
|
||||
<#if messagesPerField.exists('${fieldName}')>
|
||||
<#local jsFunctionCode += 'return decodeHtmlEntities("' + messagesPerField.get('${fieldName}')?js_string + '"); '>
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return ''; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
</#list>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
<#return jsFunctionCode>
|
||||
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["messagesPerField", "existsError"])>
|
||||
|
||||
<#local jsFunctionCode = "function (fieldName) { ">
|
||||
|
||||
<#list fieldNames as fieldName>
|
||||
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/217 -->
|
||||
<#if xKeycloakify.pageId == "login.ftl" >
|
||||
<#if fieldName == "username">
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === 'username' || fieldName === 'password' ){ ">
|
||||
|
||||
<#if messagesPerField.existsError('username') || messagesPerField.existsError('password')>
|
||||
<#local jsFunctionCode += "return true; ">
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return false; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if fieldName == "password">
|
||||
<#continue>
|
||||
</#if>
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === '" + fieldName + "' ){ ">
|
||||
|
||||
<#if messagesPerField.existsError('${fieldName}')>
|
||||
<#local jsFunctionCode += 'return true; '>
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return false; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
</#list>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
<#return jsFunctionCode>
|
||||
|
||||
</#if>
|
||||
|
||||
<#if xKeycloakify.themeType == "account" && areSamePath(path, ["realm", "isInternationalizationEnabled"])>
|
||||
<#attempt>
|
||||
<#return realm.isInternationalizationEnabled()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate realm.isInternationalizationEnabled()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#return "ABORT: It's a method">
|
||||
</#if>
|
||||
|
||||
<#local isBoolean = -1>
|
||||
<#attempt>
|
||||
<#local isBoolean = object?is_boolean>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a boolean">
|
||||
</#attempt>
|
||||
|
||||
<#if isBoolean>
|
||||
<#return object?c>
|
||||
</#if>
|
||||
|
||||
<#local isEnumerable = -1>
|
||||
<#attempt>
|
||||
<#local isEnumerable = object?is_enumerable>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's an enumerable">
|
||||
</#attempt>
|
||||
|
||||
|
||||
<#if isEnumerable>
|
||||
|
||||
<#local outSeq = []>
|
||||
|
||||
<#local i = 0>
|
||||
|
||||
<#list object as array_item>
|
||||
|
||||
<#if !array_item??>
|
||||
<#local outSeq += ["null,"]>
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local recOut = toJsDeclarationString(array_item, path + [ i ])>
|
||||
|
||||
<#local i = i + 1>
|
||||
|
||||
<#if recOut?starts_with("ABORT:")>
|
||||
|
||||
<#local errorMessage = recOut?remove_beginning("ABORT:")>
|
||||
|
||||
<#if errorMessage != " It's a method" >
|
||||
<#local outSeq += ["/*" + i?string + ": " + errorMessage + "*/"]>
|
||||
</#if>
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local outSeq += [recOut + ","]>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return (["["] + outSeq?map(str -> ""?right_pad(4 * (path?size + 1)) + str) + [ ""?right_pad(4 * path?size) + "]"])?join("\n")>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local isDate = -1>
|
||||
<#attempt>
|
||||
<#local isDate = object?is_date_like>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a date">
|
||||
</#attempt>
|
||||
|
||||
<#if isDate>
|
||||
<#return '"' + object?datetime?iso_utc + '"'>
|
||||
</#if>
|
||||
|
||||
<#local isNumber = -1>
|
||||
<#attempt>
|
||||
<#local isNumber = object?is_number>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a number">
|
||||
</#attempt>
|
||||
|
||||
<#if isNumber>
|
||||
<#return object?c>
|
||||
</#if>
|
||||
|
||||
<#local isString = -1>
|
||||
<#attempt>
|
||||
<#local isString = object?is_string>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a string">
|
||||
</#attempt>
|
||||
|
||||
<#if isString>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str=object />
|
||||
</#if>
|
||||
|
||||
<#attempt>
|
||||
<#return '"' + object?js_string + '"'>;
|
||||
<#recover>
|
||||
</#attempt>
|
||||
|
||||
<#return "ABORT: Couldn't convert into string non hash, non method, non boolean, non number, non enumerable object">
|
||||
|
||||
</#function>
|
||||
<#function isSubpath path searchedPath>
|
||||
|
||||
<#if path?size < searchedPath?size>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#local i=0>
|
||||
|
||||
<#list path as property>
|
||||
|
||||
<#if i == searchedPath?size >
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local searchedProperty=searchedPath[i]>
|
||||
|
||||
<#local i+= 1>
|
||||
|
||||
<#if searchedProperty?is_string && searchedProperty == "*">
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?is_string && !property?is_string>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?is_number && !property?is_number>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?string != property?string>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return true>
|
||||
|
||||
</#function>
|
||||
|
||||
<#function areSamePath path searchedPath>
|
||||
<#return path?size == searchedPath?size && isSubpath(path, searchedPath)>
|
||||
</#function>
|
||||
|
||||
<#macro addToXKeycloakifyMessagesIfMessageKey str>
|
||||
<#if !msg?? || !msg?is_method>
|
||||
<#return>
|
||||
</#if>
|
||||
<#if (str?length > 200)>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local key=removeBrackets(str)>
|
||||
<#if key?length==0>
|
||||
<#return>
|
||||
</#if>
|
||||
<#if !(key?matches(r"^[a-zA-Z0-9-_.]*$"))>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local resolvedMsg=msg(key)>
|
||||
<#if resolvedMsg==key>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local messages=xKeycloakify.messages>
|
||||
<#local messages = messages + { key: resolvedMsg }>
|
||||
<#assign xKeycloakify = xKeycloakify + { "messages": messages }>
|
||||
</#macro>
|
||||
|
||||
<#function removeBrackets str>
|
||||
<#if str?starts_with("${") && str?ends_with("}")>
|
||||
<#return str[2..(str?length-2)]>
|
||||
<#else>
|
||||
<#return str>
|
||||
</#if>
|
||||
</#function>
|
||||
|
||||
<#macro addNonAutomaticallyGatherableMessagesToXKeycloakifyMessages>
|
||||
<#if profile?? && profile?is_hash && profile.attributes?? && profile.attributes?is_enumerable>
|
||||
<#list profile.attributes as attribute>
|
||||
<#if !(
|
||||
attribute.annotations?? && attribute.annotations?is_hash &&
|
||||
attribute.annotations.inputOptionLabelsI18nPrefix?? && attribute.annotations.inputOptionLabelsI18nPrefix?is_string
|
||||
)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#local prefix=attribute.annotations.inputOptionLabelsI18nPrefix>
|
||||
<#if !(
|
||||
attribute.validators?? && attribute.validators?is_hash &&
|
||||
attribute.validators.options?? && attribute.validators.options?is_hash &&
|
||||
attribute.validators.options.options?? && attribute.validators.options.options?is_enumerable
|
||||
)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#list attribute.validators.options.options as option>
|
||||
<#if !option?is_string>
|
||||
<#continue>
|
||||
</#if>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="${prefix}.${option}" />
|
||||
</#list>
|
||||
</#list>
|
||||
</#if>
|
||||
<#if xKeycloakify.pageId == "terms.ftl" || termsAcceptanceRequired?? && termsAcceptanceRequired>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="termsText" />
|
||||
</#if>
|
||||
<#if requiredActions?? && requiredActions?is_enumerable>
|
||||
<#list requiredActions as requiredAction>
|
||||
<#if !requiredAction?is_string>
|
||||
<#continue>
|
||||
</#if>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="requiredAction.${requiredAction}" />
|
||||
</#list>
|
||||
</#if>
|
||||
</#macro>
|
||||
|
||||
</script>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="${xKeycloakify.resourcesPath}/dist/favicon-32x32.png">
|
||||
<script type="module" crossorigin="" src="${xKeycloakify.resourcesPath}/dist/assets/index-6-NnS-wp.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="root"></div>
|
||||
|
||||
|
||||
</body></html>
|
@ -0,0 +1,739 @@
|
||||
<!DOCTYPE html><html><head><script>
|
||||
<#assign xKeycloakify={
|
||||
"messages": {},
|
||||
"pageId": "login-update-password.ftl",
|
||||
"ftlTemplateFileName": "login-update-password.ftl",
|
||||
"themeType": "login",
|
||||
"themeName": "keycloakify-starter",
|
||||
"keycloakifyVersion": "11.4.4",
|
||||
"themeVersion": "0.0.0",
|
||||
"resourcesPath": ""
|
||||
}>
|
||||
|
||||
<#if url?? && url?is_hash && url.resourcesPath?? && url.resourcesPath?is_string>
|
||||
<#assign xKeycloakify = xKeycloakify + { "resourcesPath": url.resourcesPath }>
|
||||
</#if>
|
||||
<#if resourceUrl?? && resourceUrl?is_string>
|
||||
<#assign xKeycloakify = xKeycloakify + { "resourcesPath": resourceUrl }>
|
||||
</#if>
|
||||
|
||||
const kcContext = ${toJsDeclarationString(.data_model, [])?no_esc};
|
||||
kcContext.keycloakifyVersion = "${xKeycloakify.keycloakifyVersion}";
|
||||
kcContext.themeVersion = "${xKeycloakify.themeVersion}";
|
||||
kcContext.themeType = "${xKeycloakify.themeType}";
|
||||
kcContext.themeName = "${xKeycloakify.themeName}";
|
||||
kcContext.pageId = "${xKeycloakify.pageId}";
|
||||
kcContext.ftlTemplateFileName = "${xKeycloakify.ftlTemplateFileName}";
|
||||
|
||||
<@addNonAutomaticallyGatherableMessagesToXKeycloakifyMessages />
|
||||
|
||||
kcContext["x-keycloakify"] = {};
|
||||
|
||||
kcContext["x-keycloakify"].resourcesPath = "${xKeycloakify.resourcesPath}";
|
||||
|
||||
{
|
||||
var messages = {};
|
||||
<#list xKeycloakify.messages as key, resolvedMsg>
|
||||
messages["${key}"] = decodeHtmlEntities("${resolvedMsg?js_string}");
|
||||
</#list>
|
||||
kcContext["x-keycloakify"].messages = messages;
|
||||
}
|
||||
|
||||
if(
|
||||
kcContext.url instanceof Object &&
|
||||
typeof kcContext.url.resourcesPath === "string"
|
||||
){
|
||||
kcContext.url.resourcesCommonPath = kcContext.url.resourcesPath + "/resources-common";
|
||||
}
|
||||
|
||||
if( kcContext.messagesPerField ){
|
||||
var existsError_singleFieldName = kcContext.messagesPerField.existsError;
|
||||
kcContext.messagesPerField.existsError = function (){
|
||||
for( let i = 0; i < arguments.length; i++ ){
|
||||
if( existsError_singleFieldName(arguments[i]) ){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
};
|
||||
kcContext.messagesPerField.exists = function (fieldName) {
|
||||
return kcContext.messagesPerField.get(fieldName) !== "";
|
||||
};
|
||||
kcContext.messagesPerField.printIfExists = function (fieldName, text) {
|
||||
return kcContext.messagesPerField.exists(fieldName) ? text : undefined;
|
||||
};
|
||||
kcContext.messagesPerField.getFirstError = function () {
|
||||
for( let i = 0; i < arguments.length; i++ ){
|
||||
const fieldName = arguments[i];
|
||||
if( kcContext.messagesPerField.existsError(fieldName) ){
|
||||
return kcContext.messagesPerField.get(fieldName);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
attributes_to_attributesByName: {
|
||||
if( !kcContext.profile ){
|
||||
break attributes_to_attributesByName;
|
||||
}
|
||||
if( !kcContext.profile.attributes ){
|
||||
break attributes_to_attributesByName;
|
||||
}
|
||||
var attributes = kcContext.profile.attributes;
|
||||
delete kcContext.profile.attributes;
|
||||
kcContext.profile.attributesByName = {};
|
||||
attributes.forEach(function(attribute){
|
||||
kcContext.profile.attributesByName[attribute.name] = attribute;
|
||||
});
|
||||
}
|
||||
|
||||
redirect_to_dev_server: {
|
||||
|
||||
switch(kcContext.themeType){
|
||||
case "login":
|
||||
break redirect_to_dev_server;
|
||||
case "account":
|
||||
if( kcContext.pageId !== "index.ftl" ){
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
break;
|
||||
case "admin":
|
||||
break;
|
||||
default:
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
|
||||
const devSeverPort = kcContext.properties.KEYCLOAKIFY_SPA_DEV_SERVER_PORT;
|
||||
|
||||
if( !devSeverPort ){
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
|
||||
const redirectUrl = new URL(window.location.href);
|
||||
|
||||
redirectUrl.port = devSeverPort;
|
||||
|
||||
delete kcContext.msgJSON;
|
||||
|
||||
console.log(kcContext);
|
||||
|
||||
redirectUrl.searchParams.set("kcContext", encodeURIComponent(JSON.stringify(kcContext)));
|
||||
|
||||
window.location.href = redirectUrl.toString();
|
||||
|
||||
}
|
||||
|
||||
|
||||
window.kcContext = kcContext;
|
||||
|
||||
|
||||
<#if xKeycloakify.themeType == "login" >
|
||||
{
|
||||
const script = document.createElement("script");
|
||||
script.type = "importmap";
|
||||
script.textContent = JSON.stringify({
|
||||
imports: {
|
||||
"rfc4648": kcContext.url.resourcesCommonPath + "/node_modules/rfc4648/lib/rfc4648.js"
|
||||
}
|
||||
}, null, 2);
|
||||
|
||||
document.head.appendChild(script);
|
||||
}
|
||||
</#if>
|
||||
|
||||
function decodeHtmlEntities(htmlStr){
|
||||
var element = decodeHtmlEntities.element;
|
||||
if (!element) {
|
||||
element = document.createElement("textarea");
|
||||
decodeHtmlEntities.element = element;
|
||||
}
|
||||
element.innerHTML = htmlStr;
|
||||
return element.value;
|
||||
}
|
||||
|
||||
<#function toJsDeclarationString object path>
|
||||
<#local isHash = -1>
|
||||
<#attempt>
|
||||
<#local isHash = object?is_hash || object?is_hash_ex>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't evaluate if " + path?join(".") + " is a hash">
|
||||
</#attempt>
|
||||
|
||||
<#if isHash>
|
||||
<#if path?size gt 10>
|
||||
<#return "ABORT: Too many recursive calls, path: " + path?join(".")>
|
||||
</#if>
|
||||
<#local keys = -1>
|
||||
|
||||
<#attempt>
|
||||
<#local keys = object?keys>
|
||||
<#recover>
|
||||
<#return "ABORT: We can't list keys on object">
|
||||
</#attempt>
|
||||
|
||||
<#local outSeq = []>
|
||||
|
||||
<#list keys as key>
|
||||
<#if ["class","declaredConstructors","superclass","declaringClass" ]?seq_contains(key) >
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if (
|
||||
areSamePath(path, ["url"]) &&
|
||||
["loginUpdatePasswordUrl", "loginUpdateProfileUrl", "loginUsernameReminderUrl", "loginUpdateTotpUrl"]?seq_contains(key)
|
||||
) || (
|
||||
key == "updateProfileCtx" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
<#-- https://github.com/keycloakify/keycloakify/pull/65#issuecomment-991896344 (reports with saml-post-form.ftl) -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/91#issue-1212319466 (reports with error.ftl and Kc18) -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/109#issuecomment-1134610163 -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/357 -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/discussions/406#discussioncomment-7514787 -->
|
||||
key == "loginAction" &&
|
||||
areSamePath(path, ["url"]) &&
|
||||
["saml-post-form.ftl", "error.ftl", "info.ftl", "login-oauth-grant.ftl", "logout-confirm.ftl", "login-oauth2-device-verify-user-code.ftl"]?seq_contains(xKeycloakify.pageId) &&
|
||||
!(auth?has_content && auth.showTryAnotherWayLink())
|
||||
) || (
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/362 -->
|
||||
["secretData", "value"]?seq_contains(key) &&
|
||||
areSamePath(path, [ "totp", "otpCredentials", "*" ])
|
||||
) || (
|
||||
["contextData", "idpConfig", "idp", "authenticationSession"]?seq_contains(key) &&
|
||||
areSamePath(path, ["brokerContext"]) &&
|
||||
["login-idp-link-confirm.ftl", "login-idp-link-email.ftl" ]?seq_contains(xKeycloakify.pageId)
|
||||
) || (
|
||||
key == "identityProviderBrokerCtx" &&
|
||||
areSamePath(path, []) &&
|
||||
["login-idp-link-confirm.ftl", "login-idp-link-email.ftl" ]?seq_contains(xKeycloakify.pageId)
|
||||
) || (
|
||||
["masterAdminClient", "delegateForUpdate", "defaultRole", "smtpConfig"]?seq_contains(key) &&
|
||||
areSamePath(path, ["realm"])
|
||||
) || (
|
||||
xKeycloakify.pageId == "error.ftl" &&
|
||||
areSamePath(path, ["realm"]) &&
|
||||
!["name", "displayName", "displayNameHtml", "internationalizationEnabled", "registrationEmailAsUsername" ]?seq_contains(key)
|
||||
) || (
|
||||
xKeycloakify.pageId == "applications.ftl" &&
|
||||
(
|
||||
key == "realm" ||
|
||||
key == "container"
|
||||
) &&
|
||||
isSubpath(path, ["applications", "applications"])
|
||||
) || (
|
||||
key == "delegateForUpdate" &&
|
||||
areSamePath(path, ["user"])
|
||||
) || (
|
||||
<#-- Security audit forwarded by Garth (Gmail) -->
|
||||
key == "saml.signing.private.key" &&
|
||||
areSamePath(path, ["client", "attributes"])
|
||||
) || (
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/534 -->
|
||||
key == "password" &&
|
||||
areSamePath(path, ["login"])
|
||||
) || (
|
||||
<#-- Remove realmAttributes added by https://github.com/jcputney/keycloak-theme-additional-info-extension for peace of mind. -->
|
||||
key == "realmAttributes" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
<#-- attributesByName adds a lot of noise to the output and is not needed, we already have profile.attributes -->
|
||||
key == "attributesByName" &&
|
||||
areSamePath(path, ["profile"])
|
||||
) || (
|
||||
<#-- We already have the attributes in profile speedup the rendering by filtering it out from the register object -->
|
||||
(key == "attributes" || key == "attributesByName") &&
|
||||
areSamePath(path, ["register"])
|
||||
) || (
|
||||
areSamePath(path, ["properties"]) &&
|
||||
(
|
||||
key?starts_with("kc") ||
|
||||
key == "locales" ||
|
||||
key == "import" ||
|
||||
key == "parent" ||
|
||||
key == "meta" ||
|
||||
key == "stylesCommon" ||
|
||||
key == "styles" ||
|
||||
key == "accountResourceProvider"
|
||||
)
|
||||
) || (
|
||||
key == "execution" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
key == "entity" &&
|
||||
areSamePath(path, ["user"])
|
||||
) || (
|
||||
key == "attributes" &&
|
||||
areSamePath(path, ["realm"])
|
||||
) || (
|
||||
xKeycloakify.pageId == "index.ftl" &&
|
||||
xKeycloakify.themeType == "account" &&
|
||||
areSamePath(path, ["realm"]) &&
|
||||
![
|
||||
"name",
|
||||
"registrationEmailAsUsername",
|
||||
"editUsernameAllowed",
|
||||
"isInternationalizationEnabled",
|
||||
"identityFederationEnabled",
|
||||
"userManagedAccessAllowed"
|
||||
]?seq_contains(key)
|
||||
) || (
|
||||
["flowContext", "session", "realm"]?seq_contains(key) &&
|
||||
areSamePath(path, ["social"])
|
||||
)
|
||||
>
|
||||
<#-- <#local outSeq += ["/*" + path?join(".") + "." + key + " excluded*/"]> -->
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#-- https://github.com/keycloakify/keycloakify/discussions/406 -->
|
||||
<#if (
|
||||
key == "attemptedUsername" &&
|
||||
areSamePath(path, ["auth"]) &&
|
||||
[
|
||||
"register.ftl", "terms.ftl", "info.ftl", "login.ftl",
|
||||
"login-update-password.ftl", "login-oauth2-device-verify-user-code.ftl"
|
||||
]?seq_contains(xKeycloakify.pageId)
|
||||
)>
|
||||
<#attempt>
|
||||
<#-- https://github.com/keycloak/keycloak/blob/3a2bf0c04bcde185e497aaa32d0bb7ab7520cf4a/themes/src/main/resources/theme/base/login/template.ftl#L63 -->
|
||||
<#if !(auth?has_content && auth.showUsername() && !auth.showResetCredentials())>
|
||||
<#local outSeq += ["/*" + path?join(".") + "." + key + " excluded*/"]>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Accessing attemptedUsername throwed an exception */"]>
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
|
||||
|
||||
<#attempt>
|
||||
<#if !object[key]??>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Couldn't test if '" + key + "' is available on this object*/"]>
|
||||
<#continue>
|
||||
</#attempt>
|
||||
|
||||
<#local propertyValue = -1>
|
||||
|
||||
<#attempt>
|
||||
<#local propertyValue = object[key]>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Couldn't dereference '" + key + "' on this object*/"]>
|
||||
<#continue>
|
||||
</#attempt>
|
||||
|
||||
<#local recOut = toJsDeclarationString(propertyValue, path + [ key ])>
|
||||
|
||||
<#if recOut?starts_with("ABORT:")>
|
||||
|
||||
<#local errorMessage = recOut?remove_beginning("ABORT:")>
|
||||
|
||||
<#if errorMessage != " It's a method" >
|
||||
<#local outSeq += ["/*" + key + ": " + errorMessage + "*/"]>
|
||||
</#if>
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local outSeq += ['"' + key + '": ' + recOut + ","]>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return (["{"] + outSeq?map(str -> ""?right_pad(4 * (path?size + 1)) + str) + [ ""?right_pad(4 * path?size) + "}"])?join("\n")>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local isMethod = -1>
|
||||
<#attempt>
|
||||
<#local isMethod = object?is_method>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it'sa method.">
|
||||
</#attempt>
|
||||
|
||||
<#if isMethod>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showUsername"])>
|
||||
<#attempt>
|
||||
<#return auth.showUsername()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showUsername()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showResetCredentials"])>
|
||||
<#attempt>
|
||||
<#return auth.showResetCredentials()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showResetCredentials()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showTryAnotherWayLink"])>
|
||||
<#attempt>
|
||||
<#return auth.showTryAnotherWayLink()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showTryAnotherWayLink()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["url", "getLogoutUrl"])>
|
||||
<#local returnValue = -1>
|
||||
<#attempt>
|
||||
<#local returnValue = url.getLogoutUrl()>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate url.getLogoutUrl()">
|
||||
</#attempt>
|
||||
<#return 'function(){ return "' + returnValue + '"; }'>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["totp", "policy", "getAlgorithmKey"])>
|
||||
<#local returnValue = "error">
|
||||
<#if mode?? && mode = "manual">
|
||||
<#attempt>
|
||||
<#local returnValue = totp.policy.getAlgorithmKey()>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate totp.policy.getAlgorithmKey()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
<#return 'function(){ return "' + returnValue + '"; }'>
|
||||
</#if>
|
||||
|
||||
<#assign fieldNames = ["firstName", "lastName", "email", "username", "password", "password-confirm", "global", "totp", "userLabel", "recoveryCodeInput", "termsAccepted"]>
|
||||
<#if profile?? && profile.attributes??>
|
||||
<#list profile.attributes as attribute>
|
||||
<#if fieldNames?seq_contains(attribute.name)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#assign fieldNames += [attribute.name]>
|
||||
</#list>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["messagesPerField", "get"])>
|
||||
|
||||
<#local jsFunctionCode = "function (fieldName) { ">
|
||||
|
||||
<#list fieldNames as fieldName>
|
||||
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/217 -->
|
||||
<#if xKeycloakify.pageId == "login.ftl" >
|
||||
|
||||
<#if fieldName == "username">
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === 'username' || fieldName === 'password' ){ ">
|
||||
|
||||
<#if messagesPerField.exists('username') || messagesPerField.exists('password')>
|
||||
<#local jsFunctionCode += "return kcContext.message && kcContext.message.summary ? kcContext.message.summary : 'error'; ">
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return ''; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if fieldName == "password">
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === '" + fieldName + "'){ ">
|
||||
|
||||
<#if messagesPerField.exists('${fieldName}')>
|
||||
<#local jsFunctionCode += 'return decodeHtmlEntities("' + messagesPerField.get('${fieldName}')?js_string + '"); '>
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return ''; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
</#list>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
<#return jsFunctionCode>
|
||||
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["messagesPerField", "existsError"])>
|
||||
|
||||
<#local jsFunctionCode = "function (fieldName) { ">
|
||||
|
||||
<#list fieldNames as fieldName>
|
||||
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/217 -->
|
||||
<#if xKeycloakify.pageId == "login.ftl" >
|
||||
<#if fieldName == "username">
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === 'username' || fieldName === 'password' ){ ">
|
||||
|
||||
<#if messagesPerField.existsError('username') || messagesPerField.existsError('password')>
|
||||
<#local jsFunctionCode += "return true; ">
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return false; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if fieldName == "password">
|
||||
<#continue>
|
||||
</#if>
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === '" + fieldName + "' ){ ">
|
||||
|
||||
<#if messagesPerField.existsError('${fieldName}')>
|
||||
<#local jsFunctionCode += 'return true; '>
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return false; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
</#list>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
<#return jsFunctionCode>
|
||||
|
||||
</#if>
|
||||
|
||||
<#if xKeycloakify.themeType == "account" && areSamePath(path, ["realm", "isInternationalizationEnabled"])>
|
||||
<#attempt>
|
||||
<#return realm.isInternationalizationEnabled()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate realm.isInternationalizationEnabled()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#return "ABORT: It's a method">
|
||||
</#if>
|
||||
|
||||
<#local isBoolean = -1>
|
||||
<#attempt>
|
||||
<#local isBoolean = object?is_boolean>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a boolean">
|
||||
</#attempt>
|
||||
|
||||
<#if isBoolean>
|
||||
<#return object?c>
|
||||
</#if>
|
||||
|
||||
<#local isEnumerable = -1>
|
||||
<#attempt>
|
||||
<#local isEnumerable = object?is_enumerable>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's an enumerable">
|
||||
</#attempt>
|
||||
|
||||
|
||||
<#if isEnumerable>
|
||||
|
||||
<#local outSeq = []>
|
||||
|
||||
<#local i = 0>
|
||||
|
||||
<#list object as array_item>
|
||||
|
||||
<#if !array_item??>
|
||||
<#local outSeq += ["null,"]>
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local recOut = toJsDeclarationString(array_item, path + [ i ])>
|
||||
|
||||
<#local i = i + 1>
|
||||
|
||||
<#if recOut?starts_with("ABORT:")>
|
||||
|
||||
<#local errorMessage = recOut?remove_beginning("ABORT:")>
|
||||
|
||||
<#if errorMessage != " It's a method" >
|
||||
<#local outSeq += ["/*" + i?string + ": " + errorMessage + "*/"]>
|
||||
</#if>
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local outSeq += [recOut + ","]>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return (["["] + outSeq?map(str -> ""?right_pad(4 * (path?size + 1)) + str) + [ ""?right_pad(4 * path?size) + "]"])?join("\n")>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local isDate = -1>
|
||||
<#attempt>
|
||||
<#local isDate = object?is_date_like>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a date">
|
||||
</#attempt>
|
||||
|
||||
<#if isDate>
|
||||
<#return '"' + object?datetime?iso_utc + '"'>
|
||||
</#if>
|
||||
|
||||
<#local isNumber = -1>
|
||||
<#attempt>
|
||||
<#local isNumber = object?is_number>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a number">
|
||||
</#attempt>
|
||||
|
||||
<#if isNumber>
|
||||
<#return object?c>
|
||||
</#if>
|
||||
|
||||
<#local isString = -1>
|
||||
<#attempt>
|
||||
<#local isString = object?is_string>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a string">
|
||||
</#attempt>
|
||||
|
||||
<#if isString>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str=object />
|
||||
</#if>
|
||||
|
||||
<#attempt>
|
||||
<#return '"' + object?js_string + '"'>;
|
||||
<#recover>
|
||||
</#attempt>
|
||||
|
||||
<#return "ABORT: Couldn't convert into string non hash, non method, non boolean, non number, non enumerable object">
|
||||
|
||||
</#function>
|
||||
<#function isSubpath path searchedPath>
|
||||
|
||||
<#if path?size < searchedPath?size>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#local i=0>
|
||||
|
||||
<#list path as property>
|
||||
|
||||
<#if i == searchedPath?size >
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local searchedProperty=searchedPath[i]>
|
||||
|
||||
<#local i+= 1>
|
||||
|
||||
<#if searchedProperty?is_string && searchedProperty == "*">
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?is_string && !property?is_string>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?is_number && !property?is_number>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?string != property?string>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return true>
|
||||
|
||||
</#function>
|
||||
|
||||
<#function areSamePath path searchedPath>
|
||||
<#return path?size == searchedPath?size && isSubpath(path, searchedPath)>
|
||||
</#function>
|
||||
|
||||
<#macro addToXKeycloakifyMessagesIfMessageKey str>
|
||||
<#if !msg?? || !msg?is_method>
|
||||
<#return>
|
||||
</#if>
|
||||
<#if (str?length > 200)>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local key=removeBrackets(str)>
|
||||
<#if key?length==0>
|
||||
<#return>
|
||||
</#if>
|
||||
<#if !(key?matches(r"^[a-zA-Z0-9-_.]*$"))>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local resolvedMsg=msg(key)>
|
||||
<#if resolvedMsg==key>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local messages=xKeycloakify.messages>
|
||||
<#local messages = messages + { key: resolvedMsg }>
|
||||
<#assign xKeycloakify = xKeycloakify + { "messages": messages }>
|
||||
</#macro>
|
||||
|
||||
<#function removeBrackets str>
|
||||
<#if str?starts_with("${") && str?ends_with("}")>
|
||||
<#return str[2..(str?length-2)]>
|
||||
<#else>
|
||||
<#return str>
|
||||
</#if>
|
||||
</#function>
|
||||
|
||||
<#macro addNonAutomaticallyGatherableMessagesToXKeycloakifyMessages>
|
||||
<#if profile?? && profile?is_hash && profile.attributes?? && profile.attributes?is_enumerable>
|
||||
<#list profile.attributes as attribute>
|
||||
<#if !(
|
||||
attribute.annotations?? && attribute.annotations?is_hash &&
|
||||
attribute.annotations.inputOptionLabelsI18nPrefix?? && attribute.annotations.inputOptionLabelsI18nPrefix?is_string
|
||||
)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#local prefix=attribute.annotations.inputOptionLabelsI18nPrefix>
|
||||
<#if !(
|
||||
attribute.validators?? && attribute.validators?is_hash &&
|
||||
attribute.validators.options?? && attribute.validators.options?is_hash &&
|
||||
attribute.validators.options.options?? && attribute.validators.options.options?is_enumerable
|
||||
)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#list attribute.validators.options.options as option>
|
||||
<#if !option?is_string>
|
||||
<#continue>
|
||||
</#if>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="${prefix}.${option}" />
|
||||
</#list>
|
||||
</#list>
|
||||
</#if>
|
||||
<#if xKeycloakify.pageId == "terms.ftl" || termsAcceptanceRequired?? && termsAcceptanceRequired>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="termsText" />
|
||||
</#if>
|
||||
<#if requiredActions?? && requiredActions?is_enumerable>
|
||||
<#list requiredActions as requiredAction>
|
||||
<#if !requiredAction?is_string>
|
||||
<#continue>
|
||||
</#if>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="requiredAction.${requiredAction}" />
|
||||
</#list>
|
||||
</#if>
|
||||
</#macro>
|
||||
|
||||
</script>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="${xKeycloakify.resourcesPath}/dist/favicon-32x32.png">
|
||||
<script type="module" crossorigin="" src="${xKeycloakify.resourcesPath}/dist/assets/index-6-NnS-wp.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="root"></div>
|
||||
|
||||
|
||||
</body></html>
|
@ -0,0 +1,739 @@
|
||||
<!DOCTYPE html><html><head><script>
|
||||
<#assign xKeycloakify={
|
||||
"messages": {},
|
||||
"pageId": "login-update-profile.ftl",
|
||||
"ftlTemplateFileName": "login-update-profile.ftl",
|
||||
"themeType": "login",
|
||||
"themeName": "keycloakify-starter",
|
||||
"keycloakifyVersion": "11.4.4",
|
||||
"themeVersion": "0.0.0",
|
||||
"resourcesPath": ""
|
||||
}>
|
||||
|
||||
<#if url?? && url?is_hash && url.resourcesPath?? && url.resourcesPath?is_string>
|
||||
<#assign xKeycloakify = xKeycloakify + { "resourcesPath": url.resourcesPath }>
|
||||
</#if>
|
||||
<#if resourceUrl?? && resourceUrl?is_string>
|
||||
<#assign xKeycloakify = xKeycloakify + { "resourcesPath": resourceUrl }>
|
||||
</#if>
|
||||
|
||||
const kcContext = ${toJsDeclarationString(.data_model, [])?no_esc};
|
||||
kcContext.keycloakifyVersion = "${xKeycloakify.keycloakifyVersion}";
|
||||
kcContext.themeVersion = "${xKeycloakify.themeVersion}";
|
||||
kcContext.themeType = "${xKeycloakify.themeType}";
|
||||
kcContext.themeName = "${xKeycloakify.themeName}";
|
||||
kcContext.pageId = "${xKeycloakify.pageId}";
|
||||
kcContext.ftlTemplateFileName = "${xKeycloakify.ftlTemplateFileName}";
|
||||
|
||||
<@addNonAutomaticallyGatherableMessagesToXKeycloakifyMessages />
|
||||
|
||||
kcContext["x-keycloakify"] = {};
|
||||
|
||||
kcContext["x-keycloakify"].resourcesPath = "${xKeycloakify.resourcesPath}";
|
||||
|
||||
{
|
||||
var messages = {};
|
||||
<#list xKeycloakify.messages as key, resolvedMsg>
|
||||
messages["${key}"] = decodeHtmlEntities("${resolvedMsg?js_string}");
|
||||
</#list>
|
||||
kcContext["x-keycloakify"].messages = messages;
|
||||
}
|
||||
|
||||
if(
|
||||
kcContext.url instanceof Object &&
|
||||
typeof kcContext.url.resourcesPath === "string"
|
||||
){
|
||||
kcContext.url.resourcesCommonPath = kcContext.url.resourcesPath + "/resources-common";
|
||||
}
|
||||
|
||||
if( kcContext.messagesPerField ){
|
||||
var existsError_singleFieldName = kcContext.messagesPerField.existsError;
|
||||
kcContext.messagesPerField.existsError = function (){
|
||||
for( let i = 0; i < arguments.length; i++ ){
|
||||
if( existsError_singleFieldName(arguments[i]) ){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
};
|
||||
kcContext.messagesPerField.exists = function (fieldName) {
|
||||
return kcContext.messagesPerField.get(fieldName) !== "";
|
||||
};
|
||||
kcContext.messagesPerField.printIfExists = function (fieldName, text) {
|
||||
return kcContext.messagesPerField.exists(fieldName) ? text : undefined;
|
||||
};
|
||||
kcContext.messagesPerField.getFirstError = function () {
|
||||
for( let i = 0; i < arguments.length; i++ ){
|
||||
const fieldName = arguments[i];
|
||||
if( kcContext.messagesPerField.existsError(fieldName) ){
|
||||
return kcContext.messagesPerField.get(fieldName);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
attributes_to_attributesByName: {
|
||||
if( !kcContext.profile ){
|
||||
break attributes_to_attributesByName;
|
||||
}
|
||||
if( !kcContext.profile.attributes ){
|
||||
break attributes_to_attributesByName;
|
||||
}
|
||||
var attributes = kcContext.profile.attributes;
|
||||
delete kcContext.profile.attributes;
|
||||
kcContext.profile.attributesByName = {};
|
||||
attributes.forEach(function(attribute){
|
||||
kcContext.profile.attributesByName[attribute.name] = attribute;
|
||||
});
|
||||
}
|
||||
|
||||
redirect_to_dev_server: {
|
||||
|
||||
switch(kcContext.themeType){
|
||||
case "login":
|
||||
break redirect_to_dev_server;
|
||||
case "account":
|
||||
if( kcContext.pageId !== "index.ftl" ){
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
break;
|
||||
case "admin":
|
||||
break;
|
||||
default:
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
|
||||
const devSeverPort = kcContext.properties.KEYCLOAKIFY_SPA_DEV_SERVER_PORT;
|
||||
|
||||
if( !devSeverPort ){
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
|
||||
const redirectUrl = new URL(window.location.href);
|
||||
|
||||
redirectUrl.port = devSeverPort;
|
||||
|
||||
delete kcContext.msgJSON;
|
||||
|
||||
console.log(kcContext);
|
||||
|
||||
redirectUrl.searchParams.set("kcContext", encodeURIComponent(JSON.stringify(kcContext)));
|
||||
|
||||
window.location.href = redirectUrl.toString();
|
||||
|
||||
}
|
||||
|
||||
|
||||
window.kcContext = kcContext;
|
||||
|
||||
|
||||
<#if xKeycloakify.themeType == "login" >
|
||||
{
|
||||
const script = document.createElement("script");
|
||||
script.type = "importmap";
|
||||
script.textContent = JSON.stringify({
|
||||
imports: {
|
||||
"rfc4648": kcContext.url.resourcesCommonPath + "/node_modules/rfc4648/lib/rfc4648.js"
|
||||
}
|
||||
}, null, 2);
|
||||
|
||||
document.head.appendChild(script);
|
||||
}
|
||||
</#if>
|
||||
|
||||
function decodeHtmlEntities(htmlStr){
|
||||
var element = decodeHtmlEntities.element;
|
||||
if (!element) {
|
||||
element = document.createElement("textarea");
|
||||
decodeHtmlEntities.element = element;
|
||||
}
|
||||
element.innerHTML = htmlStr;
|
||||
return element.value;
|
||||
}
|
||||
|
||||
<#function toJsDeclarationString object path>
|
||||
<#local isHash = -1>
|
||||
<#attempt>
|
||||
<#local isHash = object?is_hash || object?is_hash_ex>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't evaluate if " + path?join(".") + " is a hash">
|
||||
</#attempt>
|
||||
|
||||
<#if isHash>
|
||||
<#if path?size gt 10>
|
||||
<#return "ABORT: Too many recursive calls, path: " + path?join(".")>
|
||||
</#if>
|
||||
<#local keys = -1>
|
||||
|
||||
<#attempt>
|
||||
<#local keys = object?keys>
|
||||
<#recover>
|
||||
<#return "ABORT: We can't list keys on object">
|
||||
</#attempt>
|
||||
|
||||
<#local outSeq = []>
|
||||
|
||||
<#list keys as key>
|
||||
<#if ["class","declaredConstructors","superclass","declaringClass" ]?seq_contains(key) >
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if (
|
||||
areSamePath(path, ["url"]) &&
|
||||
["loginUpdatePasswordUrl", "loginUpdateProfileUrl", "loginUsernameReminderUrl", "loginUpdateTotpUrl"]?seq_contains(key)
|
||||
) || (
|
||||
key == "updateProfileCtx" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
<#-- https://github.com/keycloakify/keycloakify/pull/65#issuecomment-991896344 (reports with saml-post-form.ftl) -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/91#issue-1212319466 (reports with error.ftl and Kc18) -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/109#issuecomment-1134610163 -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/357 -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/discussions/406#discussioncomment-7514787 -->
|
||||
key == "loginAction" &&
|
||||
areSamePath(path, ["url"]) &&
|
||||
["saml-post-form.ftl", "error.ftl", "info.ftl", "login-oauth-grant.ftl", "logout-confirm.ftl", "login-oauth2-device-verify-user-code.ftl"]?seq_contains(xKeycloakify.pageId) &&
|
||||
!(auth?has_content && auth.showTryAnotherWayLink())
|
||||
) || (
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/362 -->
|
||||
["secretData", "value"]?seq_contains(key) &&
|
||||
areSamePath(path, [ "totp", "otpCredentials", "*" ])
|
||||
) || (
|
||||
["contextData", "idpConfig", "idp", "authenticationSession"]?seq_contains(key) &&
|
||||
areSamePath(path, ["brokerContext"]) &&
|
||||
["login-idp-link-confirm.ftl", "login-idp-link-email.ftl" ]?seq_contains(xKeycloakify.pageId)
|
||||
) || (
|
||||
key == "identityProviderBrokerCtx" &&
|
||||
areSamePath(path, []) &&
|
||||
["login-idp-link-confirm.ftl", "login-idp-link-email.ftl" ]?seq_contains(xKeycloakify.pageId)
|
||||
) || (
|
||||
["masterAdminClient", "delegateForUpdate", "defaultRole", "smtpConfig"]?seq_contains(key) &&
|
||||
areSamePath(path, ["realm"])
|
||||
) || (
|
||||
xKeycloakify.pageId == "error.ftl" &&
|
||||
areSamePath(path, ["realm"]) &&
|
||||
!["name", "displayName", "displayNameHtml", "internationalizationEnabled", "registrationEmailAsUsername" ]?seq_contains(key)
|
||||
) || (
|
||||
xKeycloakify.pageId == "applications.ftl" &&
|
||||
(
|
||||
key == "realm" ||
|
||||
key == "container"
|
||||
) &&
|
||||
isSubpath(path, ["applications", "applications"])
|
||||
) || (
|
||||
key == "delegateForUpdate" &&
|
||||
areSamePath(path, ["user"])
|
||||
) || (
|
||||
<#-- Security audit forwarded by Garth (Gmail) -->
|
||||
key == "saml.signing.private.key" &&
|
||||
areSamePath(path, ["client", "attributes"])
|
||||
) || (
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/534 -->
|
||||
key == "password" &&
|
||||
areSamePath(path, ["login"])
|
||||
) || (
|
||||
<#-- Remove realmAttributes added by https://github.com/jcputney/keycloak-theme-additional-info-extension for peace of mind. -->
|
||||
key == "realmAttributes" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
<#-- attributesByName adds a lot of noise to the output and is not needed, we already have profile.attributes -->
|
||||
key == "attributesByName" &&
|
||||
areSamePath(path, ["profile"])
|
||||
) || (
|
||||
<#-- We already have the attributes in profile speedup the rendering by filtering it out from the register object -->
|
||||
(key == "attributes" || key == "attributesByName") &&
|
||||
areSamePath(path, ["register"])
|
||||
) || (
|
||||
areSamePath(path, ["properties"]) &&
|
||||
(
|
||||
key?starts_with("kc") ||
|
||||
key == "locales" ||
|
||||
key == "import" ||
|
||||
key == "parent" ||
|
||||
key == "meta" ||
|
||||
key == "stylesCommon" ||
|
||||
key == "styles" ||
|
||||
key == "accountResourceProvider"
|
||||
)
|
||||
) || (
|
||||
key == "execution" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
key == "entity" &&
|
||||
areSamePath(path, ["user"])
|
||||
) || (
|
||||
key == "attributes" &&
|
||||
areSamePath(path, ["realm"])
|
||||
) || (
|
||||
xKeycloakify.pageId == "index.ftl" &&
|
||||
xKeycloakify.themeType == "account" &&
|
||||
areSamePath(path, ["realm"]) &&
|
||||
![
|
||||
"name",
|
||||
"registrationEmailAsUsername",
|
||||
"editUsernameAllowed",
|
||||
"isInternationalizationEnabled",
|
||||
"identityFederationEnabled",
|
||||
"userManagedAccessAllowed"
|
||||
]?seq_contains(key)
|
||||
) || (
|
||||
["flowContext", "session", "realm"]?seq_contains(key) &&
|
||||
areSamePath(path, ["social"])
|
||||
)
|
||||
>
|
||||
<#-- <#local outSeq += ["/*" + path?join(".") + "." + key + " excluded*/"]> -->
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#-- https://github.com/keycloakify/keycloakify/discussions/406 -->
|
||||
<#if (
|
||||
key == "attemptedUsername" &&
|
||||
areSamePath(path, ["auth"]) &&
|
||||
[
|
||||
"register.ftl", "terms.ftl", "info.ftl", "login.ftl",
|
||||
"login-update-password.ftl", "login-oauth2-device-verify-user-code.ftl"
|
||||
]?seq_contains(xKeycloakify.pageId)
|
||||
)>
|
||||
<#attempt>
|
||||
<#-- https://github.com/keycloak/keycloak/blob/3a2bf0c04bcde185e497aaa32d0bb7ab7520cf4a/themes/src/main/resources/theme/base/login/template.ftl#L63 -->
|
||||
<#if !(auth?has_content && auth.showUsername() && !auth.showResetCredentials())>
|
||||
<#local outSeq += ["/*" + path?join(".") + "." + key + " excluded*/"]>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Accessing attemptedUsername throwed an exception */"]>
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
|
||||
|
||||
<#attempt>
|
||||
<#if !object[key]??>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Couldn't test if '" + key + "' is available on this object*/"]>
|
||||
<#continue>
|
||||
</#attempt>
|
||||
|
||||
<#local propertyValue = -1>
|
||||
|
||||
<#attempt>
|
||||
<#local propertyValue = object[key]>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Couldn't dereference '" + key + "' on this object*/"]>
|
||||
<#continue>
|
||||
</#attempt>
|
||||
|
||||
<#local recOut = toJsDeclarationString(propertyValue, path + [ key ])>
|
||||
|
||||
<#if recOut?starts_with("ABORT:")>
|
||||
|
||||
<#local errorMessage = recOut?remove_beginning("ABORT:")>
|
||||
|
||||
<#if errorMessage != " It's a method" >
|
||||
<#local outSeq += ["/*" + key + ": " + errorMessage + "*/"]>
|
||||
</#if>
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local outSeq += ['"' + key + '": ' + recOut + ","]>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return (["{"] + outSeq?map(str -> ""?right_pad(4 * (path?size + 1)) + str) + [ ""?right_pad(4 * path?size) + "}"])?join("\n")>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local isMethod = -1>
|
||||
<#attempt>
|
||||
<#local isMethod = object?is_method>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it'sa method.">
|
||||
</#attempt>
|
||||
|
||||
<#if isMethod>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showUsername"])>
|
||||
<#attempt>
|
||||
<#return auth.showUsername()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showUsername()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showResetCredentials"])>
|
||||
<#attempt>
|
||||
<#return auth.showResetCredentials()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showResetCredentials()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showTryAnotherWayLink"])>
|
||||
<#attempt>
|
||||
<#return auth.showTryAnotherWayLink()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showTryAnotherWayLink()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["url", "getLogoutUrl"])>
|
||||
<#local returnValue = -1>
|
||||
<#attempt>
|
||||
<#local returnValue = url.getLogoutUrl()>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate url.getLogoutUrl()">
|
||||
</#attempt>
|
||||
<#return 'function(){ return "' + returnValue + '"; }'>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["totp", "policy", "getAlgorithmKey"])>
|
||||
<#local returnValue = "error">
|
||||
<#if mode?? && mode = "manual">
|
||||
<#attempt>
|
||||
<#local returnValue = totp.policy.getAlgorithmKey()>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate totp.policy.getAlgorithmKey()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
<#return 'function(){ return "' + returnValue + '"; }'>
|
||||
</#if>
|
||||
|
||||
<#assign fieldNames = ["firstName", "lastName", "email", "username", "password", "password-confirm", "global", "totp", "userLabel", "recoveryCodeInput", "termsAccepted"]>
|
||||
<#if profile?? && profile.attributes??>
|
||||
<#list profile.attributes as attribute>
|
||||
<#if fieldNames?seq_contains(attribute.name)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#assign fieldNames += [attribute.name]>
|
||||
</#list>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["messagesPerField", "get"])>
|
||||
|
||||
<#local jsFunctionCode = "function (fieldName) { ">
|
||||
|
||||
<#list fieldNames as fieldName>
|
||||
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/217 -->
|
||||
<#if xKeycloakify.pageId == "login.ftl" >
|
||||
|
||||
<#if fieldName == "username">
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === 'username' || fieldName === 'password' ){ ">
|
||||
|
||||
<#if messagesPerField.exists('username') || messagesPerField.exists('password')>
|
||||
<#local jsFunctionCode += "return kcContext.message && kcContext.message.summary ? kcContext.message.summary : 'error'; ">
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return ''; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if fieldName == "password">
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === '" + fieldName + "'){ ">
|
||||
|
||||
<#if messagesPerField.exists('${fieldName}')>
|
||||
<#local jsFunctionCode += 'return decodeHtmlEntities("' + messagesPerField.get('${fieldName}')?js_string + '"); '>
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return ''; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
</#list>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
<#return jsFunctionCode>
|
||||
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["messagesPerField", "existsError"])>
|
||||
|
||||
<#local jsFunctionCode = "function (fieldName) { ">
|
||||
|
||||
<#list fieldNames as fieldName>
|
||||
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/217 -->
|
||||
<#if xKeycloakify.pageId == "login.ftl" >
|
||||
<#if fieldName == "username">
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === 'username' || fieldName === 'password' ){ ">
|
||||
|
||||
<#if messagesPerField.existsError('username') || messagesPerField.existsError('password')>
|
||||
<#local jsFunctionCode += "return true; ">
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return false; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if fieldName == "password">
|
||||
<#continue>
|
||||
</#if>
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === '" + fieldName + "' ){ ">
|
||||
|
||||
<#if messagesPerField.existsError('${fieldName}')>
|
||||
<#local jsFunctionCode += 'return true; '>
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return false; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
</#list>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
<#return jsFunctionCode>
|
||||
|
||||
</#if>
|
||||
|
||||
<#if xKeycloakify.themeType == "account" && areSamePath(path, ["realm", "isInternationalizationEnabled"])>
|
||||
<#attempt>
|
||||
<#return realm.isInternationalizationEnabled()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate realm.isInternationalizationEnabled()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#return "ABORT: It's a method">
|
||||
</#if>
|
||||
|
||||
<#local isBoolean = -1>
|
||||
<#attempt>
|
||||
<#local isBoolean = object?is_boolean>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a boolean">
|
||||
</#attempt>
|
||||
|
||||
<#if isBoolean>
|
||||
<#return object?c>
|
||||
</#if>
|
||||
|
||||
<#local isEnumerable = -1>
|
||||
<#attempt>
|
||||
<#local isEnumerable = object?is_enumerable>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's an enumerable">
|
||||
</#attempt>
|
||||
|
||||
|
||||
<#if isEnumerable>
|
||||
|
||||
<#local outSeq = []>
|
||||
|
||||
<#local i = 0>
|
||||
|
||||
<#list object as array_item>
|
||||
|
||||
<#if !array_item??>
|
||||
<#local outSeq += ["null,"]>
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local recOut = toJsDeclarationString(array_item, path + [ i ])>
|
||||
|
||||
<#local i = i + 1>
|
||||
|
||||
<#if recOut?starts_with("ABORT:")>
|
||||
|
||||
<#local errorMessage = recOut?remove_beginning("ABORT:")>
|
||||
|
||||
<#if errorMessage != " It's a method" >
|
||||
<#local outSeq += ["/*" + i?string + ": " + errorMessage + "*/"]>
|
||||
</#if>
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local outSeq += [recOut + ","]>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return (["["] + outSeq?map(str -> ""?right_pad(4 * (path?size + 1)) + str) + [ ""?right_pad(4 * path?size) + "]"])?join("\n")>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local isDate = -1>
|
||||
<#attempt>
|
||||
<#local isDate = object?is_date_like>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a date">
|
||||
</#attempt>
|
||||
|
||||
<#if isDate>
|
||||
<#return '"' + object?datetime?iso_utc + '"'>
|
||||
</#if>
|
||||
|
||||
<#local isNumber = -1>
|
||||
<#attempt>
|
||||
<#local isNumber = object?is_number>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a number">
|
||||
</#attempt>
|
||||
|
||||
<#if isNumber>
|
||||
<#return object?c>
|
||||
</#if>
|
||||
|
||||
<#local isString = -1>
|
||||
<#attempt>
|
||||
<#local isString = object?is_string>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a string">
|
||||
</#attempt>
|
||||
|
||||
<#if isString>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str=object />
|
||||
</#if>
|
||||
|
||||
<#attempt>
|
||||
<#return '"' + object?js_string + '"'>;
|
||||
<#recover>
|
||||
</#attempt>
|
||||
|
||||
<#return "ABORT: Couldn't convert into string non hash, non method, non boolean, non number, non enumerable object">
|
||||
|
||||
</#function>
|
||||
<#function isSubpath path searchedPath>
|
||||
|
||||
<#if path?size < searchedPath?size>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#local i=0>
|
||||
|
||||
<#list path as property>
|
||||
|
||||
<#if i == searchedPath?size >
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local searchedProperty=searchedPath[i]>
|
||||
|
||||
<#local i+= 1>
|
||||
|
||||
<#if searchedProperty?is_string && searchedProperty == "*">
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?is_string && !property?is_string>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?is_number && !property?is_number>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?string != property?string>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return true>
|
||||
|
||||
</#function>
|
||||
|
||||
<#function areSamePath path searchedPath>
|
||||
<#return path?size == searchedPath?size && isSubpath(path, searchedPath)>
|
||||
</#function>
|
||||
|
||||
<#macro addToXKeycloakifyMessagesIfMessageKey str>
|
||||
<#if !msg?? || !msg?is_method>
|
||||
<#return>
|
||||
</#if>
|
||||
<#if (str?length > 200)>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local key=removeBrackets(str)>
|
||||
<#if key?length==0>
|
||||
<#return>
|
||||
</#if>
|
||||
<#if !(key?matches(r"^[a-zA-Z0-9-_.]*$"))>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local resolvedMsg=msg(key)>
|
||||
<#if resolvedMsg==key>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local messages=xKeycloakify.messages>
|
||||
<#local messages = messages + { key: resolvedMsg }>
|
||||
<#assign xKeycloakify = xKeycloakify + { "messages": messages }>
|
||||
</#macro>
|
||||
|
||||
<#function removeBrackets str>
|
||||
<#if str?starts_with("${") && str?ends_with("}")>
|
||||
<#return str[2..(str?length-2)]>
|
||||
<#else>
|
||||
<#return str>
|
||||
</#if>
|
||||
</#function>
|
||||
|
||||
<#macro addNonAutomaticallyGatherableMessagesToXKeycloakifyMessages>
|
||||
<#if profile?? && profile?is_hash && profile.attributes?? && profile.attributes?is_enumerable>
|
||||
<#list profile.attributes as attribute>
|
||||
<#if !(
|
||||
attribute.annotations?? && attribute.annotations?is_hash &&
|
||||
attribute.annotations.inputOptionLabelsI18nPrefix?? && attribute.annotations.inputOptionLabelsI18nPrefix?is_string
|
||||
)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#local prefix=attribute.annotations.inputOptionLabelsI18nPrefix>
|
||||
<#if !(
|
||||
attribute.validators?? && attribute.validators?is_hash &&
|
||||
attribute.validators.options?? && attribute.validators.options?is_hash &&
|
||||
attribute.validators.options.options?? && attribute.validators.options.options?is_enumerable
|
||||
)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#list attribute.validators.options.options as option>
|
||||
<#if !option?is_string>
|
||||
<#continue>
|
||||
</#if>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="${prefix}.${option}" />
|
||||
</#list>
|
||||
</#list>
|
||||
</#if>
|
||||
<#if xKeycloakify.pageId == "terms.ftl" || termsAcceptanceRequired?? && termsAcceptanceRequired>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="termsText" />
|
||||
</#if>
|
||||
<#if requiredActions?? && requiredActions?is_enumerable>
|
||||
<#list requiredActions as requiredAction>
|
||||
<#if !requiredAction?is_string>
|
||||
<#continue>
|
||||
</#if>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="requiredAction.${requiredAction}" />
|
||||
</#list>
|
||||
</#if>
|
||||
</#macro>
|
||||
|
||||
</script>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="${xKeycloakify.resourcesPath}/dist/favicon-32x32.png">
|
||||
<script type="module" crossorigin="" src="${xKeycloakify.resourcesPath}/dist/assets/index-6-NnS-wp.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="root"></div>
|
||||
|
||||
|
||||
</body></html>
|
739
dist_keycloak/theme/keycloakify-starter/login/login-username.ftl
Normal file
739
dist_keycloak/theme/keycloakify-starter/login/login-username.ftl
Normal file
@ -0,0 +1,739 @@
|
||||
<!DOCTYPE html><html><head><script>
|
||||
<#assign xKeycloakify={
|
||||
"messages": {},
|
||||
"pageId": "login-username.ftl",
|
||||
"ftlTemplateFileName": "login-username.ftl",
|
||||
"themeType": "login",
|
||||
"themeName": "keycloakify-starter",
|
||||
"keycloakifyVersion": "11.4.4",
|
||||
"themeVersion": "0.0.0",
|
||||
"resourcesPath": ""
|
||||
}>
|
||||
|
||||
<#if url?? && url?is_hash && url.resourcesPath?? && url.resourcesPath?is_string>
|
||||
<#assign xKeycloakify = xKeycloakify + { "resourcesPath": url.resourcesPath }>
|
||||
</#if>
|
||||
<#if resourceUrl?? && resourceUrl?is_string>
|
||||
<#assign xKeycloakify = xKeycloakify + { "resourcesPath": resourceUrl }>
|
||||
</#if>
|
||||
|
||||
const kcContext = ${toJsDeclarationString(.data_model, [])?no_esc};
|
||||
kcContext.keycloakifyVersion = "${xKeycloakify.keycloakifyVersion}";
|
||||
kcContext.themeVersion = "${xKeycloakify.themeVersion}";
|
||||
kcContext.themeType = "${xKeycloakify.themeType}";
|
||||
kcContext.themeName = "${xKeycloakify.themeName}";
|
||||
kcContext.pageId = "${xKeycloakify.pageId}";
|
||||
kcContext.ftlTemplateFileName = "${xKeycloakify.ftlTemplateFileName}";
|
||||
|
||||
<@addNonAutomaticallyGatherableMessagesToXKeycloakifyMessages />
|
||||
|
||||
kcContext["x-keycloakify"] = {};
|
||||
|
||||
kcContext["x-keycloakify"].resourcesPath = "${xKeycloakify.resourcesPath}";
|
||||
|
||||
{
|
||||
var messages = {};
|
||||
<#list xKeycloakify.messages as key, resolvedMsg>
|
||||
messages["${key}"] = decodeHtmlEntities("${resolvedMsg?js_string}");
|
||||
</#list>
|
||||
kcContext["x-keycloakify"].messages = messages;
|
||||
}
|
||||
|
||||
if(
|
||||
kcContext.url instanceof Object &&
|
||||
typeof kcContext.url.resourcesPath === "string"
|
||||
){
|
||||
kcContext.url.resourcesCommonPath = kcContext.url.resourcesPath + "/resources-common";
|
||||
}
|
||||
|
||||
if( kcContext.messagesPerField ){
|
||||
var existsError_singleFieldName = kcContext.messagesPerField.existsError;
|
||||
kcContext.messagesPerField.existsError = function (){
|
||||
for( let i = 0; i < arguments.length; i++ ){
|
||||
if( existsError_singleFieldName(arguments[i]) ){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
};
|
||||
kcContext.messagesPerField.exists = function (fieldName) {
|
||||
return kcContext.messagesPerField.get(fieldName) !== "";
|
||||
};
|
||||
kcContext.messagesPerField.printIfExists = function (fieldName, text) {
|
||||
return kcContext.messagesPerField.exists(fieldName) ? text : undefined;
|
||||
};
|
||||
kcContext.messagesPerField.getFirstError = function () {
|
||||
for( let i = 0; i < arguments.length; i++ ){
|
||||
const fieldName = arguments[i];
|
||||
if( kcContext.messagesPerField.existsError(fieldName) ){
|
||||
return kcContext.messagesPerField.get(fieldName);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
attributes_to_attributesByName: {
|
||||
if( !kcContext.profile ){
|
||||
break attributes_to_attributesByName;
|
||||
}
|
||||
if( !kcContext.profile.attributes ){
|
||||
break attributes_to_attributesByName;
|
||||
}
|
||||
var attributes = kcContext.profile.attributes;
|
||||
delete kcContext.profile.attributes;
|
||||
kcContext.profile.attributesByName = {};
|
||||
attributes.forEach(function(attribute){
|
||||
kcContext.profile.attributesByName[attribute.name] = attribute;
|
||||
});
|
||||
}
|
||||
|
||||
redirect_to_dev_server: {
|
||||
|
||||
switch(kcContext.themeType){
|
||||
case "login":
|
||||
break redirect_to_dev_server;
|
||||
case "account":
|
||||
if( kcContext.pageId !== "index.ftl" ){
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
break;
|
||||
case "admin":
|
||||
break;
|
||||
default:
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
|
||||
const devSeverPort = kcContext.properties.KEYCLOAKIFY_SPA_DEV_SERVER_PORT;
|
||||
|
||||
if( !devSeverPort ){
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
|
||||
const redirectUrl = new URL(window.location.href);
|
||||
|
||||
redirectUrl.port = devSeverPort;
|
||||
|
||||
delete kcContext.msgJSON;
|
||||
|
||||
console.log(kcContext);
|
||||
|
||||
redirectUrl.searchParams.set("kcContext", encodeURIComponent(JSON.stringify(kcContext)));
|
||||
|
||||
window.location.href = redirectUrl.toString();
|
||||
|
||||
}
|
||||
|
||||
|
||||
window.kcContext = kcContext;
|
||||
|
||||
|
||||
<#if xKeycloakify.themeType == "login" >
|
||||
{
|
||||
const script = document.createElement("script");
|
||||
script.type = "importmap";
|
||||
script.textContent = JSON.stringify({
|
||||
imports: {
|
||||
"rfc4648": kcContext.url.resourcesCommonPath + "/node_modules/rfc4648/lib/rfc4648.js"
|
||||
}
|
||||
}, null, 2);
|
||||
|
||||
document.head.appendChild(script);
|
||||
}
|
||||
</#if>
|
||||
|
||||
function decodeHtmlEntities(htmlStr){
|
||||
var element = decodeHtmlEntities.element;
|
||||
if (!element) {
|
||||
element = document.createElement("textarea");
|
||||
decodeHtmlEntities.element = element;
|
||||
}
|
||||
element.innerHTML = htmlStr;
|
||||
return element.value;
|
||||
}
|
||||
|
||||
<#function toJsDeclarationString object path>
|
||||
<#local isHash = -1>
|
||||
<#attempt>
|
||||
<#local isHash = object?is_hash || object?is_hash_ex>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't evaluate if " + path?join(".") + " is a hash">
|
||||
</#attempt>
|
||||
|
||||
<#if isHash>
|
||||
<#if path?size gt 10>
|
||||
<#return "ABORT: Too many recursive calls, path: " + path?join(".")>
|
||||
</#if>
|
||||
<#local keys = -1>
|
||||
|
||||
<#attempt>
|
||||
<#local keys = object?keys>
|
||||
<#recover>
|
||||
<#return "ABORT: We can't list keys on object">
|
||||
</#attempt>
|
||||
|
||||
<#local outSeq = []>
|
||||
|
||||
<#list keys as key>
|
||||
<#if ["class","declaredConstructors","superclass","declaringClass" ]?seq_contains(key) >
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if (
|
||||
areSamePath(path, ["url"]) &&
|
||||
["loginUpdatePasswordUrl", "loginUpdateProfileUrl", "loginUsernameReminderUrl", "loginUpdateTotpUrl"]?seq_contains(key)
|
||||
) || (
|
||||
key == "updateProfileCtx" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
<#-- https://github.com/keycloakify/keycloakify/pull/65#issuecomment-991896344 (reports with saml-post-form.ftl) -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/91#issue-1212319466 (reports with error.ftl and Kc18) -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/109#issuecomment-1134610163 -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/357 -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/discussions/406#discussioncomment-7514787 -->
|
||||
key == "loginAction" &&
|
||||
areSamePath(path, ["url"]) &&
|
||||
["saml-post-form.ftl", "error.ftl", "info.ftl", "login-oauth-grant.ftl", "logout-confirm.ftl", "login-oauth2-device-verify-user-code.ftl"]?seq_contains(xKeycloakify.pageId) &&
|
||||
!(auth?has_content && auth.showTryAnotherWayLink())
|
||||
) || (
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/362 -->
|
||||
["secretData", "value"]?seq_contains(key) &&
|
||||
areSamePath(path, [ "totp", "otpCredentials", "*" ])
|
||||
) || (
|
||||
["contextData", "idpConfig", "idp", "authenticationSession"]?seq_contains(key) &&
|
||||
areSamePath(path, ["brokerContext"]) &&
|
||||
["login-idp-link-confirm.ftl", "login-idp-link-email.ftl" ]?seq_contains(xKeycloakify.pageId)
|
||||
) || (
|
||||
key == "identityProviderBrokerCtx" &&
|
||||
areSamePath(path, []) &&
|
||||
["login-idp-link-confirm.ftl", "login-idp-link-email.ftl" ]?seq_contains(xKeycloakify.pageId)
|
||||
) || (
|
||||
["masterAdminClient", "delegateForUpdate", "defaultRole", "smtpConfig"]?seq_contains(key) &&
|
||||
areSamePath(path, ["realm"])
|
||||
) || (
|
||||
xKeycloakify.pageId == "error.ftl" &&
|
||||
areSamePath(path, ["realm"]) &&
|
||||
!["name", "displayName", "displayNameHtml", "internationalizationEnabled", "registrationEmailAsUsername" ]?seq_contains(key)
|
||||
) || (
|
||||
xKeycloakify.pageId == "applications.ftl" &&
|
||||
(
|
||||
key == "realm" ||
|
||||
key == "container"
|
||||
) &&
|
||||
isSubpath(path, ["applications", "applications"])
|
||||
) || (
|
||||
key == "delegateForUpdate" &&
|
||||
areSamePath(path, ["user"])
|
||||
) || (
|
||||
<#-- Security audit forwarded by Garth (Gmail) -->
|
||||
key == "saml.signing.private.key" &&
|
||||
areSamePath(path, ["client", "attributes"])
|
||||
) || (
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/534 -->
|
||||
key == "password" &&
|
||||
areSamePath(path, ["login"])
|
||||
) || (
|
||||
<#-- Remove realmAttributes added by https://github.com/jcputney/keycloak-theme-additional-info-extension for peace of mind. -->
|
||||
key == "realmAttributes" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
<#-- attributesByName adds a lot of noise to the output and is not needed, we already have profile.attributes -->
|
||||
key == "attributesByName" &&
|
||||
areSamePath(path, ["profile"])
|
||||
) || (
|
||||
<#-- We already have the attributes in profile speedup the rendering by filtering it out from the register object -->
|
||||
(key == "attributes" || key == "attributesByName") &&
|
||||
areSamePath(path, ["register"])
|
||||
) || (
|
||||
areSamePath(path, ["properties"]) &&
|
||||
(
|
||||
key?starts_with("kc") ||
|
||||
key == "locales" ||
|
||||
key == "import" ||
|
||||
key == "parent" ||
|
||||
key == "meta" ||
|
||||
key == "stylesCommon" ||
|
||||
key == "styles" ||
|
||||
key == "accountResourceProvider"
|
||||
)
|
||||
) || (
|
||||
key == "execution" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
key == "entity" &&
|
||||
areSamePath(path, ["user"])
|
||||
) || (
|
||||
key == "attributes" &&
|
||||
areSamePath(path, ["realm"])
|
||||
) || (
|
||||
xKeycloakify.pageId == "index.ftl" &&
|
||||
xKeycloakify.themeType == "account" &&
|
||||
areSamePath(path, ["realm"]) &&
|
||||
![
|
||||
"name",
|
||||
"registrationEmailAsUsername",
|
||||
"editUsernameAllowed",
|
||||
"isInternationalizationEnabled",
|
||||
"identityFederationEnabled",
|
||||
"userManagedAccessAllowed"
|
||||
]?seq_contains(key)
|
||||
) || (
|
||||
["flowContext", "session", "realm"]?seq_contains(key) &&
|
||||
areSamePath(path, ["social"])
|
||||
)
|
||||
>
|
||||
<#-- <#local outSeq += ["/*" + path?join(".") + "." + key + " excluded*/"]> -->
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#-- https://github.com/keycloakify/keycloakify/discussions/406 -->
|
||||
<#if (
|
||||
key == "attemptedUsername" &&
|
||||
areSamePath(path, ["auth"]) &&
|
||||
[
|
||||
"register.ftl", "terms.ftl", "info.ftl", "login.ftl",
|
||||
"login-update-password.ftl", "login-oauth2-device-verify-user-code.ftl"
|
||||
]?seq_contains(xKeycloakify.pageId)
|
||||
)>
|
||||
<#attempt>
|
||||
<#-- https://github.com/keycloak/keycloak/blob/3a2bf0c04bcde185e497aaa32d0bb7ab7520cf4a/themes/src/main/resources/theme/base/login/template.ftl#L63 -->
|
||||
<#if !(auth?has_content && auth.showUsername() && !auth.showResetCredentials())>
|
||||
<#local outSeq += ["/*" + path?join(".") + "." + key + " excluded*/"]>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Accessing attemptedUsername throwed an exception */"]>
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
|
||||
|
||||
<#attempt>
|
||||
<#if !object[key]??>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Couldn't test if '" + key + "' is available on this object*/"]>
|
||||
<#continue>
|
||||
</#attempt>
|
||||
|
||||
<#local propertyValue = -1>
|
||||
|
||||
<#attempt>
|
||||
<#local propertyValue = object[key]>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Couldn't dereference '" + key + "' on this object*/"]>
|
||||
<#continue>
|
||||
</#attempt>
|
||||
|
||||
<#local recOut = toJsDeclarationString(propertyValue, path + [ key ])>
|
||||
|
||||
<#if recOut?starts_with("ABORT:")>
|
||||
|
||||
<#local errorMessage = recOut?remove_beginning("ABORT:")>
|
||||
|
||||
<#if errorMessage != " It's a method" >
|
||||
<#local outSeq += ["/*" + key + ": " + errorMessage + "*/"]>
|
||||
</#if>
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local outSeq += ['"' + key + '": ' + recOut + ","]>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return (["{"] + outSeq?map(str -> ""?right_pad(4 * (path?size + 1)) + str) + [ ""?right_pad(4 * path?size) + "}"])?join("\n")>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local isMethod = -1>
|
||||
<#attempt>
|
||||
<#local isMethod = object?is_method>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it'sa method.">
|
||||
</#attempt>
|
||||
|
||||
<#if isMethod>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showUsername"])>
|
||||
<#attempt>
|
||||
<#return auth.showUsername()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showUsername()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showResetCredentials"])>
|
||||
<#attempt>
|
||||
<#return auth.showResetCredentials()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showResetCredentials()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showTryAnotherWayLink"])>
|
||||
<#attempt>
|
||||
<#return auth.showTryAnotherWayLink()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showTryAnotherWayLink()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["url", "getLogoutUrl"])>
|
||||
<#local returnValue = -1>
|
||||
<#attempt>
|
||||
<#local returnValue = url.getLogoutUrl()>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate url.getLogoutUrl()">
|
||||
</#attempt>
|
||||
<#return 'function(){ return "' + returnValue + '"; }'>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["totp", "policy", "getAlgorithmKey"])>
|
||||
<#local returnValue = "error">
|
||||
<#if mode?? && mode = "manual">
|
||||
<#attempt>
|
||||
<#local returnValue = totp.policy.getAlgorithmKey()>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate totp.policy.getAlgorithmKey()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
<#return 'function(){ return "' + returnValue + '"; }'>
|
||||
</#if>
|
||||
|
||||
<#assign fieldNames = ["firstName", "lastName", "email", "username", "password", "password-confirm", "global", "totp", "userLabel", "recoveryCodeInput", "termsAccepted"]>
|
||||
<#if profile?? && profile.attributes??>
|
||||
<#list profile.attributes as attribute>
|
||||
<#if fieldNames?seq_contains(attribute.name)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#assign fieldNames += [attribute.name]>
|
||||
</#list>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["messagesPerField", "get"])>
|
||||
|
||||
<#local jsFunctionCode = "function (fieldName) { ">
|
||||
|
||||
<#list fieldNames as fieldName>
|
||||
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/217 -->
|
||||
<#if xKeycloakify.pageId == "login.ftl" >
|
||||
|
||||
<#if fieldName == "username">
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === 'username' || fieldName === 'password' ){ ">
|
||||
|
||||
<#if messagesPerField.exists('username') || messagesPerField.exists('password')>
|
||||
<#local jsFunctionCode += "return kcContext.message && kcContext.message.summary ? kcContext.message.summary : 'error'; ">
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return ''; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if fieldName == "password">
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === '" + fieldName + "'){ ">
|
||||
|
||||
<#if messagesPerField.exists('${fieldName}')>
|
||||
<#local jsFunctionCode += 'return decodeHtmlEntities("' + messagesPerField.get('${fieldName}')?js_string + '"); '>
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return ''; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
</#list>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
<#return jsFunctionCode>
|
||||
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["messagesPerField", "existsError"])>
|
||||
|
||||
<#local jsFunctionCode = "function (fieldName) { ">
|
||||
|
||||
<#list fieldNames as fieldName>
|
||||
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/217 -->
|
||||
<#if xKeycloakify.pageId == "login.ftl" >
|
||||
<#if fieldName == "username">
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === 'username' || fieldName === 'password' ){ ">
|
||||
|
||||
<#if messagesPerField.existsError('username') || messagesPerField.existsError('password')>
|
||||
<#local jsFunctionCode += "return true; ">
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return false; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if fieldName == "password">
|
||||
<#continue>
|
||||
</#if>
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === '" + fieldName + "' ){ ">
|
||||
|
||||
<#if messagesPerField.existsError('${fieldName}')>
|
||||
<#local jsFunctionCode += 'return true; '>
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return false; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
</#list>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
<#return jsFunctionCode>
|
||||
|
||||
</#if>
|
||||
|
||||
<#if xKeycloakify.themeType == "account" && areSamePath(path, ["realm", "isInternationalizationEnabled"])>
|
||||
<#attempt>
|
||||
<#return realm.isInternationalizationEnabled()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate realm.isInternationalizationEnabled()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#return "ABORT: It's a method">
|
||||
</#if>
|
||||
|
||||
<#local isBoolean = -1>
|
||||
<#attempt>
|
||||
<#local isBoolean = object?is_boolean>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a boolean">
|
||||
</#attempt>
|
||||
|
||||
<#if isBoolean>
|
||||
<#return object?c>
|
||||
</#if>
|
||||
|
||||
<#local isEnumerable = -1>
|
||||
<#attempt>
|
||||
<#local isEnumerable = object?is_enumerable>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's an enumerable">
|
||||
</#attempt>
|
||||
|
||||
|
||||
<#if isEnumerable>
|
||||
|
||||
<#local outSeq = []>
|
||||
|
||||
<#local i = 0>
|
||||
|
||||
<#list object as array_item>
|
||||
|
||||
<#if !array_item??>
|
||||
<#local outSeq += ["null,"]>
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local recOut = toJsDeclarationString(array_item, path + [ i ])>
|
||||
|
||||
<#local i = i + 1>
|
||||
|
||||
<#if recOut?starts_with("ABORT:")>
|
||||
|
||||
<#local errorMessage = recOut?remove_beginning("ABORT:")>
|
||||
|
||||
<#if errorMessage != " It's a method" >
|
||||
<#local outSeq += ["/*" + i?string + ": " + errorMessage + "*/"]>
|
||||
</#if>
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local outSeq += [recOut + ","]>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return (["["] + outSeq?map(str -> ""?right_pad(4 * (path?size + 1)) + str) + [ ""?right_pad(4 * path?size) + "]"])?join("\n")>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local isDate = -1>
|
||||
<#attempt>
|
||||
<#local isDate = object?is_date_like>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a date">
|
||||
</#attempt>
|
||||
|
||||
<#if isDate>
|
||||
<#return '"' + object?datetime?iso_utc + '"'>
|
||||
</#if>
|
||||
|
||||
<#local isNumber = -1>
|
||||
<#attempt>
|
||||
<#local isNumber = object?is_number>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a number">
|
||||
</#attempt>
|
||||
|
||||
<#if isNumber>
|
||||
<#return object?c>
|
||||
</#if>
|
||||
|
||||
<#local isString = -1>
|
||||
<#attempt>
|
||||
<#local isString = object?is_string>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a string">
|
||||
</#attempt>
|
||||
|
||||
<#if isString>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str=object />
|
||||
</#if>
|
||||
|
||||
<#attempt>
|
||||
<#return '"' + object?js_string + '"'>;
|
||||
<#recover>
|
||||
</#attempt>
|
||||
|
||||
<#return "ABORT: Couldn't convert into string non hash, non method, non boolean, non number, non enumerable object">
|
||||
|
||||
</#function>
|
||||
<#function isSubpath path searchedPath>
|
||||
|
||||
<#if path?size < searchedPath?size>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#local i=0>
|
||||
|
||||
<#list path as property>
|
||||
|
||||
<#if i == searchedPath?size >
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local searchedProperty=searchedPath[i]>
|
||||
|
||||
<#local i+= 1>
|
||||
|
||||
<#if searchedProperty?is_string && searchedProperty == "*">
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?is_string && !property?is_string>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?is_number && !property?is_number>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?string != property?string>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return true>
|
||||
|
||||
</#function>
|
||||
|
||||
<#function areSamePath path searchedPath>
|
||||
<#return path?size == searchedPath?size && isSubpath(path, searchedPath)>
|
||||
</#function>
|
||||
|
||||
<#macro addToXKeycloakifyMessagesIfMessageKey str>
|
||||
<#if !msg?? || !msg?is_method>
|
||||
<#return>
|
||||
</#if>
|
||||
<#if (str?length > 200)>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local key=removeBrackets(str)>
|
||||
<#if key?length==0>
|
||||
<#return>
|
||||
</#if>
|
||||
<#if !(key?matches(r"^[a-zA-Z0-9-_.]*$"))>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local resolvedMsg=msg(key)>
|
||||
<#if resolvedMsg==key>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local messages=xKeycloakify.messages>
|
||||
<#local messages = messages + { key: resolvedMsg }>
|
||||
<#assign xKeycloakify = xKeycloakify + { "messages": messages }>
|
||||
</#macro>
|
||||
|
||||
<#function removeBrackets str>
|
||||
<#if str?starts_with("${") && str?ends_with("}")>
|
||||
<#return str[2..(str?length-2)]>
|
||||
<#else>
|
||||
<#return str>
|
||||
</#if>
|
||||
</#function>
|
||||
|
||||
<#macro addNonAutomaticallyGatherableMessagesToXKeycloakifyMessages>
|
||||
<#if profile?? && profile?is_hash && profile.attributes?? && profile.attributes?is_enumerable>
|
||||
<#list profile.attributes as attribute>
|
||||
<#if !(
|
||||
attribute.annotations?? && attribute.annotations?is_hash &&
|
||||
attribute.annotations.inputOptionLabelsI18nPrefix?? && attribute.annotations.inputOptionLabelsI18nPrefix?is_string
|
||||
)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#local prefix=attribute.annotations.inputOptionLabelsI18nPrefix>
|
||||
<#if !(
|
||||
attribute.validators?? && attribute.validators?is_hash &&
|
||||
attribute.validators.options?? && attribute.validators.options?is_hash &&
|
||||
attribute.validators.options.options?? && attribute.validators.options.options?is_enumerable
|
||||
)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#list attribute.validators.options.options as option>
|
||||
<#if !option?is_string>
|
||||
<#continue>
|
||||
</#if>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="${prefix}.${option}" />
|
||||
</#list>
|
||||
</#list>
|
||||
</#if>
|
||||
<#if xKeycloakify.pageId == "terms.ftl" || termsAcceptanceRequired?? && termsAcceptanceRequired>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="termsText" />
|
||||
</#if>
|
||||
<#if requiredActions?? && requiredActions?is_enumerable>
|
||||
<#list requiredActions as requiredAction>
|
||||
<#if !requiredAction?is_string>
|
||||
<#continue>
|
||||
</#if>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="requiredAction.${requiredAction}" />
|
||||
</#list>
|
||||
</#if>
|
||||
</#macro>
|
||||
|
||||
</script>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="${xKeycloakify.resourcesPath}/dist/favicon-32x32.png">
|
||||
<script type="module" crossorigin="" src="${xKeycloakify.resourcesPath}/dist/assets/index-6-NnS-wp.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="root"></div>
|
||||
|
||||
|
||||
</body></html>
|
@ -0,0 +1,739 @@
|
||||
<!DOCTYPE html><html><head><script>
|
||||
<#assign xKeycloakify={
|
||||
"messages": {},
|
||||
"pageId": "login-verify-email.ftl",
|
||||
"ftlTemplateFileName": "login-verify-email.ftl",
|
||||
"themeType": "login",
|
||||
"themeName": "keycloakify-starter",
|
||||
"keycloakifyVersion": "11.4.4",
|
||||
"themeVersion": "0.0.0",
|
||||
"resourcesPath": ""
|
||||
}>
|
||||
|
||||
<#if url?? && url?is_hash && url.resourcesPath?? && url.resourcesPath?is_string>
|
||||
<#assign xKeycloakify = xKeycloakify + { "resourcesPath": url.resourcesPath }>
|
||||
</#if>
|
||||
<#if resourceUrl?? && resourceUrl?is_string>
|
||||
<#assign xKeycloakify = xKeycloakify + { "resourcesPath": resourceUrl }>
|
||||
</#if>
|
||||
|
||||
const kcContext = ${toJsDeclarationString(.data_model, [])?no_esc};
|
||||
kcContext.keycloakifyVersion = "${xKeycloakify.keycloakifyVersion}";
|
||||
kcContext.themeVersion = "${xKeycloakify.themeVersion}";
|
||||
kcContext.themeType = "${xKeycloakify.themeType}";
|
||||
kcContext.themeName = "${xKeycloakify.themeName}";
|
||||
kcContext.pageId = "${xKeycloakify.pageId}";
|
||||
kcContext.ftlTemplateFileName = "${xKeycloakify.ftlTemplateFileName}";
|
||||
|
||||
<@addNonAutomaticallyGatherableMessagesToXKeycloakifyMessages />
|
||||
|
||||
kcContext["x-keycloakify"] = {};
|
||||
|
||||
kcContext["x-keycloakify"].resourcesPath = "${xKeycloakify.resourcesPath}";
|
||||
|
||||
{
|
||||
var messages = {};
|
||||
<#list xKeycloakify.messages as key, resolvedMsg>
|
||||
messages["${key}"] = decodeHtmlEntities("${resolvedMsg?js_string}");
|
||||
</#list>
|
||||
kcContext["x-keycloakify"].messages = messages;
|
||||
}
|
||||
|
||||
if(
|
||||
kcContext.url instanceof Object &&
|
||||
typeof kcContext.url.resourcesPath === "string"
|
||||
){
|
||||
kcContext.url.resourcesCommonPath = kcContext.url.resourcesPath + "/resources-common";
|
||||
}
|
||||
|
||||
if( kcContext.messagesPerField ){
|
||||
var existsError_singleFieldName = kcContext.messagesPerField.existsError;
|
||||
kcContext.messagesPerField.existsError = function (){
|
||||
for( let i = 0; i < arguments.length; i++ ){
|
||||
if( existsError_singleFieldName(arguments[i]) ){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
};
|
||||
kcContext.messagesPerField.exists = function (fieldName) {
|
||||
return kcContext.messagesPerField.get(fieldName) !== "";
|
||||
};
|
||||
kcContext.messagesPerField.printIfExists = function (fieldName, text) {
|
||||
return kcContext.messagesPerField.exists(fieldName) ? text : undefined;
|
||||
};
|
||||
kcContext.messagesPerField.getFirstError = function () {
|
||||
for( let i = 0; i < arguments.length; i++ ){
|
||||
const fieldName = arguments[i];
|
||||
if( kcContext.messagesPerField.existsError(fieldName) ){
|
||||
return kcContext.messagesPerField.get(fieldName);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
attributes_to_attributesByName: {
|
||||
if( !kcContext.profile ){
|
||||
break attributes_to_attributesByName;
|
||||
}
|
||||
if( !kcContext.profile.attributes ){
|
||||
break attributes_to_attributesByName;
|
||||
}
|
||||
var attributes = kcContext.profile.attributes;
|
||||
delete kcContext.profile.attributes;
|
||||
kcContext.profile.attributesByName = {};
|
||||
attributes.forEach(function(attribute){
|
||||
kcContext.profile.attributesByName[attribute.name] = attribute;
|
||||
});
|
||||
}
|
||||
|
||||
redirect_to_dev_server: {
|
||||
|
||||
switch(kcContext.themeType){
|
||||
case "login":
|
||||
break redirect_to_dev_server;
|
||||
case "account":
|
||||
if( kcContext.pageId !== "index.ftl" ){
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
break;
|
||||
case "admin":
|
||||
break;
|
||||
default:
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
|
||||
const devSeverPort = kcContext.properties.KEYCLOAKIFY_SPA_DEV_SERVER_PORT;
|
||||
|
||||
if( !devSeverPort ){
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
|
||||
const redirectUrl = new URL(window.location.href);
|
||||
|
||||
redirectUrl.port = devSeverPort;
|
||||
|
||||
delete kcContext.msgJSON;
|
||||
|
||||
console.log(kcContext);
|
||||
|
||||
redirectUrl.searchParams.set("kcContext", encodeURIComponent(JSON.stringify(kcContext)));
|
||||
|
||||
window.location.href = redirectUrl.toString();
|
||||
|
||||
}
|
||||
|
||||
|
||||
window.kcContext = kcContext;
|
||||
|
||||
|
||||
<#if xKeycloakify.themeType == "login" >
|
||||
{
|
||||
const script = document.createElement("script");
|
||||
script.type = "importmap";
|
||||
script.textContent = JSON.stringify({
|
||||
imports: {
|
||||
"rfc4648": kcContext.url.resourcesCommonPath + "/node_modules/rfc4648/lib/rfc4648.js"
|
||||
}
|
||||
}, null, 2);
|
||||
|
||||
document.head.appendChild(script);
|
||||
}
|
||||
</#if>
|
||||
|
||||
function decodeHtmlEntities(htmlStr){
|
||||
var element = decodeHtmlEntities.element;
|
||||
if (!element) {
|
||||
element = document.createElement("textarea");
|
||||
decodeHtmlEntities.element = element;
|
||||
}
|
||||
element.innerHTML = htmlStr;
|
||||
return element.value;
|
||||
}
|
||||
|
||||
<#function toJsDeclarationString object path>
|
||||
<#local isHash = -1>
|
||||
<#attempt>
|
||||
<#local isHash = object?is_hash || object?is_hash_ex>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't evaluate if " + path?join(".") + " is a hash">
|
||||
</#attempt>
|
||||
|
||||
<#if isHash>
|
||||
<#if path?size gt 10>
|
||||
<#return "ABORT: Too many recursive calls, path: " + path?join(".")>
|
||||
</#if>
|
||||
<#local keys = -1>
|
||||
|
||||
<#attempt>
|
||||
<#local keys = object?keys>
|
||||
<#recover>
|
||||
<#return "ABORT: We can't list keys on object">
|
||||
</#attempt>
|
||||
|
||||
<#local outSeq = []>
|
||||
|
||||
<#list keys as key>
|
||||
<#if ["class","declaredConstructors","superclass","declaringClass" ]?seq_contains(key) >
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if (
|
||||
areSamePath(path, ["url"]) &&
|
||||
["loginUpdatePasswordUrl", "loginUpdateProfileUrl", "loginUsernameReminderUrl", "loginUpdateTotpUrl"]?seq_contains(key)
|
||||
) || (
|
||||
key == "updateProfileCtx" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
<#-- https://github.com/keycloakify/keycloakify/pull/65#issuecomment-991896344 (reports with saml-post-form.ftl) -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/91#issue-1212319466 (reports with error.ftl and Kc18) -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/109#issuecomment-1134610163 -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/357 -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/discussions/406#discussioncomment-7514787 -->
|
||||
key == "loginAction" &&
|
||||
areSamePath(path, ["url"]) &&
|
||||
["saml-post-form.ftl", "error.ftl", "info.ftl", "login-oauth-grant.ftl", "logout-confirm.ftl", "login-oauth2-device-verify-user-code.ftl"]?seq_contains(xKeycloakify.pageId) &&
|
||||
!(auth?has_content && auth.showTryAnotherWayLink())
|
||||
) || (
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/362 -->
|
||||
["secretData", "value"]?seq_contains(key) &&
|
||||
areSamePath(path, [ "totp", "otpCredentials", "*" ])
|
||||
) || (
|
||||
["contextData", "idpConfig", "idp", "authenticationSession"]?seq_contains(key) &&
|
||||
areSamePath(path, ["brokerContext"]) &&
|
||||
["login-idp-link-confirm.ftl", "login-idp-link-email.ftl" ]?seq_contains(xKeycloakify.pageId)
|
||||
) || (
|
||||
key == "identityProviderBrokerCtx" &&
|
||||
areSamePath(path, []) &&
|
||||
["login-idp-link-confirm.ftl", "login-idp-link-email.ftl" ]?seq_contains(xKeycloakify.pageId)
|
||||
) || (
|
||||
["masterAdminClient", "delegateForUpdate", "defaultRole", "smtpConfig"]?seq_contains(key) &&
|
||||
areSamePath(path, ["realm"])
|
||||
) || (
|
||||
xKeycloakify.pageId == "error.ftl" &&
|
||||
areSamePath(path, ["realm"]) &&
|
||||
!["name", "displayName", "displayNameHtml", "internationalizationEnabled", "registrationEmailAsUsername" ]?seq_contains(key)
|
||||
) || (
|
||||
xKeycloakify.pageId == "applications.ftl" &&
|
||||
(
|
||||
key == "realm" ||
|
||||
key == "container"
|
||||
) &&
|
||||
isSubpath(path, ["applications", "applications"])
|
||||
) || (
|
||||
key == "delegateForUpdate" &&
|
||||
areSamePath(path, ["user"])
|
||||
) || (
|
||||
<#-- Security audit forwarded by Garth (Gmail) -->
|
||||
key == "saml.signing.private.key" &&
|
||||
areSamePath(path, ["client", "attributes"])
|
||||
) || (
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/534 -->
|
||||
key == "password" &&
|
||||
areSamePath(path, ["login"])
|
||||
) || (
|
||||
<#-- Remove realmAttributes added by https://github.com/jcputney/keycloak-theme-additional-info-extension for peace of mind. -->
|
||||
key == "realmAttributes" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
<#-- attributesByName adds a lot of noise to the output and is not needed, we already have profile.attributes -->
|
||||
key == "attributesByName" &&
|
||||
areSamePath(path, ["profile"])
|
||||
) || (
|
||||
<#-- We already have the attributes in profile speedup the rendering by filtering it out from the register object -->
|
||||
(key == "attributes" || key == "attributesByName") &&
|
||||
areSamePath(path, ["register"])
|
||||
) || (
|
||||
areSamePath(path, ["properties"]) &&
|
||||
(
|
||||
key?starts_with("kc") ||
|
||||
key == "locales" ||
|
||||
key == "import" ||
|
||||
key == "parent" ||
|
||||
key == "meta" ||
|
||||
key == "stylesCommon" ||
|
||||
key == "styles" ||
|
||||
key == "accountResourceProvider"
|
||||
)
|
||||
) || (
|
||||
key == "execution" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
key == "entity" &&
|
||||
areSamePath(path, ["user"])
|
||||
) || (
|
||||
key == "attributes" &&
|
||||
areSamePath(path, ["realm"])
|
||||
) || (
|
||||
xKeycloakify.pageId == "index.ftl" &&
|
||||
xKeycloakify.themeType == "account" &&
|
||||
areSamePath(path, ["realm"]) &&
|
||||
![
|
||||
"name",
|
||||
"registrationEmailAsUsername",
|
||||
"editUsernameAllowed",
|
||||
"isInternationalizationEnabled",
|
||||
"identityFederationEnabled",
|
||||
"userManagedAccessAllowed"
|
||||
]?seq_contains(key)
|
||||
) || (
|
||||
["flowContext", "session", "realm"]?seq_contains(key) &&
|
||||
areSamePath(path, ["social"])
|
||||
)
|
||||
>
|
||||
<#-- <#local outSeq += ["/*" + path?join(".") + "." + key + " excluded*/"]> -->
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#-- https://github.com/keycloakify/keycloakify/discussions/406 -->
|
||||
<#if (
|
||||
key == "attemptedUsername" &&
|
||||
areSamePath(path, ["auth"]) &&
|
||||
[
|
||||
"register.ftl", "terms.ftl", "info.ftl", "login.ftl",
|
||||
"login-update-password.ftl", "login-oauth2-device-verify-user-code.ftl"
|
||||
]?seq_contains(xKeycloakify.pageId)
|
||||
)>
|
||||
<#attempt>
|
||||
<#-- https://github.com/keycloak/keycloak/blob/3a2bf0c04bcde185e497aaa32d0bb7ab7520cf4a/themes/src/main/resources/theme/base/login/template.ftl#L63 -->
|
||||
<#if !(auth?has_content && auth.showUsername() && !auth.showResetCredentials())>
|
||||
<#local outSeq += ["/*" + path?join(".") + "." + key + " excluded*/"]>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Accessing attemptedUsername throwed an exception */"]>
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
|
||||
|
||||
<#attempt>
|
||||
<#if !object[key]??>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Couldn't test if '" + key + "' is available on this object*/"]>
|
||||
<#continue>
|
||||
</#attempt>
|
||||
|
||||
<#local propertyValue = -1>
|
||||
|
||||
<#attempt>
|
||||
<#local propertyValue = object[key]>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Couldn't dereference '" + key + "' on this object*/"]>
|
||||
<#continue>
|
||||
</#attempt>
|
||||
|
||||
<#local recOut = toJsDeclarationString(propertyValue, path + [ key ])>
|
||||
|
||||
<#if recOut?starts_with("ABORT:")>
|
||||
|
||||
<#local errorMessage = recOut?remove_beginning("ABORT:")>
|
||||
|
||||
<#if errorMessage != " It's a method" >
|
||||
<#local outSeq += ["/*" + key + ": " + errorMessage + "*/"]>
|
||||
</#if>
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local outSeq += ['"' + key + '": ' + recOut + ","]>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return (["{"] + outSeq?map(str -> ""?right_pad(4 * (path?size + 1)) + str) + [ ""?right_pad(4 * path?size) + "}"])?join("\n")>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local isMethod = -1>
|
||||
<#attempt>
|
||||
<#local isMethod = object?is_method>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it'sa method.">
|
||||
</#attempt>
|
||||
|
||||
<#if isMethod>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showUsername"])>
|
||||
<#attempt>
|
||||
<#return auth.showUsername()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showUsername()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showResetCredentials"])>
|
||||
<#attempt>
|
||||
<#return auth.showResetCredentials()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showResetCredentials()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showTryAnotherWayLink"])>
|
||||
<#attempt>
|
||||
<#return auth.showTryAnotherWayLink()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showTryAnotherWayLink()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["url", "getLogoutUrl"])>
|
||||
<#local returnValue = -1>
|
||||
<#attempt>
|
||||
<#local returnValue = url.getLogoutUrl()>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate url.getLogoutUrl()">
|
||||
</#attempt>
|
||||
<#return 'function(){ return "' + returnValue + '"; }'>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["totp", "policy", "getAlgorithmKey"])>
|
||||
<#local returnValue = "error">
|
||||
<#if mode?? && mode = "manual">
|
||||
<#attempt>
|
||||
<#local returnValue = totp.policy.getAlgorithmKey()>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate totp.policy.getAlgorithmKey()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
<#return 'function(){ return "' + returnValue + '"; }'>
|
||||
</#if>
|
||||
|
||||
<#assign fieldNames = ["firstName", "lastName", "email", "username", "password", "password-confirm", "global", "totp", "userLabel", "recoveryCodeInput", "termsAccepted"]>
|
||||
<#if profile?? && profile.attributes??>
|
||||
<#list profile.attributes as attribute>
|
||||
<#if fieldNames?seq_contains(attribute.name)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#assign fieldNames += [attribute.name]>
|
||||
</#list>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["messagesPerField", "get"])>
|
||||
|
||||
<#local jsFunctionCode = "function (fieldName) { ">
|
||||
|
||||
<#list fieldNames as fieldName>
|
||||
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/217 -->
|
||||
<#if xKeycloakify.pageId == "login.ftl" >
|
||||
|
||||
<#if fieldName == "username">
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === 'username' || fieldName === 'password' ){ ">
|
||||
|
||||
<#if messagesPerField.exists('username') || messagesPerField.exists('password')>
|
||||
<#local jsFunctionCode += "return kcContext.message && kcContext.message.summary ? kcContext.message.summary : 'error'; ">
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return ''; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if fieldName == "password">
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === '" + fieldName + "'){ ">
|
||||
|
||||
<#if messagesPerField.exists('${fieldName}')>
|
||||
<#local jsFunctionCode += 'return decodeHtmlEntities("' + messagesPerField.get('${fieldName}')?js_string + '"); '>
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return ''; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
</#list>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
<#return jsFunctionCode>
|
||||
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["messagesPerField", "existsError"])>
|
||||
|
||||
<#local jsFunctionCode = "function (fieldName) { ">
|
||||
|
||||
<#list fieldNames as fieldName>
|
||||
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/217 -->
|
||||
<#if xKeycloakify.pageId == "login.ftl" >
|
||||
<#if fieldName == "username">
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === 'username' || fieldName === 'password' ){ ">
|
||||
|
||||
<#if messagesPerField.existsError('username') || messagesPerField.existsError('password')>
|
||||
<#local jsFunctionCode += "return true; ">
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return false; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if fieldName == "password">
|
||||
<#continue>
|
||||
</#if>
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === '" + fieldName + "' ){ ">
|
||||
|
||||
<#if messagesPerField.existsError('${fieldName}')>
|
||||
<#local jsFunctionCode += 'return true; '>
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return false; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
</#list>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
<#return jsFunctionCode>
|
||||
|
||||
</#if>
|
||||
|
||||
<#if xKeycloakify.themeType == "account" && areSamePath(path, ["realm", "isInternationalizationEnabled"])>
|
||||
<#attempt>
|
||||
<#return realm.isInternationalizationEnabled()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate realm.isInternationalizationEnabled()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#return "ABORT: It's a method">
|
||||
</#if>
|
||||
|
||||
<#local isBoolean = -1>
|
||||
<#attempt>
|
||||
<#local isBoolean = object?is_boolean>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a boolean">
|
||||
</#attempt>
|
||||
|
||||
<#if isBoolean>
|
||||
<#return object?c>
|
||||
</#if>
|
||||
|
||||
<#local isEnumerable = -1>
|
||||
<#attempt>
|
||||
<#local isEnumerable = object?is_enumerable>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's an enumerable">
|
||||
</#attempt>
|
||||
|
||||
|
||||
<#if isEnumerable>
|
||||
|
||||
<#local outSeq = []>
|
||||
|
||||
<#local i = 0>
|
||||
|
||||
<#list object as array_item>
|
||||
|
||||
<#if !array_item??>
|
||||
<#local outSeq += ["null,"]>
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local recOut = toJsDeclarationString(array_item, path + [ i ])>
|
||||
|
||||
<#local i = i + 1>
|
||||
|
||||
<#if recOut?starts_with("ABORT:")>
|
||||
|
||||
<#local errorMessage = recOut?remove_beginning("ABORT:")>
|
||||
|
||||
<#if errorMessage != " It's a method" >
|
||||
<#local outSeq += ["/*" + i?string + ": " + errorMessage + "*/"]>
|
||||
</#if>
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local outSeq += [recOut + ","]>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return (["["] + outSeq?map(str -> ""?right_pad(4 * (path?size + 1)) + str) + [ ""?right_pad(4 * path?size) + "]"])?join("\n")>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local isDate = -1>
|
||||
<#attempt>
|
||||
<#local isDate = object?is_date_like>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a date">
|
||||
</#attempt>
|
||||
|
||||
<#if isDate>
|
||||
<#return '"' + object?datetime?iso_utc + '"'>
|
||||
</#if>
|
||||
|
||||
<#local isNumber = -1>
|
||||
<#attempt>
|
||||
<#local isNumber = object?is_number>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a number">
|
||||
</#attempt>
|
||||
|
||||
<#if isNumber>
|
||||
<#return object?c>
|
||||
</#if>
|
||||
|
||||
<#local isString = -1>
|
||||
<#attempt>
|
||||
<#local isString = object?is_string>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a string">
|
||||
</#attempt>
|
||||
|
||||
<#if isString>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str=object />
|
||||
</#if>
|
||||
|
||||
<#attempt>
|
||||
<#return '"' + object?js_string + '"'>;
|
||||
<#recover>
|
||||
</#attempt>
|
||||
|
||||
<#return "ABORT: Couldn't convert into string non hash, non method, non boolean, non number, non enumerable object">
|
||||
|
||||
</#function>
|
||||
<#function isSubpath path searchedPath>
|
||||
|
||||
<#if path?size < searchedPath?size>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#local i=0>
|
||||
|
||||
<#list path as property>
|
||||
|
||||
<#if i == searchedPath?size >
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local searchedProperty=searchedPath[i]>
|
||||
|
||||
<#local i+= 1>
|
||||
|
||||
<#if searchedProperty?is_string && searchedProperty == "*">
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?is_string && !property?is_string>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?is_number && !property?is_number>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?string != property?string>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return true>
|
||||
|
||||
</#function>
|
||||
|
||||
<#function areSamePath path searchedPath>
|
||||
<#return path?size == searchedPath?size && isSubpath(path, searchedPath)>
|
||||
</#function>
|
||||
|
||||
<#macro addToXKeycloakifyMessagesIfMessageKey str>
|
||||
<#if !msg?? || !msg?is_method>
|
||||
<#return>
|
||||
</#if>
|
||||
<#if (str?length > 200)>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local key=removeBrackets(str)>
|
||||
<#if key?length==0>
|
||||
<#return>
|
||||
</#if>
|
||||
<#if !(key?matches(r"^[a-zA-Z0-9-_.]*$"))>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local resolvedMsg=msg(key)>
|
||||
<#if resolvedMsg==key>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local messages=xKeycloakify.messages>
|
||||
<#local messages = messages + { key: resolvedMsg }>
|
||||
<#assign xKeycloakify = xKeycloakify + { "messages": messages }>
|
||||
</#macro>
|
||||
|
||||
<#function removeBrackets str>
|
||||
<#if str?starts_with("${") && str?ends_with("}")>
|
||||
<#return str[2..(str?length-2)]>
|
||||
<#else>
|
||||
<#return str>
|
||||
</#if>
|
||||
</#function>
|
||||
|
||||
<#macro addNonAutomaticallyGatherableMessagesToXKeycloakifyMessages>
|
||||
<#if profile?? && profile?is_hash && profile.attributes?? && profile.attributes?is_enumerable>
|
||||
<#list profile.attributes as attribute>
|
||||
<#if !(
|
||||
attribute.annotations?? && attribute.annotations?is_hash &&
|
||||
attribute.annotations.inputOptionLabelsI18nPrefix?? && attribute.annotations.inputOptionLabelsI18nPrefix?is_string
|
||||
)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#local prefix=attribute.annotations.inputOptionLabelsI18nPrefix>
|
||||
<#if !(
|
||||
attribute.validators?? && attribute.validators?is_hash &&
|
||||
attribute.validators.options?? && attribute.validators.options?is_hash &&
|
||||
attribute.validators.options.options?? && attribute.validators.options.options?is_enumerable
|
||||
)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#list attribute.validators.options.options as option>
|
||||
<#if !option?is_string>
|
||||
<#continue>
|
||||
</#if>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="${prefix}.${option}" />
|
||||
</#list>
|
||||
</#list>
|
||||
</#if>
|
||||
<#if xKeycloakify.pageId == "terms.ftl" || termsAcceptanceRequired?? && termsAcceptanceRequired>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="termsText" />
|
||||
</#if>
|
||||
<#if requiredActions?? && requiredActions?is_enumerable>
|
||||
<#list requiredActions as requiredAction>
|
||||
<#if !requiredAction?is_string>
|
||||
<#continue>
|
||||
</#if>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="requiredAction.${requiredAction}" />
|
||||
</#list>
|
||||
</#if>
|
||||
</#macro>
|
||||
|
||||
</script>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="${xKeycloakify.resourcesPath}/dist/favicon-32x32.png">
|
||||
<script type="module" crossorigin="" src="${xKeycloakify.resourcesPath}/dist/assets/index-6-NnS-wp.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="root"></div>
|
||||
|
||||
|
||||
</body></html>
|
@ -0,0 +1,739 @@
|
||||
<!DOCTYPE html><html><head><script>
|
||||
<#assign xKeycloakify={
|
||||
"messages": {},
|
||||
"pageId": "login-x509-info.ftl",
|
||||
"ftlTemplateFileName": "login-x509-info.ftl",
|
||||
"themeType": "login",
|
||||
"themeName": "keycloakify-starter",
|
||||
"keycloakifyVersion": "11.4.4",
|
||||
"themeVersion": "0.0.0",
|
||||
"resourcesPath": ""
|
||||
}>
|
||||
|
||||
<#if url?? && url?is_hash && url.resourcesPath?? && url.resourcesPath?is_string>
|
||||
<#assign xKeycloakify = xKeycloakify + { "resourcesPath": url.resourcesPath }>
|
||||
</#if>
|
||||
<#if resourceUrl?? && resourceUrl?is_string>
|
||||
<#assign xKeycloakify = xKeycloakify + { "resourcesPath": resourceUrl }>
|
||||
</#if>
|
||||
|
||||
const kcContext = ${toJsDeclarationString(.data_model, [])?no_esc};
|
||||
kcContext.keycloakifyVersion = "${xKeycloakify.keycloakifyVersion}";
|
||||
kcContext.themeVersion = "${xKeycloakify.themeVersion}";
|
||||
kcContext.themeType = "${xKeycloakify.themeType}";
|
||||
kcContext.themeName = "${xKeycloakify.themeName}";
|
||||
kcContext.pageId = "${xKeycloakify.pageId}";
|
||||
kcContext.ftlTemplateFileName = "${xKeycloakify.ftlTemplateFileName}";
|
||||
|
||||
<@addNonAutomaticallyGatherableMessagesToXKeycloakifyMessages />
|
||||
|
||||
kcContext["x-keycloakify"] = {};
|
||||
|
||||
kcContext["x-keycloakify"].resourcesPath = "${xKeycloakify.resourcesPath}";
|
||||
|
||||
{
|
||||
var messages = {};
|
||||
<#list xKeycloakify.messages as key, resolvedMsg>
|
||||
messages["${key}"] = decodeHtmlEntities("${resolvedMsg?js_string}");
|
||||
</#list>
|
||||
kcContext["x-keycloakify"].messages = messages;
|
||||
}
|
||||
|
||||
if(
|
||||
kcContext.url instanceof Object &&
|
||||
typeof kcContext.url.resourcesPath === "string"
|
||||
){
|
||||
kcContext.url.resourcesCommonPath = kcContext.url.resourcesPath + "/resources-common";
|
||||
}
|
||||
|
||||
if( kcContext.messagesPerField ){
|
||||
var existsError_singleFieldName = kcContext.messagesPerField.existsError;
|
||||
kcContext.messagesPerField.existsError = function (){
|
||||
for( let i = 0; i < arguments.length; i++ ){
|
||||
if( existsError_singleFieldName(arguments[i]) ){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
};
|
||||
kcContext.messagesPerField.exists = function (fieldName) {
|
||||
return kcContext.messagesPerField.get(fieldName) !== "";
|
||||
};
|
||||
kcContext.messagesPerField.printIfExists = function (fieldName, text) {
|
||||
return kcContext.messagesPerField.exists(fieldName) ? text : undefined;
|
||||
};
|
||||
kcContext.messagesPerField.getFirstError = function () {
|
||||
for( let i = 0; i < arguments.length; i++ ){
|
||||
const fieldName = arguments[i];
|
||||
if( kcContext.messagesPerField.existsError(fieldName) ){
|
||||
return kcContext.messagesPerField.get(fieldName);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
attributes_to_attributesByName: {
|
||||
if( !kcContext.profile ){
|
||||
break attributes_to_attributesByName;
|
||||
}
|
||||
if( !kcContext.profile.attributes ){
|
||||
break attributes_to_attributesByName;
|
||||
}
|
||||
var attributes = kcContext.profile.attributes;
|
||||
delete kcContext.profile.attributes;
|
||||
kcContext.profile.attributesByName = {};
|
||||
attributes.forEach(function(attribute){
|
||||
kcContext.profile.attributesByName[attribute.name] = attribute;
|
||||
});
|
||||
}
|
||||
|
||||
redirect_to_dev_server: {
|
||||
|
||||
switch(kcContext.themeType){
|
||||
case "login":
|
||||
break redirect_to_dev_server;
|
||||
case "account":
|
||||
if( kcContext.pageId !== "index.ftl" ){
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
break;
|
||||
case "admin":
|
||||
break;
|
||||
default:
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
|
||||
const devSeverPort = kcContext.properties.KEYCLOAKIFY_SPA_DEV_SERVER_PORT;
|
||||
|
||||
if( !devSeverPort ){
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
|
||||
const redirectUrl = new URL(window.location.href);
|
||||
|
||||
redirectUrl.port = devSeverPort;
|
||||
|
||||
delete kcContext.msgJSON;
|
||||
|
||||
console.log(kcContext);
|
||||
|
||||
redirectUrl.searchParams.set("kcContext", encodeURIComponent(JSON.stringify(kcContext)));
|
||||
|
||||
window.location.href = redirectUrl.toString();
|
||||
|
||||
}
|
||||
|
||||
|
||||
window.kcContext = kcContext;
|
||||
|
||||
|
||||
<#if xKeycloakify.themeType == "login" >
|
||||
{
|
||||
const script = document.createElement("script");
|
||||
script.type = "importmap";
|
||||
script.textContent = JSON.stringify({
|
||||
imports: {
|
||||
"rfc4648": kcContext.url.resourcesCommonPath + "/node_modules/rfc4648/lib/rfc4648.js"
|
||||
}
|
||||
}, null, 2);
|
||||
|
||||
document.head.appendChild(script);
|
||||
}
|
||||
</#if>
|
||||
|
||||
function decodeHtmlEntities(htmlStr){
|
||||
var element = decodeHtmlEntities.element;
|
||||
if (!element) {
|
||||
element = document.createElement("textarea");
|
||||
decodeHtmlEntities.element = element;
|
||||
}
|
||||
element.innerHTML = htmlStr;
|
||||
return element.value;
|
||||
}
|
||||
|
||||
<#function toJsDeclarationString object path>
|
||||
<#local isHash = -1>
|
||||
<#attempt>
|
||||
<#local isHash = object?is_hash || object?is_hash_ex>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't evaluate if " + path?join(".") + " is a hash">
|
||||
</#attempt>
|
||||
|
||||
<#if isHash>
|
||||
<#if path?size gt 10>
|
||||
<#return "ABORT: Too many recursive calls, path: " + path?join(".")>
|
||||
</#if>
|
||||
<#local keys = -1>
|
||||
|
||||
<#attempt>
|
||||
<#local keys = object?keys>
|
||||
<#recover>
|
||||
<#return "ABORT: We can't list keys on object">
|
||||
</#attempt>
|
||||
|
||||
<#local outSeq = []>
|
||||
|
||||
<#list keys as key>
|
||||
<#if ["class","declaredConstructors","superclass","declaringClass" ]?seq_contains(key) >
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if (
|
||||
areSamePath(path, ["url"]) &&
|
||||
["loginUpdatePasswordUrl", "loginUpdateProfileUrl", "loginUsernameReminderUrl", "loginUpdateTotpUrl"]?seq_contains(key)
|
||||
) || (
|
||||
key == "updateProfileCtx" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
<#-- https://github.com/keycloakify/keycloakify/pull/65#issuecomment-991896344 (reports with saml-post-form.ftl) -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/91#issue-1212319466 (reports with error.ftl and Kc18) -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/109#issuecomment-1134610163 -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/357 -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/discussions/406#discussioncomment-7514787 -->
|
||||
key == "loginAction" &&
|
||||
areSamePath(path, ["url"]) &&
|
||||
["saml-post-form.ftl", "error.ftl", "info.ftl", "login-oauth-grant.ftl", "logout-confirm.ftl", "login-oauth2-device-verify-user-code.ftl"]?seq_contains(xKeycloakify.pageId) &&
|
||||
!(auth?has_content && auth.showTryAnotherWayLink())
|
||||
) || (
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/362 -->
|
||||
["secretData", "value"]?seq_contains(key) &&
|
||||
areSamePath(path, [ "totp", "otpCredentials", "*" ])
|
||||
) || (
|
||||
["contextData", "idpConfig", "idp", "authenticationSession"]?seq_contains(key) &&
|
||||
areSamePath(path, ["brokerContext"]) &&
|
||||
["login-idp-link-confirm.ftl", "login-idp-link-email.ftl" ]?seq_contains(xKeycloakify.pageId)
|
||||
) || (
|
||||
key == "identityProviderBrokerCtx" &&
|
||||
areSamePath(path, []) &&
|
||||
["login-idp-link-confirm.ftl", "login-idp-link-email.ftl" ]?seq_contains(xKeycloakify.pageId)
|
||||
) || (
|
||||
["masterAdminClient", "delegateForUpdate", "defaultRole", "smtpConfig"]?seq_contains(key) &&
|
||||
areSamePath(path, ["realm"])
|
||||
) || (
|
||||
xKeycloakify.pageId == "error.ftl" &&
|
||||
areSamePath(path, ["realm"]) &&
|
||||
!["name", "displayName", "displayNameHtml", "internationalizationEnabled", "registrationEmailAsUsername" ]?seq_contains(key)
|
||||
) || (
|
||||
xKeycloakify.pageId == "applications.ftl" &&
|
||||
(
|
||||
key == "realm" ||
|
||||
key == "container"
|
||||
) &&
|
||||
isSubpath(path, ["applications", "applications"])
|
||||
) || (
|
||||
key == "delegateForUpdate" &&
|
||||
areSamePath(path, ["user"])
|
||||
) || (
|
||||
<#-- Security audit forwarded by Garth (Gmail) -->
|
||||
key == "saml.signing.private.key" &&
|
||||
areSamePath(path, ["client", "attributes"])
|
||||
) || (
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/534 -->
|
||||
key == "password" &&
|
||||
areSamePath(path, ["login"])
|
||||
) || (
|
||||
<#-- Remove realmAttributes added by https://github.com/jcputney/keycloak-theme-additional-info-extension for peace of mind. -->
|
||||
key == "realmAttributes" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
<#-- attributesByName adds a lot of noise to the output and is not needed, we already have profile.attributes -->
|
||||
key == "attributesByName" &&
|
||||
areSamePath(path, ["profile"])
|
||||
) || (
|
||||
<#-- We already have the attributes in profile speedup the rendering by filtering it out from the register object -->
|
||||
(key == "attributes" || key == "attributesByName") &&
|
||||
areSamePath(path, ["register"])
|
||||
) || (
|
||||
areSamePath(path, ["properties"]) &&
|
||||
(
|
||||
key?starts_with("kc") ||
|
||||
key == "locales" ||
|
||||
key == "import" ||
|
||||
key == "parent" ||
|
||||
key == "meta" ||
|
||||
key == "stylesCommon" ||
|
||||
key == "styles" ||
|
||||
key == "accountResourceProvider"
|
||||
)
|
||||
) || (
|
||||
key == "execution" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
key == "entity" &&
|
||||
areSamePath(path, ["user"])
|
||||
) || (
|
||||
key == "attributes" &&
|
||||
areSamePath(path, ["realm"])
|
||||
) || (
|
||||
xKeycloakify.pageId == "index.ftl" &&
|
||||
xKeycloakify.themeType == "account" &&
|
||||
areSamePath(path, ["realm"]) &&
|
||||
![
|
||||
"name",
|
||||
"registrationEmailAsUsername",
|
||||
"editUsernameAllowed",
|
||||
"isInternationalizationEnabled",
|
||||
"identityFederationEnabled",
|
||||
"userManagedAccessAllowed"
|
||||
]?seq_contains(key)
|
||||
) || (
|
||||
["flowContext", "session", "realm"]?seq_contains(key) &&
|
||||
areSamePath(path, ["social"])
|
||||
)
|
||||
>
|
||||
<#-- <#local outSeq += ["/*" + path?join(".") + "." + key + " excluded*/"]> -->
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#-- https://github.com/keycloakify/keycloakify/discussions/406 -->
|
||||
<#if (
|
||||
key == "attemptedUsername" &&
|
||||
areSamePath(path, ["auth"]) &&
|
||||
[
|
||||
"register.ftl", "terms.ftl", "info.ftl", "login.ftl",
|
||||
"login-update-password.ftl", "login-oauth2-device-verify-user-code.ftl"
|
||||
]?seq_contains(xKeycloakify.pageId)
|
||||
)>
|
||||
<#attempt>
|
||||
<#-- https://github.com/keycloak/keycloak/blob/3a2bf0c04bcde185e497aaa32d0bb7ab7520cf4a/themes/src/main/resources/theme/base/login/template.ftl#L63 -->
|
||||
<#if !(auth?has_content && auth.showUsername() && !auth.showResetCredentials())>
|
||||
<#local outSeq += ["/*" + path?join(".") + "." + key + " excluded*/"]>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Accessing attemptedUsername throwed an exception */"]>
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
|
||||
|
||||
<#attempt>
|
||||
<#if !object[key]??>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Couldn't test if '" + key + "' is available on this object*/"]>
|
||||
<#continue>
|
||||
</#attempt>
|
||||
|
||||
<#local propertyValue = -1>
|
||||
|
||||
<#attempt>
|
||||
<#local propertyValue = object[key]>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Couldn't dereference '" + key + "' on this object*/"]>
|
||||
<#continue>
|
||||
</#attempt>
|
||||
|
||||
<#local recOut = toJsDeclarationString(propertyValue, path + [ key ])>
|
||||
|
||||
<#if recOut?starts_with("ABORT:")>
|
||||
|
||||
<#local errorMessage = recOut?remove_beginning("ABORT:")>
|
||||
|
||||
<#if errorMessage != " It's a method" >
|
||||
<#local outSeq += ["/*" + key + ": " + errorMessage + "*/"]>
|
||||
</#if>
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local outSeq += ['"' + key + '": ' + recOut + ","]>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return (["{"] + outSeq?map(str -> ""?right_pad(4 * (path?size + 1)) + str) + [ ""?right_pad(4 * path?size) + "}"])?join("\n")>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local isMethod = -1>
|
||||
<#attempt>
|
||||
<#local isMethod = object?is_method>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it'sa method.">
|
||||
</#attempt>
|
||||
|
||||
<#if isMethod>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showUsername"])>
|
||||
<#attempt>
|
||||
<#return auth.showUsername()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showUsername()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showResetCredentials"])>
|
||||
<#attempt>
|
||||
<#return auth.showResetCredentials()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showResetCredentials()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showTryAnotherWayLink"])>
|
||||
<#attempt>
|
||||
<#return auth.showTryAnotherWayLink()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showTryAnotherWayLink()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["url", "getLogoutUrl"])>
|
||||
<#local returnValue = -1>
|
||||
<#attempt>
|
||||
<#local returnValue = url.getLogoutUrl()>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate url.getLogoutUrl()">
|
||||
</#attempt>
|
||||
<#return 'function(){ return "' + returnValue + '"; }'>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["totp", "policy", "getAlgorithmKey"])>
|
||||
<#local returnValue = "error">
|
||||
<#if mode?? && mode = "manual">
|
||||
<#attempt>
|
||||
<#local returnValue = totp.policy.getAlgorithmKey()>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate totp.policy.getAlgorithmKey()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
<#return 'function(){ return "' + returnValue + '"; }'>
|
||||
</#if>
|
||||
|
||||
<#assign fieldNames = ["firstName", "lastName", "email", "username", "password", "password-confirm", "global", "totp", "userLabel", "recoveryCodeInput", "termsAccepted"]>
|
||||
<#if profile?? && profile.attributes??>
|
||||
<#list profile.attributes as attribute>
|
||||
<#if fieldNames?seq_contains(attribute.name)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#assign fieldNames += [attribute.name]>
|
||||
</#list>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["messagesPerField", "get"])>
|
||||
|
||||
<#local jsFunctionCode = "function (fieldName) { ">
|
||||
|
||||
<#list fieldNames as fieldName>
|
||||
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/217 -->
|
||||
<#if xKeycloakify.pageId == "login.ftl" >
|
||||
|
||||
<#if fieldName == "username">
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === 'username' || fieldName === 'password' ){ ">
|
||||
|
||||
<#if messagesPerField.exists('username') || messagesPerField.exists('password')>
|
||||
<#local jsFunctionCode += "return kcContext.message && kcContext.message.summary ? kcContext.message.summary : 'error'; ">
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return ''; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if fieldName == "password">
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === '" + fieldName + "'){ ">
|
||||
|
||||
<#if messagesPerField.exists('${fieldName}')>
|
||||
<#local jsFunctionCode += 'return decodeHtmlEntities("' + messagesPerField.get('${fieldName}')?js_string + '"); '>
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return ''; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
</#list>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
<#return jsFunctionCode>
|
||||
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["messagesPerField", "existsError"])>
|
||||
|
||||
<#local jsFunctionCode = "function (fieldName) { ">
|
||||
|
||||
<#list fieldNames as fieldName>
|
||||
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/217 -->
|
||||
<#if xKeycloakify.pageId == "login.ftl" >
|
||||
<#if fieldName == "username">
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === 'username' || fieldName === 'password' ){ ">
|
||||
|
||||
<#if messagesPerField.existsError('username') || messagesPerField.existsError('password')>
|
||||
<#local jsFunctionCode += "return true; ">
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return false; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if fieldName == "password">
|
||||
<#continue>
|
||||
</#if>
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === '" + fieldName + "' ){ ">
|
||||
|
||||
<#if messagesPerField.existsError('${fieldName}')>
|
||||
<#local jsFunctionCode += 'return true; '>
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return false; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
</#list>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
<#return jsFunctionCode>
|
||||
|
||||
</#if>
|
||||
|
||||
<#if xKeycloakify.themeType == "account" && areSamePath(path, ["realm", "isInternationalizationEnabled"])>
|
||||
<#attempt>
|
||||
<#return realm.isInternationalizationEnabled()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate realm.isInternationalizationEnabled()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#return "ABORT: It's a method">
|
||||
</#if>
|
||||
|
||||
<#local isBoolean = -1>
|
||||
<#attempt>
|
||||
<#local isBoolean = object?is_boolean>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a boolean">
|
||||
</#attempt>
|
||||
|
||||
<#if isBoolean>
|
||||
<#return object?c>
|
||||
</#if>
|
||||
|
||||
<#local isEnumerable = -1>
|
||||
<#attempt>
|
||||
<#local isEnumerable = object?is_enumerable>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's an enumerable">
|
||||
</#attempt>
|
||||
|
||||
|
||||
<#if isEnumerable>
|
||||
|
||||
<#local outSeq = []>
|
||||
|
||||
<#local i = 0>
|
||||
|
||||
<#list object as array_item>
|
||||
|
||||
<#if !array_item??>
|
||||
<#local outSeq += ["null,"]>
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local recOut = toJsDeclarationString(array_item, path + [ i ])>
|
||||
|
||||
<#local i = i + 1>
|
||||
|
||||
<#if recOut?starts_with("ABORT:")>
|
||||
|
||||
<#local errorMessage = recOut?remove_beginning("ABORT:")>
|
||||
|
||||
<#if errorMessage != " It's a method" >
|
||||
<#local outSeq += ["/*" + i?string + ": " + errorMessage + "*/"]>
|
||||
</#if>
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local outSeq += [recOut + ","]>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return (["["] + outSeq?map(str -> ""?right_pad(4 * (path?size + 1)) + str) + [ ""?right_pad(4 * path?size) + "]"])?join("\n")>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local isDate = -1>
|
||||
<#attempt>
|
||||
<#local isDate = object?is_date_like>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a date">
|
||||
</#attempt>
|
||||
|
||||
<#if isDate>
|
||||
<#return '"' + object?datetime?iso_utc + '"'>
|
||||
</#if>
|
||||
|
||||
<#local isNumber = -1>
|
||||
<#attempt>
|
||||
<#local isNumber = object?is_number>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a number">
|
||||
</#attempt>
|
||||
|
||||
<#if isNumber>
|
||||
<#return object?c>
|
||||
</#if>
|
||||
|
||||
<#local isString = -1>
|
||||
<#attempt>
|
||||
<#local isString = object?is_string>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a string">
|
||||
</#attempt>
|
||||
|
||||
<#if isString>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str=object />
|
||||
</#if>
|
||||
|
||||
<#attempt>
|
||||
<#return '"' + object?js_string + '"'>;
|
||||
<#recover>
|
||||
</#attempt>
|
||||
|
||||
<#return "ABORT: Couldn't convert into string non hash, non method, non boolean, non number, non enumerable object">
|
||||
|
||||
</#function>
|
||||
<#function isSubpath path searchedPath>
|
||||
|
||||
<#if path?size < searchedPath?size>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#local i=0>
|
||||
|
||||
<#list path as property>
|
||||
|
||||
<#if i == searchedPath?size >
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local searchedProperty=searchedPath[i]>
|
||||
|
||||
<#local i+= 1>
|
||||
|
||||
<#if searchedProperty?is_string && searchedProperty == "*">
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?is_string && !property?is_string>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?is_number && !property?is_number>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?string != property?string>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return true>
|
||||
|
||||
</#function>
|
||||
|
||||
<#function areSamePath path searchedPath>
|
||||
<#return path?size == searchedPath?size && isSubpath(path, searchedPath)>
|
||||
</#function>
|
||||
|
||||
<#macro addToXKeycloakifyMessagesIfMessageKey str>
|
||||
<#if !msg?? || !msg?is_method>
|
||||
<#return>
|
||||
</#if>
|
||||
<#if (str?length > 200)>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local key=removeBrackets(str)>
|
||||
<#if key?length==0>
|
||||
<#return>
|
||||
</#if>
|
||||
<#if !(key?matches(r"^[a-zA-Z0-9-_.]*$"))>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local resolvedMsg=msg(key)>
|
||||
<#if resolvedMsg==key>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local messages=xKeycloakify.messages>
|
||||
<#local messages = messages + { key: resolvedMsg }>
|
||||
<#assign xKeycloakify = xKeycloakify + { "messages": messages }>
|
||||
</#macro>
|
||||
|
||||
<#function removeBrackets str>
|
||||
<#if str?starts_with("${") && str?ends_with("}")>
|
||||
<#return str[2..(str?length-2)]>
|
||||
<#else>
|
||||
<#return str>
|
||||
</#if>
|
||||
</#function>
|
||||
|
||||
<#macro addNonAutomaticallyGatherableMessagesToXKeycloakifyMessages>
|
||||
<#if profile?? && profile?is_hash && profile.attributes?? && profile.attributes?is_enumerable>
|
||||
<#list profile.attributes as attribute>
|
||||
<#if !(
|
||||
attribute.annotations?? && attribute.annotations?is_hash &&
|
||||
attribute.annotations.inputOptionLabelsI18nPrefix?? && attribute.annotations.inputOptionLabelsI18nPrefix?is_string
|
||||
)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#local prefix=attribute.annotations.inputOptionLabelsI18nPrefix>
|
||||
<#if !(
|
||||
attribute.validators?? && attribute.validators?is_hash &&
|
||||
attribute.validators.options?? && attribute.validators.options?is_hash &&
|
||||
attribute.validators.options.options?? && attribute.validators.options.options?is_enumerable
|
||||
)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#list attribute.validators.options.options as option>
|
||||
<#if !option?is_string>
|
||||
<#continue>
|
||||
</#if>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="${prefix}.${option}" />
|
||||
</#list>
|
||||
</#list>
|
||||
</#if>
|
||||
<#if xKeycloakify.pageId == "terms.ftl" || termsAcceptanceRequired?? && termsAcceptanceRequired>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="termsText" />
|
||||
</#if>
|
||||
<#if requiredActions?? && requiredActions?is_enumerable>
|
||||
<#list requiredActions as requiredAction>
|
||||
<#if !requiredAction?is_string>
|
||||
<#continue>
|
||||
</#if>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="requiredAction.${requiredAction}" />
|
||||
</#list>
|
||||
</#if>
|
||||
</#macro>
|
||||
|
||||
</script>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="${xKeycloakify.resourcesPath}/dist/favicon-32x32.png">
|
||||
<script type="module" crossorigin="" src="${xKeycloakify.resourcesPath}/dist/assets/index-6-NnS-wp.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="root"></div>
|
||||
|
||||
|
||||
</body></html>
|
739
dist_keycloak/theme/keycloakify-starter/login/login.ftl
Normal file
739
dist_keycloak/theme/keycloakify-starter/login/login.ftl
Normal file
@ -0,0 +1,739 @@
|
||||
<!DOCTYPE html><html><head><script>
|
||||
<#assign xKeycloakify={
|
||||
"messages": {},
|
||||
"pageId": "login.ftl",
|
||||
"ftlTemplateFileName": "login.ftl",
|
||||
"themeType": "login",
|
||||
"themeName": "keycloakify-starter",
|
||||
"keycloakifyVersion": "11.4.4",
|
||||
"themeVersion": "0.0.0",
|
||||
"resourcesPath": ""
|
||||
}>
|
||||
|
||||
<#if url?? && url?is_hash && url.resourcesPath?? && url.resourcesPath?is_string>
|
||||
<#assign xKeycloakify = xKeycloakify + { "resourcesPath": url.resourcesPath }>
|
||||
</#if>
|
||||
<#if resourceUrl?? && resourceUrl?is_string>
|
||||
<#assign xKeycloakify = xKeycloakify + { "resourcesPath": resourceUrl }>
|
||||
</#if>
|
||||
|
||||
const kcContext = ${toJsDeclarationString(.data_model, [])?no_esc};
|
||||
kcContext.keycloakifyVersion = "${xKeycloakify.keycloakifyVersion}";
|
||||
kcContext.themeVersion = "${xKeycloakify.themeVersion}";
|
||||
kcContext.themeType = "${xKeycloakify.themeType}";
|
||||
kcContext.themeName = "${xKeycloakify.themeName}";
|
||||
kcContext.pageId = "${xKeycloakify.pageId}";
|
||||
kcContext.ftlTemplateFileName = "${xKeycloakify.ftlTemplateFileName}";
|
||||
|
||||
<@addNonAutomaticallyGatherableMessagesToXKeycloakifyMessages />
|
||||
|
||||
kcContext["x-keycloakify"] = {};
|
||||
|
||||
kcContext["x-keycloakify"].resourcesPath = "${xKeycloakify.resourcesPath}";
|
||||
|
||||
{
|
||||
var messages = {};
|
||||
<#list xKeycloakify.messages as key, resolvedMsg>
|
||||
messages["${key}"] = decodeHtmlEntities("${resolvedMsg?js_string}");
|
||||
</#list>
|
||||
kcContext["x-keycloakify"].messages = messages;
|
||||
}
|
||||
|
||||
if(
|
||||
kcContext.url instanceof Object &&
|
||||
typeof kcContext.url.resourcesPath === "string"
|
||||
){
|
||||
kcContext.url.resourcesCommonPath = kcContext.url.resourcesPath + "/resources-common";
|
||||
}
|
||||
|
||||
if( kcContext.messagesPerField ){
|
||||
var existsError_singleFieldName = kcContext.messagesPerField.existsError;
|
||||
kcContext.messagesPerField.existsError = function (){
|
||||
for( let i = 0; i < arguments.length; i++ ){
|
||||
if( existsError_singleFieldName(arguments[i]) ){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
};
|
||||
kcContext.messagesPerField.exists = function (fieldName) {
|
||||
return kcContext.messagesPerField.get(fieldName) !== "";
|
||||
};
|
||||
kcContext.messagesPerField.printIfExists = function (fieldName, text) {
|
||||
return kcContext.messagesPerField.exists(fieldName) ? text : undefined;
|
||||
};
|
||||
kcContext.messagesPerField.getFirstError = function () {
|
||||
for( let i = 0; i < arguments.length; i++ ){
|
||||
const fieldName = arguments[i];
|
||||
if( kcContext.messagesPerField.existsError(fieldName) ){
|
||||
return kcContext.messagesPerField.get(fieldName);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
attributes_to_attributesByName: {
|
||||
if( !kcContext.profile ){
|
||||
break attributes_to_attributesByName;
|
||||
}
|
||||
if( !kcContext.profile.attributes ){
|
||||
break attributes_to_attributesByName;
|
||||
}
|
||||
var attributes = kcContext.profile.attributes;
|
||||
delete kcContext.profile.attributes;
|
||||
kcContext.profile.attributesByName = {};
|
||||
attributes.forEach(function(attribute){
|
||||
kcContext.profile.attributesByName[attribute.name] = attribute;
|
||||
});
|
||||
}
|
||||
|
||||
redirect_to_dev_server: {
|
||||
|
||||
switch(kcContext.themeType){
|
||||
case "login":
|
||||
break redirect_to_dev_server;
|
||||
case "account":
|
||||
if( kcContext.pageId !== "index.ftl" ){
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
break;
|
||||
case "admin":
|
||||
break;
|
||||
default:
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
|
||||
const devSeverPort = kcContext.properties.KEYCLOAKIFY_SPA_DEV_SERVER_PORT;
|
||||
|
||||
if( !devSeverPort ){
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
|
||||
const redirectUrl = new URL(window.location.href);
|
||||
|
||||
redirectUrl.port = devSeverPort;
|
||||
|
||||
delete kcContext.msgJSON;
|
||||
|
||||
console.log(kcContext);
|
||||
|
||||
redirectUrl.searchParams.set("kcContext", encodeURIComponent(JSON.stringify(kcContext)));
|
||||
|
||||
window.location.href = redirectUrl.toString();
|
||||
|
||||
}
|
||||
|
||||
|
||||
window.kcContext = kcContext;
|
||||
|
||||
|
||||
<#if xKeycloakify.themeType == "login" >
|
||||
{
|
||||
const script = document.createElement("script");
|
||||
script.type = "importmap";
|
||||
script.textContent = JSON.stringify({
|
||||
imports: {
|
||||
"rfc4648": kcContext.url.resourcesCommonPath + "/node_modules/rfc4648/lib/rfc4648.js"
|
||||
}
|
||||
}, null, 2);
|
||||
|
||||
document.head.appendChild(script);
|
||||
}
|
||||
</#if>
|
||||
|
||||
function decodeHtmlEntities(htmlStr){
|
||||
var element = decodeHtmlEntities.element;
|
||||
if (!element) {
|
||||
element = document.createElement("textarea");
|
||||
decodeHtmlEntities.element = element;
|
||||
}
|
||||
element.innerHTML = htmlStr;
|
||||
return element.value;
|
||||
}
|
||||
|
||||
<#function toJsDeclarationString object path>
|
||||
<#local isHash = -1>
|
||||
<#attempt>
|
||||
<#local isHash = object?is_hash || object?is_hash_ex>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't evaluate if " + path?join(".") + " is a hash">
|
||||
</#attempt>
|
||||
|
||||
<#if isHash>
|
||||
<#if path?size gt 10>
|
||||
<#return "ABORT: Too many recursive calls, path: " + path?join(".")>
|
||||
</#if>
|
||||
<#local keys = -1>
|
||||
|
||||
<#attempt>
|
||||
<#local keys = object?keys>
|
||||
<#recover>
|
||||
<#return "ABORT: We can't list keys on object">
|
||||
</#attempt>
|
||||
|
||||
<#local outSeq = []>
|
||||
|
||||
<#list keys as key>
|
||||
<#if ["class","declaredConstructors","superclass","declaringClass" ]?seq_contains(key) >
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if (
|
||||
areSamePath(path, ["url"]) &&
|
||||
["loginUpdatePasswordUrl", "loginUpdateProfileUrl", "loginUsernameReminderUrl", "loginUpdateTotpUrl"]?seq_contains(key)
|
||||
) || (
|
||||
key == "updateProfileCtx" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
<#-- https://github.com/keycloakify/keycloakify/pull/65#issuecomment-991896344 (reports with saml-post-form.ftl) -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/91#issue-1212319466 (reports with error.ftl and Kc18) -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/109#issuecomment-1134610163 -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/357 -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/discussions/406#discussioncomment-7514787 -->
|
||||
key == "loginAction" &&
|
||||
areSamePath(path, ["url"]) &&
|
||||
["saml-post-form.ftl", "error.ftl", "info.ftl", "login-oauth-grant.ftl", "logout-confirm.ftl", "login-oauth2-device-verify-user-code.ftl"]?seq_contains(xKeycloakify.pageId) &&
|
||||
!(auth?has_content && auth.showTryAnotherWayLink())
|
||||
) || (
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/362 -->
|
||||
["secretData", "value"]?seq_contains(key) &&
|
||||
areSamePath(path, [ "totp", "otpCredentials", "*" ])
|
||||
) || (
|
||||
["contextData", "idpConfig", "idp", "authenticationSession"]?seq_contains(key) &&
|
||||
areSamePath(path, ["brokerContext"]) &&
|
||||
["login-idp-link-confirm.ftl", "login-idp-link-email.ftl" ]?seq_contains(xKeycloakify.pageId)
|
||||
) || (
|
||||
key == "identityProviderBrokerCtx" &&
|
||||
areSamePath(path, []) &&
|
||||
["login-idp-link-confirm.ftl", "login-idp-link-email.ftl" ]?seq_contains(xKeycloakify.pageId)
|
||||
) || (
|
||||
["masterAdminClient", "delegateForUpdate", "defaultRole", "smtpConfig"]?seq_contains(key) &&
|
||||
areSamePath(path, ["realm"])
|
||||
) || (
|
||||
xKeycloakify.pageId == "error.ftl" &&
|
||||
areSamePath(path, ["realm"]) &&
|
||||
!["name", "displayName", "displayNameHtml", "internationalizationEnabled", "registrationEmailAsUsername" ]?seq_contains(key)
|
||||
) || (
|
||||
xKeycloakify.pageId == "applications.ftl" &&
|
||||
(
|
||||
key == "realm" ||
|
||||
key == "container"
|
||||
) &&
|
||||
isSubpath(path, ["applications", "applications"])
|
||||
) || (
|
||||
key == "delegateForUpdate" &&
|
||||
areSamePath(path, ["user"])
|
||||
) || (
|
||||
<#-- Security audit forwarded by Garth (Gmail) -->
|
||||
key == "saml.signing.private.key" &&
|
||||
areSamePath(path, ["client", "attributes"])
|
||||
) || (
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/534 -->
|
||||
key == "password" &&
|
||||
areSamePath(path, ["login"])
|
||||
) || (
|
||||
<#-- Remove realmAttributes added by https://github.com/jcputney/keycloak-theme-additional-info-extension for peace of mind. -->
|
||||
key == "realmAttributes" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
<#-- attributesByName adds a lot of noise to the output and is not needed, we already have profile.attributes -->
|
||||
key == "attributesByName" &&
|
||||
areSamePath(path, ["profile"])
|
||||
) || (
|
||||
<#-- We already have the attributes in profile speedup the rendering by filtering it out from the register object -->
|
||||
(key == "attributes" || key == "attributesByName") &&
|
||||
areSamePath(path, ["register"])
|
||||
) || (
|
||||
areSamePath(path, ["properties"]) &&
|
||||
(
|
||||
key?starts_with("kc") ||
|
||||
key == "locales" ||
|
||||
key == "import" ||
|
||||
key == "parent" ||
|
||||
key == "meta" ||
|
||||
key == "stylesCommon" ||
|
||||
key == "styles" ||
|
||||
key == "accountResourceProvider"
|
||||
)
|
||||
) || (
|
||||
key == "execution" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
key == "entity" &&
|
||||
areSamePath(path, ["user"])
|
||||
) || (
|
||||
key == "attributes" &&
|
||||
areSamePath(path, ["realm"])
|
||||
) || (
|
||||
xKeycloakify.pageId == "index.ftl" &&
|
||||
xKeycloakify.themeType == "account" &&
|
||||
areSamePath(path, ["realm"]) &&
|
||||
![
|
||||
"name",
|
||||
"registrationEmailAsUsername",
|
||||
"editUsernameAllowed",
|
||||
"isInternationalizationEnabled",
|
||||
"identityFederationEnabled",
|
||||
"userManagedAccessAllowed"
|
||||
]?seq_contains(key)
|
||||
) || (
|
||||
["flowContext", "session", "realm"]?seq_contains(key) &&
|
||||
areSamePath(path, ["social"])
|
||||
)
|
||||
>
|
||||
<#-- <#local outSeq += ["/*" + path?join(".") + "." + key + " excluded*/"]> -->
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#-- https://github.com/keycloakify/keycloakify/discussions/406 -->
|
||||
<#if (
|
||||
key == "attemptedUsername" &&
|
||||
areSamePath(path, ["auth"]) &&
|
||||
[
|
||||
"register.ftl", "terms.ftl", "info.ftl", "login.ftl",
|
||||
"login-update-password.ftl", "login-oauth2-device-verify-user-code.ftl"
|
||||
]?seq_contains(xKeycloakify.pageId)
|
||||
)>
|
||||
<#attempt>
|
||||
<#-- https://github.com/keycloak/keycloak/blob/3a2bf0c04bcde185e497aaa32d0bb7ab7520cf4a/themes/src/main/resources/theme/base/login/template.ftl#L63 -->
|
||||
<#if !(auth?has_content && auth.showUsername() && !auth.showResetCredentials())>
|
||||
<#local outSeq += ["/*" + path?join(".") + "." + key + " excluded*/"]>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Accessing attemptedUsername throwed an exception */"]>
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
|
||||
|
||||
<#attempt>
|
||||
<#if !object[key]??>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Couldn't test if '" + key + "' is available on this object*/"]>
|
||||
<#continue>
|
||||
</#attempt>
|
||||
|
||||
<#local propertyValue = -1>
|
||||
|
||||
<#attempt>
|
||||
<#local propertyValue = object[key]>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Couldn't dereference '" + key + "' on this object*/"]>
|
||||
<#continue>
|
||||
</#attempt>
|
||||
|
||||
<#local recOut = toJsDeclarationString(propertyValue, path + [ key ])>
|
||||
|
||||
<#if recOut?starts_with("ABORT:")>
|
||||
|
||||
<#local errorMessage = recOut?remove_beginning("ABORT:")>
|
||||
|
||||
<#if errorMessage != " It's a method" >
|
||||
<#local outSeq += ["/*" + key + ": " + errorMessage + "*/"]>
|
||||
</#if>
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local outSeq += ['"' + key + '": ' + recOut + ","]>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return (["{"] + outSeq?map(str -> ""?right_pad(4 * (path?size + 1)) + str) + [ ""?right_pad(4 * path?size) + "}"])?join("\n")>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local isMethod = -1>
|
||||
<#attempt>
|
||||
<#local isMethod = object?is_method>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it'sa method.">
|
||||
</#attempt>
|
||||
|
||||
<#if isMethod>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showUsername"])>
|
||||
<#attempt>
|
||||
<#return auth.showUsername()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showUsername()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showResetCredentials"])>
|
||||
<#attempt>
|
||||
<#return auth.showResetCredentials()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showResetCredentials()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showTryAnotherWayLink"])>
|
||||
<#attempt>
|
||||
<#return auth.showTryAnotherWayLink()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showTryAnotherWayLink()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["url", "getLogoutUrl"])>
|
||||
<#local returnValue = -1>
|
||||
<#attempt>
|
||||
<#local returnValue = url.getLogoutUrl()>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate url.getLogoutUrl()">
|
||||
</#attempt>
|
||||
<#return 'function(){ return "' + returnValue + '"; }'>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["totp", "policy", "getAlgorithmKey"])>
|
||||
<#local returnValue = "error">
|
||||
<#if mode?? && mode = "manual">
|
||||
<#attempt>
|
||||
<#local returnValue = totp.policy.getAlgorithmKey()>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate totp.policy.getAlgorithmKey()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
<#return 'function(){ return "' + returnValue + '"; }'>
|
||||
</#if>
|
||||
|
||||
<#assign fieldNames = ["firstName", "lastName", "email", "username", "password", "password-confirm", "global", "totp", "userLabel", "recoveryCodeInput", "termsAccepted"]>
|
||||
<#if profile?? && profile.attributes??>
|
||||
<#list profile.attributes as attribute>
|
||||
<#if fieldNames?seq_contains(attribute.name)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#assign fieldNames += [attribute.name]>
|
||||
</#list>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["messagesPerField", "get"])>
|
||||
|
||||
<#local jsFunctionCode = "function (fieldName) { ">
|
||||
|
||||
<#list fieldNames as fieldName>
|
||||
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/217 -->
|
||||
<#if xKeycloakify.pageId == "login.ftl" >
|
||||
|
||||
<#if fieldName == "username">
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === 'username' || fieldName === 'password' ){ ">
|
||||
|
||||
<#if messagesPerField.exists('username') || messagesPerField.exists('password')>
|
||||
<#local jsFunctionCode += "return kcContext.message && kcContext.message.summary ? kcContext.message.summary : 'error'; ">
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return ''; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if fieldName == "password">
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === '" + fieldName + "'){ ">
|
||||
|
||||
<#if messagesPerField.exists('${fieldName}')>
|
||||
<#local jsFunctionCode += 'return decodeHtmlEntities("' + messagesPerField.get('${fieldName}')?js_string + '"); '>
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return ''; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
</#list>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
<#return jsFunctionCode>
|
||||
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["messagesPerField", "existsError"])>
|
||||
|
||||
<#local jsFunctionCode = "function (fieldName) { ">
|
||||
|
||||
<#list fieldNames as fieldName>
|
||||
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/217 -->
|
||||
<#if xKeycloakify.pageId == "login.ftl" >
|
||||
<#if fieldName == "username">
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === 'username' || fieldName === 'password' ){ ">
|
||||
|
||||
<#if messagesPerField.existsError('username') || messagesPerField.existsError('password')>
|
||||
<#local jsFunctionCode += "return true; ">
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return false; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if fieldName == "password">
|
||||
<#continue>
|
||||
</#if>
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === '" + fieldName + "' ){ ">
|
||||
|
||||
<#if messagesPerField.existsError('${fieldName}')>
|
||||
<#local jsFunctionCode += 'return true; '>
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return false; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
</#list>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
<#return jsFunctionCode>
|
||||
|
||||
</#if>
|
||||
|
||||
<#if xKeycloakify.themeType == "account" && areSamePath(path, ["realm", "isInternationalizationEnabled"])>
|
||||
<#attempt>
|
||||
<#return realm.isInternationalizationEnabled()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate realm.isInternationalizationEnabled()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#return "ABORT: It's a method">
|
||||
</#if>
|
||||
|
||||
<#local isBoolean = -1>
|
||||
<#attempt>
|
||||
<#local isBoolean = object?is_boolean>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a boolean">
|
||||
</#attempt>
|
||||
|
||||
<#if isBoolean>
|
||||
<#return object?c>
|
||||
</#if>
|
||||
|
||||
<#local isEnumerable = -1>
|
||||
<#attempt>
|
||||
<#local isEnumerable = object?is_enumerable>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's an enumerable">
|
||||
</#attempt>
|
||||
|
||||
|
||||
<#if isEnumerable>
|
||||
|
||||
<#local outSeq = []>
|
||||
|
||||
<#local i = 0>
|
||||
|
||||
<#list object as array_item>
|
||||
|
||||
<#if !array_item??>
|
||||
<#local outSeq += ["null,"]>
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local recOut = toJsDeclarationString(array_item, path + [ i ])>
|
||||
|
||||
<#local i = i + 1>
|
||||
|
||||
<#if recOut?starts_with("ABORT:")>
|
||||
|
||||
<#local errorMessage = recOut?remove_beginning("ABORT:")>
|
||||
|
||||
<#if errorMessage != " It's a method" >
|
||||
<#local outSeq += ["/*" + i?string + ": " + errorMessage + "*/"]>
|
||||
</#if>
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local outSeq += [recOut + ","]>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return (["["] + outSeq?map(str -> ""?right_pad(4 * (path?size + 1)) + str) + [ ""?right_pad(4 * path?size) + "]"])?join("\n")>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local isDate = -1>
|
||||
<#attempt>
|
||||
<#local isDate = object?is_date_like>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a date">
|
||||
</#attempt>
|
||||
|
||||
<#if isDate>
|
||||
<#return '"' + object?datetime?iso_utc + '"'>
|
||||
</#if>
|
||||
|
||||
<#local isNumber = -1>
|
||||
<#attempt>
|
||||
<#local isNumber = object?is_number>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a number">
|
||||
</#attempt>
|
||||
|
||||
<#if isNumber>
|
||||
<#return object?c>
|
||||
</#if>
|
||||
|
||||
<#local isString = -1>
|
||||
<#attempt>
|
||||
<#local isString = object?is_string>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a string">
|
||||
</#attempt>
|
||||
|
||||
<#if isString>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str=object />
|
||||
</#if>
|
||||
|
||||
<#attempt>
|
||||
<#return '"' + object?js_string + '"'>;
|
||||
<#recover>
|
||||
</#attempt>
|
||||
|
||||
<#return "ABORT: Couldn't convert into string non hash, non method, non boolean, non number, non enumerable object">
|
||||
|
||||
</#function>
|
||||
<#function isSubpath path searchedPath>
|
||||
|
||||
<#if path?size < searchedPath?size>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#local i=0>
|
||||
|
||||
<#list path as property>
|
||||
|
||||
<#if i == searchedPath?size >
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local searchedProperty=searchedPath[i]>
|
||||
|
||||
<#local i+= 1>
|
||||
|
||||
<#if searchedProperty?is_string && searchedProperty == "*">
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?is_string && !property?is_string>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?is_number && !property?is_number>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?string != property?string>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return true>
|
||||
|
||||
</#function>
|
||||
|
||||
<#function areSamePath path searchedPath>
|
||||
<#return path?size == searchedPath?size && isSubpath(path, searchedPath)>
|
||||
</#function>
|
||||
|
||||
<#macro addToXKeycloakifyMessagesIfMessageKey str>
|
||||
<#if !msg?? || !msg?is_method>
|
||||
<#return>
|
||||
</#if>
|
||||
<#if (str?length > 200)>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local key=removeBrackets(str)>
|
||||
<#if key?length==0>
|
||||
<#return>
|
||||
</#if>
|
||||
<#if !(key?matches(r"^[a-zA-Z0-9-_.]*$"))>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local resolvedMsg=msg(key)>
|
||||
<#if resolvedMsg==key>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local messages=xKeycloakify.messages>
|
||||
<#local messages = messages + { key: resolvedMsg }>
|
||||
<#assign xKeycloakify = xKeycloakify + { "messages": messages }>
|
||||
</#macro>
|
||||
|
||||
<#function removeBrackets str>
|
||||
<#if str?starts_with("${") && str?ends_with("}")>
|
||||
<#return str[2..(str?length-2)]>
|
||||
<#else>
|
||||
<#return str>
|
||||
</#if>
|
||||
</#function>
|
||||
|
||||
<#macro addNonAutomaticallyGatherableMessagesToXKeycloakifyMessages>
|
||||
<#if profile?? && profile?is_hash && profile.attributes?? && profile.attributes?is_enumerable>
|
||||
<#list profile.attributes as attribute>
|
||||
<#if !(
|
||||
attribute.annotations?? && attribute.annotations?is_hash &&
|
||||
attribute.annotations.inputOptionLabelsI18nPrefix?? && attribute.annotations.inputOptionLabelsI18nPrefix?is_string
|
||||
)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#local prefix=attribute.annotations.inputOptionLabelsI18nPrefix>
|
||||
<#if !(
|
||||
attribute.validators?? && attribute.validators?is_hash &&
|
||||
attribute.validators.options?? && attribute.validators.options?is_hash &&
|
||||
attribute.validators.options.options?? && attribute.validators.options.options?is_enumerable
|
||||
)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#list attribute.validators.options.options as option>
|
||||
<#if !option?is_string>
|
||||
<#continue>
|
||||
</#if>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="${prefix}.${option}" />
|
||||
</#list>
|
||||
</#list>
|
||||
</#if>
|
||||
<#if xKeycloakify.pageId == "terms.ftl" || termsAcceptanceRequired?? && termsAcceptanceRequired>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="termsText" />
|
||||
</#if>
|
||||
<#if requiredActions?? && requiredActions?is_enumerable>
|
||||
<#list requiredActions as requiredAction>
|
||||
<#if !requiredAction?is_string>
|
||||
<#continue>
|
||||
</#if>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="requiredAction.${requiredAction}" />
|
||||
</#list>
|
||||
</#if>
|
||||
</#macro>
|
||||
|
||||
</script>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="${xKeycloakify.resourcesPath}/dist/favicon-32x32.png">
|
||||
<script type="module" crossorigin="" src="${xKeycloakify.resourcesPath}/dist/assets/index-6-NnS-wp.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="root"></div>
|
||||
|
||||
|
||||
</body></html>
|
739
dist_keycloak/theme/keycloakify-starter/login/logout-confirm.ftl
Normal file
739
dist_keycloak/theme/keycloakify-starter/login/logout-confirm.ftl
Normal file
@ -0,0 +1,739 @@
|
||||
<!DOCTYPE html><html><head><script>
|
||||
<#assign xKeycloakify={
|
||||
"messages": {},
|
||||
"pageId": "logout-confirm.ftl",
|
||||
"ftlTemplateFileName": "logout-confirm.ftl",
|
||||
"themeType": "login",
|
||||
"themeName": "keycloakify-starter",
|
||||
"keycloakifyVersion": "11.4.4",
|
||||
"themeVersion": "0.0.0",
|
||||
"resourcesPath": ""
|
||||
}>
|
||||
|
||||
<#if url?? && url?is_hash && url.resourcesPath?? && url.resourcesPath?is_string>
|
||||
<#assign xKeycloakify = xKeycloakify + { "resourcesPath": url.resourcesPath }>
|
||||
</#if>
|
||||
<#if resourceUrl?? && resourceUrl?is_string>
|
||||
<#assign xKeycloakify = xKeycloakify + { "resourcesPath": resourceUrl }>
|
||||
</#if>
|
||||
|
||||
const kcContext = ${toJsDeclarationString(.data_model, [])?no_esc};
|
||||
kcContext.keycloakifyVersion = "${xKeycloakify.keycloakifyVersion}";
|
||||
kcContext.themeVersion = "${xKeycloakify.themeVersion}";
|
||||
kcContext.themeType = "${xKeycloakify.themeType}";
|
||||
kcContext.themeName = "${xKeycloakify.themeName}";
|
||||
kcContext.pageId = "${xKeycloakify.pageId}";
|
||||
kcContext.ftlTemplateFileName = "${xKeycloakify.ftlTemplateFileName}";
|
||||
|
||||
<@addNonAutomaticallyGatherableMessagesToXKeycloakifyMessages />
|
||||
|
||||
kcContext["x-keycloakify"] = {};
|
||||
|
||||
kcContext["x-keycloakify"].resourcesPath = "${xKeycloakify.resourcesPath}";
|
||||
|
||||
{
|
||||
var messages = {};
|
||||
<#list xKeycloakify.messages as key, resolvedMsg>
|
||||
messages["${key}"] = decodeHtmlEntities("${resolvedMsg?js_string}");
|
||||
</#list>
|
||||
kcContext["x-keycloakify"].messages = messages;
|
||||
}
|
||||
|
||||
if(
|
||||
kcContext.url instanceof Object &&
|
||||
typeof kcContext.url.resourcesPath === "string"
|
||||
){
|
||||
kcContext.url.resourcesCommonPath = kcContext.url.resourcesPath + "/resources-common";
|
||||
}
|
||||
|
||||
if( kcContext.messagesPerField ){
|
||||
var existsError_singleFieldName = kcContext.messagesPerField.existsError;
|
||||
kcContext.messagesPerField.existsError = function (){
|
||||
for( let i = 0; i < arguments.length; i++ ){
|
||||
if( existsError_singleFieldName(arguments[i]) ){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
};
|
||||
kcContext.messagesPerField.exists = function (fieldName) {
|
||||
return kcContext.messagesPerField.get(fieldName) !== "";
|
||||
};
|
||||
kcContext.messagesPerField.printIfExists = function (fieldName, text) {
|
||||
return kcContext.messagesPerField.exists(fieldName) ? text : undefined;
|
||||
};
|
||||
kcContext.messagesPerField.getFirstError = function () {
|
||||
for( let i = 0; i < arguments.length; i++ ){
|
||||
const fieldName = arguments[i];
|
||||
if( kcContext.messagesPerField.existsError(fieldName) ){
|
||||
return kcContext.messagesPerField.get(fieldName);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
attributes_to_attributesByName: {
|
||||
if( !kcContext.profile ){
|
||||
break attributes_to_attributesByName;
|
||||
}
|
||||
if( !kcContext.profile.attributes ){
|
||||
break attributes_to_attributesByName;
|
||||
}
|
||||
var attributes = kcContext.profile.attributes;
|
||||
delete kcContext.profile.attributes;
|
||||
kcContext.profile.attributesByName = {};
|
||||
attributes.forEach(function(attribute){
|
||||
kcContext.profile.attributesByName[attribute.name] = attribute;
|
||||
});
|
||||
}
|
||||
|
||||
redirect_to_dev_server: {
|
||||
|
||||
switch(kcContext.themeType){
|
||||
case "login":
|
||||
break redirect_to_dev_server;
|
||||
case "account":
|
||||
if( kcContext.pageId !== "index.ftl" ){
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
break;
|
||||
case "admin":
|
||||
break;
|
||||
default:
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
|
||||
const devSeverPort = kcContext.properties.KEYCLOAKIFY_SPA_DEV_SERVER_PORT;
|
||||
|
||||
if( !devSeverPort ){
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
|
||||
const redirectUrl = new URL(window.location.href);
|
||||
|
||||
redirectUrl.port = devSeverPort;
|
||||
|
||||
delete kcContext.msgJSON;
|
||||
|
||||
console.log(kcContext);
|
||||
|
||||
redirectUrl.searchParams.set("kcContext", encodeURIComponent(JSON.stringify(kcContext)));
|
||||
|
||||
window.location.href = redirectUrl.toString();
|
||||
|
||||
}
|
||||
|
||||
|
||||
window.kcContext = kcContext;
|
||||
|
||||
|
||||
<#if xKeycloakify.themeType == "login" >
|
||||
{
|
||||
const script = document.createElement("script");
|
||||
script.type = "importmap";
|
||||
script.textContent = JSON.stringify({
|
||||
imports: {
|
||||
"rfc4648": kcContext.url.resourcesCommonPath + "/node_modules/rfc4648/lib/rfc4648.js"
|
||||
}
|
||||
}, null, 2);
|
||||
|
||||
document.head.appendChild(script);
|
||||
}
|
||||
</#if>
|
||||
|
||||
function decodeHtmlEntities(htmlStr){
|
||||
var element = decodeHtmlEntities.element;
|
||||
if (!element) {
|
||||
element = document.createElement("textarea");
|
||||
decodeHtmlEntities.element = element;
|
||||
}
|
||||
element.innerHTML = htmlStr;
|
||||
return element.value;
|
||||
}
|
||||
|
||||
<#function toJsDeclarationString object path>
|
||||
<#local isHash = -1>
|
||||
<#attempt>
|
||||
<#local isHash = object?is_hash || object?is_hash_ex>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't evaluate if " + path?join(".") + " is a hash">
|
||||
</#attempt>
|
||||
|
||||
<#if isHash>
|
||||
<#if path?size gt 10>
|
||||
<#return "ABORT: Too many recursive calls, path: " + path?join(".")>
|
||||
</#if>
|
||||
<#local keys = -1>
|
||||
|
||||
<#attempt>
|
||||
<#local keys = object?keys>
|
||||
<#recover>
|
||||
<#return "ABORT: We can't list keys on object">
|
||||
</#attempt>
|
||||
|
||||
<#local outSeq = []>
|
||||
|
||||
<#list keys as key>
|
||||
<#if ["class","declaredConstructors","superclass","declaringClass" ]?seq_contains(key) >
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if (
|
||||
areSamePath(path, ["url"]) &&
|
||||
["loginUpdatePasswordUrl", "loginUpdateProfileUrl", "loginUsernameReminderUrl", "loginUpdateTotpUrl"]?seq_contains(key)
|
||||
) || (
|
||||
key == "updateProfileCtx" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
<#-- https://github.com/keycloakify/keycloakify/pull/65#issuecomment-991896344 (reports with saml-post-form.ftl) -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/91#issue-1212319466 (reports with error.ftl and Kc18) -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/109#issuecomment-1134610163 -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/357 -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/discussions/406#discussioncomment-7514787 -->
|
||||
key == "loginAction" &&
|
||||
areSamePath(path, ["url"]) &&
|
||||
["saml-post-form.ftl", "error.ftl", "info.ftl", "login-oauth-grant.ftl", "logout-confirm.ftl", "login-oauth2-device-verify-user-code.ftl"]?seq_contains(xKeycloakify.pageId) &&
|
||||
!(auth?has_content && auth.showTryAnotherWayLink())
|
||||
) || (
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/362 -->
|
||||
["secretData", "value"]?seq_contains(key) &&
|
||||
areSamePath(path, [ "totp", "otpCredentials", "*" ])
|
||||
) || (
|
||||
["contextData", "idpConfig", "idp", "authenticationSession"]?seq_contains(key) &&
|
||||
areSamePath(path, ["brokerContext"]) &&
|
||||
["login-idp-link-confirm.ftl", "login-idp-link-email.ftl" ]?seq_contains(xKeycloakify.pageId)
|
||||
) || (
|
||||
key == "identityProviderBrokerCtx" &&
|
||||
areSamePath(path, []) &&
|
||||
["login-idp-link-confirm.ftl", "login-idp-link-email.ftl" ]?seq_contains(xKeycloakify.pageId)
|
||||
) || (
|
||||
["masterAdminClient", "delegateForUpdate", "defaultRole", "smtpConfig"]?seq_contains(key) &&
|
||||
areSamePath(path, ["realm"])
|
||||
) || (
|
||||
xKeycloakify.pageId == "error.ftl" &&
|
||||
areSamePath(path, ["realm"]) &&
|
||||
!["name", "displayName", "displayNameHtml", "internationalizationEnabled", "registrationEmailAsUsername" ]?seq_contains(key)
|
||||
) || (
|
||||
xKeycloakify.pageId == "applications.ftl" &&
|
||||
(
|
||||
key == "realm" ||
|
||||
key == "container"
|
||||
) &&
|
||||
isSubpath(path, ["applications", "applications"])
|
||||
) || (
|
||||
key == "delegateForUpdate" &&
|
||||
areSamePath(path, ["user"])
|
||||
) || (
|
||||
<#-- Security audit forwarded by Garth (Gmail) -->
|
||||
key == "saml.signing.private.key" &&
|
||||
areSamePath(path, ["client", "attributes"])
|
||||
) || (
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/534 -->
|
||||
key == "password" &&
|
||||
areSamePath(path, ["login"])
|
||||
) || (
|
||||
<#-- Remove realmAttributes added by https://github.com/jcputney/keycloak-theme-additional-info-extension for peace of mind. -->
|
||||
key == "realmAttributes" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
<#-- attributesByName adds a lot of noise to the output and is not needed, we already have profile.attributes -->
|
||||
key == "attributesByName" &&
|
||||
areSamePath(path, ["profile"])
|
||||
) || (
|
||||
<#-- We already have the attributes in profile speedup the rendering by filtering it out from the register object -->
|
||||
(key == "attributes" || key == "attributesByName") &&
|
||||
areSamePath(path, ["register"])
|
||||
) || (
|
||||
areSamePath(path, ["properties"]) &&
|
||||
(
|
||||
key?starts_with("kc") ||
|
||||
key == "locales" ||
|
||||
key == "import" ||
|
||||
key == "parent" ||
|
||||
key == "meta" ||
|
||||
key == "stylesCommon" ||
|
||||
key == "styles" ||
|
||||
key == "accountResourceProvider"
|
||||
)
|
||||
) || (
|
||||
key == "execution" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
key == "entity" &&
|
||||
areSamePath(path, ["user"])
|
||||
) || (
|
||||
key == "attributes" &&
|
||||
areSamePath(path, ["realm"])
|
||||
) || (
|
||||
xKeycloakify.pageId == "index.ftl" &&
|
||||
xKeycloakify.themeType == "account" &&
|
||||
areSamePath(path, ["realm"]) &&
|
||||
![
|
||||
"name",
|
||||
"registrationEmailAsUsername",
|
||||
"editUsernameAllowed",
|
||||
"isInternationalizationEnabled",
|
||||
"identityFederationEnabled",
|
||||
"userManagedAccessAllowed"
|
||||
]?seq_contains(key)
|
||||
) || (
|
||||
["flowContext", "session", "realm"]?seq_contains(key) &&
|
||||
areSamePath(path, ["social"])
|
||||
)
|
||||
>
|
||||
<#-- <#local outSeq += ["/*" + path?join(".") + "." + key + " excluded*/"]> -->
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#-- https://github.com/keycloakify/keycloakify/discussions/406 -->
|
||||
<#if (
|
||||
key == "attemptedUsername" &&
|
||||
areSamePath(path, ["auth"]) &&
|
||||
[
|
||||
"register.ftl", "terms.ftl", "info.ftl", "login.ftl",
|
||||
"login-update-password.ftl", "login-oauth2-device-verify-user-code.ftl"
|
||||
]?seq_contains(xKeycloakify.pageId)
|
||||
)>
|
||||
<#attempt>
|
||||
<#-- https://github.com/keycloak/keycloak/blob/3a2bf0c04bcde185e497aaa32d0bb7ab7520cf4a/themes/src/main/resources/theme/base/login/template.ftl#L63 -->
|
||||
<#if !(auth?has_content && auth.showUsername() && !auth.showResetCredentials())>
|
||||
<#local outSeq += ["/*" + path?join(".") + "." + key + " excluded*/"]>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Accessing attemptedUsername throwed an exception */"]>
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
|
||||
|
||||
<#attempt>
|
||||
<#if !object[key]??>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Couldn't test if '" + key + "' is available on this object*/"]>
|
||||
<#continue>
|
||||
</#attempt>
|
||||
|
||||
<#local propertyValue = -1>
|
||||
|
||||
<#attempt>
|
||||
<#local propertyValue = object[key]>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Couldn't dereference '" + key + "' on this object*/"]>
|
||||
<#continue>
|
||||
</#attempt>
|
||||
|
||||
<#local recOut = toJsDeclarationString(propertyValue, path + [ key ])>
|
||||
|
||||
<#if recOut?starts_with("ABORT:")>
|
||||
|
||||
<#local errorMessage = recOut?remove_beginning("ABORT:")>
|
||||
|
||||
<#if errorMessage != " It's a method" >
|
||||
<#local outSeq += ["/*" + key + ": " + errorMessage + "*/"]>
|
||||
</#if>
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local outSeq += ['"' + key + '": ' + recOut + ","]>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return (["{"] + outSeq?map(str -> ""?right_pad(4 * (path?size + 1)) + str) + [ ""?right_pad(4 * path?size) + "}"])?join("\n")>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local isMethod = -1>
|
||||
<#attempt>
|
||||
<#local isMethod = object?is_method>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it'sa method.">
|
||||
</#attempt>
|
||||
|
||||
<#if isMethod>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showUsername"])>
|
||||
<#attempt>
|
||||
<#return auth.showUsername()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showUsername()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showResetCredentials"])>
|
||||
<#attempt>
|
||||
<#return auth.showResetCredentials()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showResetCredentials()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showTryAnotherWayLink"])>
|
||||
<#attempt>
|
||||
<#return auth.showTryAnotherWayLink()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showTryAnotherWayLink()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["url", "getLogoutUrl"])>
|
||||
<#local returnValue = -1>
|
||||
<#attempt>
|
||||
<#local returnValue = url.getLogoutUrl()>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate url.getLogoutUrl()">
|
||||
</#attempt>
|
||||
<#return 'function(){ return "' + returnValue + '"; }'>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["totp", "policy", "getAlgorithmKey"])>
|
||||
<#local returnValue = "error">
|
||||
<#if mode?? && mode = "manual">
|
||||
<#attempt>
|
||||
<#local returnValue = totp.policy.getAlgorithmKey()>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate totp.policy.getAlgorithmKey()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
<#return 'function(){ return "' + returnValue + '"; }'>
|
||||
</#if>
|
||||
|
||||
<#assign fieldNames = ["firstName", "lastName", "email", "username", "password", "password-confirm", "global", "totp", "userLabel", "recoveryCodeInput", "termsAccepted"]>
|
||||
<#if profile?? && profile.attributes??>
|
||||
<#list profile.attributes as attribute>
|
||||
<#if fieldNames?seq_contains(attribute.name)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#assign fieldNames += [attribute.name]>
|
||||
</#list>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["messagesPerField", "get"])>
|
||||
|
||||
<#local jsFunctionCode = "function (fieldName) { ">
|
||||
|
||||
<#list fieldNames as fieldName>
|
||||
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/217 -->
|
||||
<#if xKeycloakify.pageId == "login.ftl" >
|
||||
|
||||
<#if fieldName == "username">
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === 'username' || fieldName === 'password' ){ ">
|
||||
|
||||
<#if messagesPerField.exists('username') || messagesPerField.exists('password')>
|
||||
<#local jsFunctionCode += "return kcContext.message && kcContext.message.summary ? kcContext.message.summary : 'error'; ">
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return ''; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if fieldName == "password">
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === '" + fieldName + "'){ ">
|
||||
|
||||
<#if messagesPerField.exists('${fieldName}')>
|
||||
<#local jsFunctionCode += 'return decodeHtmlEntities("' + messagesPerField.get('${fieldName}')?js_string + '"); '>
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return ''; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
</#list>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
<#return jsFunctionCode>
|
||||
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["messagesPerField", "existsError"])>
|
||||
|
||||
<#local jsFunctionCode = "function (fieldName) { ">
|
||||
|
||||
<#list fieldNames as fieldName>
|
||||
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/217 -->
|
||||
<#if xKeycloakify.pageId == "login.ftl" >
|
||||
<#if fieldName == "username">
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === 'username' || fieldName === 'password' ){ ">
|
||||
|
||||
<#if messagesPerField.existsError('username') || messagesPerField.existsError('password')>
|
||||
<#local jsFunctionCode += "return true; ">
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return false; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if fieldName == "password">
|
||||
<#continue>
|
||||
</#if>
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === '" + fieldName + "' ){ ">
|
||||
|
||||
<#if messagesPerField.existsError('${fieldName}')>
|
||||
<#local jsFunctionCode += 'return true; '>
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return false; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
</#list>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
<#return jsFunctionCode>
|
||||
|
||||
</#if>
|
||||
|
||||
<#if xKeycloakify.themeType == "account" && areSamePath(path, ["realm", "isInternationalizationEnabled"])>
|
||||
<#attempt>
|
||||
<#return realm.isInternationalizationEnabled()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate realm.isInternationalizationEnabled()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#return "ABORT: It's a method">
|
||||
</#if>
|
||||
|
||||
<#local isBoolean = -1>
|
||||
<#attempt>
|
||||
<#local isBoolean = object?is_boolean>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a boolean">
|
||||
</#attempt>
|
||||
|
||||
<#if isBoolean>
|
||||
<#return object?c>
|
||||
</#if>
|
||||
|
||||
<#local isEnumerable = -1>
|
||||
<#attempt>
|
||||
<#local isEnumerable = object?is_enumerable>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's an enumerable">
|
||||
</#attempt>
|
||||
|
||||
|
||||
<#if isEnumerable>
|
||||
|
||||
<#local outSeq = []>
|
||||
|
||||
<#local i = 0>
|
||||
|
||||
<#list object as array_item>
|
||||
|
||||
<#if !array_item??>
|
||||
<#local outSeq += ["null,"]>
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local recOut = toJsDeclarationString(array_item, path + [ i ])>
|
||||
|
||||
<#local i = i + 1>
|
||||
|
||||
<#if recOut?starts_with("ABORT:")>
|
||||
|
||||
<#local errorMessage = recOut?remove_beginning("ABORT:")>
|
||||
|
||||
<#if errorMessage != " It's a method" >
|
||||
<#local outSeq += ["/*" + i?string + ": " + errorMessage + "*/"]>
|
||||
</#if>
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local outSeq += [recOut + ","]>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return (["["] + outSeq?map(str -> ""?right_pad(4 * (path?size + 1)) + str) + [ ""?right_pad(4 * path?size) + "]"])?join("\n")>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local isDate = -1>
|
||||
<#attempt>
|
||||
<#local isDate = object?is_date_like>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a date">
|
||||
</#attempt>
|
||||
|
||||
<#if isDate>
|
||||
<#return '"' + object?datetime?iso_utc + '"'>
|
||||
</#if>
|
||||
|
||||
<#local isNumber = -1>
|
||||
<#attempt>
|
||||
<#local isNumber = object?is_number>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a number">
|
||||
</#attempt>
|
||||
|
||||
<#if isNumber>
|
||||
<#return object?c>
|
||||
</#if>
|
||||
|
||||
<#local isString = -1>
|
||||
<#attempt>
|
||||
<#local isString = object?is_string>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a string">
|
||||
</#attempt>
|
||||
|
||||
<#if isString>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str=object />
|
||||
</#if>
|
||||
|
||||
<#attempt>
|
||||
<#return '"' + object?js_string + '"'>;
|
||||
<#recover>
|
||||
</#attempt>
|
||||
|
||||
<#return "ABORT: Couldn't convert into string non hash, non method, non boolean, non number, non enumerable object">
|
||||
|
||||
</#function>
|
||||
<#function isSubpath path searchedPath>
|
||||
|
||||
<#if path?size < searchedPath?size>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#local i=0>
|
||||
|
||||
<#list path as property>
|
||||
|
||||
<#if i == searchedPath?size >
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local searchedProperty=searchedPath[i]>
|
||||
|
||||
<#local i+= 1>
|
||||
|
||||
<#if searchedProperty?is_string && searchedProperty == "*">
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?is_string && !property?is_string>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?is_number && !property?is_number>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?string != property?string>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return true>
|
||||
|
||||
</#function>
|
||||
|
||||
<#function areSamePath path searchedPath>
|
||||
<#return path?size == searchedPath?size && isSubpath(path, searchedPath)>
|
||||
</#function>
|
||||
|
||||
<#macro addToXKeycloakifyMessagesIfMessageKey str>
|
||||
<#if !msg?? || !msg?is_method>
|
||||
<#return>
|
||||
</#if>
|
||||
<#if (str?length > 200)>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local key=removeBrackets(str)>
|
||||
<#if key?length==0>
|
||||
<#return>
|
||||
</#if>
|
||||
<#if !(key?matches(r"^[a-zA-Z0-9-_.]*$"))>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local resolvedMsg=msg(key)>
|
||||
<#if resolvedMsg==key>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local messages=xKeycloakify.messages>
|
||||
<#local messages = messages + { key: resolvedMsg }>
|
||||
<#assign xKeycloakify = xKeycloakify + { "messages": messages }>
|
||||
</#macro>
|
||||
|
||||
<#function removeBrackets str>
|
||||
<#if str?starts_with("${") && str?ends_with("}")>
|
||||
<#return str[2..(str?length-2)]>
|
||||
<#else>
|
||||
<#return str>
|
||||
</#if>
|
||||
</#function>
|
||||
|
||||
<#macro addNonAutomaticallyGatherableMessagesToXKeycloakifyMessages>
|
||||
<#if profile?? && profile?is_hash && profile.attributes?? && profile.attributes?is_enumerable>
|
||||
<#list profile.attributes as attribute>
|
||||
<#if !(
|
||||
attribute.annotations?? && attribute.annotations?is_hash &&
|
||||
attribute.annotations.inputOptionLabelsI18nPrefix?? && attribute.annotations.inputOptionLabelsI18nPrefix?is_string
|
||||
)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#local prefix=attribute.annotations.inputOptionLabelsI18nPrefix>
|
||||
<#if !(
|
||||
attribute.validators?? && attribute.validators?is_hash &&
|
||||
attribute.validators.options?? && attribute.validators.options?is_hash &&
|
||||
attribute.validators.options.options?? && attribute.validators.options.options?is_enumerable
|
||||
)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#list attribute.validators.options.options as option>
|
||||
<#if !option?is_string>
|
||||
<#continue>
|
||||
</#if>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="${prefix}.${option}" />
|
||||
</#list>
|
||||
</#list>
|
||||
</#if>
|
||||
<#if xKeycloakify.pageId == "terms.ftl" || termsAcceptanceRequired?? && termsAcceptanceRequired>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="termsText" />
|
||||
</#if>
|
||||
<#if requiredActions?? && requiredActions?is_enumerable>
|
||||
<#list requiredActions as requiredAction>
|
||||
<#if !requiredAction?is_string>
|
||||
<#continue>
|
||||
</#if>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="requiredAction.${requiredAction}" />
|
||||
</#list>
|
||||
</#if>
|
||||
</#macro>
|
||||
|
||||
</script>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="${xKeycloakify.resourcesPath}/dist/favicon-32x32.png">
|
||||
<script type="module" crossorigin="" src="${xKeycloakify.resourcesPath}/dist/assets/index-6-NnS-wp.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="root"></div>
|
||||
|
||||
|
||||
</body></html>
|
@ -0,0 +1,445 @@
|
||||
|
||||
doLogIn=\u062a\u0633\u062c\u064a\u0644 \u062f\u062e\u0648\u0644
|
||||
doRegister=\u062a\u0633\u062c\u064a\u0644 \u062c\u062f\u064a\u062f
|
||||
doRegisterSecurityKey=\u062a\u0633\u062c\u064a\u0644 \u062c\u062f\u064a\u062f
|
||||
doCancel=\u0625\u0644\u063a\u0627\u0621
|
||||
doSubmit=\u0625\u0631\u0633\u0627\u0644
|
||||
doBack=\u0631\u062c\u0648\u0639
|
||||
doYes=\u0646\u0639\u0645
|
||||
doNo=\u0644\u0627
|
||||
doContinue=\u0627\u0633\u062a\u0645\u0631\u0627\u0631
|
||||
doIgnore=\u062a\u062c\u0627\u0647\u0644
|
||||
doAccept=\u0645\u0648\u0627\u0641\u0642\u0629
|
||||
doDecline=\u0631\u0641\u0636
|
||||
doForgotPassword=\u0646\u0633\u064a\u062a \u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631\u061f
|
||||
doClickHere=\u0627\u0646\u0642\u0631 \u0647\u0646\u0627
|
||||
doImpersonate=\u0627\u0646\u062a\u062d\u0627\u0644 \u0634\u062e\u0635\u064a\u0629
|
||||
doTryAgain=\u0627\u0644\u0645\u062d\u0627\u0648\u0644\u0629 \u0645\u0631\u0629 \u0623\u062e\u0631\u0649
|
||||
doTryAnotherWay=\u0627\u0644\u0645\u062c\u0627\u0648\u0644\u0629 \u0628\u0637\u0631\u064a\u0642\u0629 \u0623\u062e\u0631\u0649
|
||||
doConfirmDelete=\u062a\u0623\u0643\u064a\u062f \u0627\u0644\u062d\u0630\u0641
|
||||
errorDeletingAccount=\u062d\u062f\u062b \u062e\u0637\u0623 \u0623\u062b\u0646\u0627\u0621 \u062d\u0630\u0641 \u0627\u0644\u062d\u0633\u0627\u0628
|
||||
deletingAccountForbidden=\u0644\u064a\u0633 \u0644\u062f\u064a\u0643 \u0627\u0644\u0635\u0644\u0627\u062d\u064a\u0629 \u0627\u0644\u0643\u0627\u0641\u064a\u0629 \u0644\u062d\u0630\u0641 \u062d\u0633\u0627\u0628\u0643\u060c \u0642\u0645 \u0628\u0627\u0644\u062a\u0648\u0627\u0635\u0644 \u0645\u0639 \u0645\u0633\u0624\u0648\u0644 \u0627\u0644\u0646\u0638\u0627\u0645.
|
||||
kerberosNotConfigured=\u0644\u0645 \u064a\u062a\u0645 \u062a\u0647\u064a\u0626\u0629 \u0627\u0644\u0628\u0631\u0648\u062a\u0648\u0643\u0648\u0644 Kerberos
|
||||
kerberosNotConfiguredTitle=\u0644\u0645 \u064a\u062a\u0645 \u062a\u0647\u064a\u0626\u0629 \u0627\u0644\u0628\u0631\u0648\u062a\u0648\u0643\u0648\u0644 Kerberos
|
||||
bypassKerberosDetail=\u0625\u0645\u0627 \u0623\u0646\u0643 \u0644\u0645 \u062a\u0642\u0645 \u0628\u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u062f\u062e\u0648\u0644 \u0628\u0648\u0627\u0633\u0637\u0629 \u0627\u0644\u0628\u0631\u0648\u062a\u0648\u0643\u0648\u0644 Kerberos \u0623\u0648 \u0623\u0646 \u0645\u062a\u0635\u0641\u062d\u0643 \u0644\u0645 \u064a\u062a\u0645 \u0625\u0639\u062f\u0627\u062f\u0647 \u0644\u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u062f\u062e\u0648\u0644 \u0628\u0648\u0627\u0633\u0637\u0629 \u0627\u0644\u0628\u0631\u0648\u062a\u0648\u0643\u0648\u0644 Kerberos. \u0627\u0644\u0631\u062c\u0627\u0621 \u0627\u0644\u0646\u0642\u0631 \u0639\u0644\u0649 \u0632\u0631 \u0627\u0633\u062a\u0645\u0631\u0627\u0631 \u0644\u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u062f\u062e\u0648\u0644 \u0645\u0646 \u062e\u0644\u0627\u0644 \u0648\u0633\u0627\u0626\u0644 \u0623\u062e\u0631\u0649
|
||||
kerberosNotSetUp=\u0644\u0645 \u064a\u062a\u0645 \u062a\u0647\u064a\u0626\u0629 \u0627\u0644\u0628\u0631\u0648\u062a\u0648\u0643\u0648\u0644 Kerberos. \u0644\u0627 \u064a\u0645\u0643\u0646\u0643 \u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u062f\u062e\u0648\u0644.
|
||||
registerTitle=\u062a\u0633\u062c\u064a\u0644
|
||||
loginAccountTitle=\u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u062f\u062e\u0648\u0644 \u0625\u0644\u0649 \u062d\u0633\u0627\u0628\u0643
|
||||
loginTitle=\u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u062f\u062e\u0648\u0644 \u0625\u0644\u0649 {0}
|
||||
loginTitleHtml={0}
|
||||
impersonateTitle={0} \u0627\u0646\u062a\u062d\u0627\u0644 \u0634\u062e\u0635\u064a\u0629 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645
|
||||
impersonateTitleHtml=<strong>{0}</strong> \u0627\u0646\u062a\u062d\u0627\u0644 \u0634\u062e\u0635\u064a\u0629 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645
|
||||
realmChoice=\u0627\u0644\u0645\u0646\u0638\u0648\u0645\u0629
|
||||
unknownUser=\u0645\u0633\u062a\u062e\u062f\u0645 \u063a\u064a\u0631 \u0645\u0639\u0631\u0648\u0641
|
||||
loginTotpTitle=\u0625\u0639\u062f\u0627\u062f \u062a\u0637\u0628\u064a\u0642 \u0647\u0627\u062a\u0641 \u0645\u0635\u0627\u062f\u0642
|
||||
loginProfileTitle=\u062a\u062d\u062f\u064a\u062b \u0645\u0639\u0644\u0648\u0645\u0627\u062a \u0627\u0644\u062d\u0633\u0627\u0628
|
||||
loginIdpReviewProfileTitle=\u062a\u062d\u062f\u064a\u062b \u0645\u0639\u0644\u0648\u0645\u0627\u062a \u0627\u0644\u062d\u0633\u0627\u0628
|
||||
loginTimeout=\u0627\u0646\u062a\u0647\u062a \u0645\u0647\u0644\u0629 \u0645\u062d\u0627\u0648\u0644\u0629 \u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u062f\u062e\u0648\u0644. \u0633\u064a\u062a\u0645 \u0627\u0644\u0628\u062f\u0621 \u0641\u064a \u0639\u0645\u0644\u064a\u0629 \u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u062f\u062e\u0648\u0644 \u0645\u0646 \u062c\u062f\u064a\u062f.
|
||||
reauthenticate=\u064a\u0631\u062c\u0649 \u0625\u0639\u0627\u062f\u0629 \u0627\u0644\u0645\u0635\u0627\u062f\u0642\u0629 \u0644\u0644\u0645\u062a\u0627\u0628\u0639\u0629
|
||||
oauthGrantTitle=\u0645\u0646\u062d \u0635\u0644\u0627\u062d\u064a\u0629 \u0627\u0644\u0648\u0635\u0648\u0644 \u0625\u0644\u0649 {0}
|
||||
oauthGrantTitleHtml={0}
|
||||
oauthGrantInformation=\u062a\u0623\u0643\u062f \u0645\u0646 \u0623\u0646\u0643 \u062a\u062b\u0642 \u0641\u064a {0} \u0645\u0646 \u062e\u0644\u0627\u0644 \u0645\u0639\u0631\u0641\u0629 \u0643\u064a\u0641 \u0633\u064a\u062a\u0639\u0627\u0645\u0644 {0} \u0645\u0639 \u0628\u064a\u0627\u0646\u0627\u062a\u0643.
|
||||
oauthGrantReview=\u064a\u0645\u0643\u0646\u0643 \u0645\u0631\u0627\u062c\u0639\u0629
|
||||
oauthGrantTos=\u0628\u0646\u0648\u062f \u0627\u0644\u062e\u062f\u0645\u0629.
|
||||
oauthGrantPolicy=\u0633\u064a\u0627\u0633\u0629 \u0627\u0644\u062e\u0635\u0648\u0635\u064a\u0629.
|
||||
errorTitle=\u0646\u0639\u062a\u0630\u0631...
|
||||
errorTitleHtml=<strong>\u0646\u0639\u062a\u0630\u0631</strong> ...
|
||||
emailVerifyTitle=\u0627\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 \u0627\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a
|
||||
emailForgotTitle=\u0646\u0633\u064a\u062a \u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631\u061f
|
||||
updateEmailTitle=\u062a\u062d\u062f\u064a\u062b \u0627\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a
|
||||
emailUpdateConfirmationSentTitle=\u062a\u0645 \u0625\u0631\u0633\u0627\u0644 \u0631\u0633\u0627\u0644\u0629 \u0627\u0644\u062a\u062d\u0642\u0642 \u0639\u0628\u0631 \u0627\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a
|
||||
emailUpdateConfirmationSent=\u062a\u0645 \u0625\u0631\u0633\u0627\u0644 \u0631\u0633\u0627\u0644\u0629 \u0627\u0644\u062a\u062d\u0642\u0642 \u0639\u0628\u0631 \u0627\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a \u0625\u0644\u0649 {0}. \u064a\u062c\u0628 \u0639\u0644\u064a\u0643 \u0627\u062a\u0628\u0627\u0639 \u0627\u0644\u062a\u0639\u0644\u064a\u0645\u0627\u062a \u0644\u0625\u0643\u0645\u0627\u0644 \u062a\u062d\u062f\u064a\u062b \u0627\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a.
|
||||
emailUpdatedTitle=\u062a\u0645 \u062a\u062d\u062f\u064a\u062b \u0627\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a
|
||||
emailUpdated=\u062a\u0645 \u062a\u062d\u062f\u064a\u062b \u0627\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a \u0627\u0644\u062e\u0627\u0635 \u0628\u0627\u0644\u062d\u0633\u0627\u0628 \u0625\u0644\u0649 {0}.
|
||||
updatePasswordTitle=\u062a\u0645 \u062a\u062d\u062f\u064a\u062b \u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631
|
||||
codeSuccessTitle=\u0631\u0645\u0632 \u0627\u0644\u0646\u062c\u0627\u062d
|
||||
codeErrorTitle=\u0631\u0645\u0632 \u0627\u0644\u062e\u0637\u0623\: {0}
|
||||
displayUnsupported=\u0646\u0648\u0639 \u0627\u0644\u0639\u0631\u0636 \u0627\u0644\u0645\u0637\u0644\u0648\u0628 \u063a\u064a\u0631 \u0645\u062f\u0639\u0648\u0645
|
||||
browserRequired=\u0627\u0644\u0645\u062a\u0635\u0641\u062d \u0645\u0637\u0644\u0648\u0628 \u0644\u0639\u0645\u0644\u064a\u0629 \u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u062f\u062e\u0648\u0644
|
||||
browserContinue=\u0627\u0644\u0645\u062a\u0635\u0641\u062d \u0645\u0637\u0644\u0648\u0628 \u0644\u0625\u0643\u0645\u0627\u0644 \u0639\u0645\u0644\u064a\u0629 \u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u062f\u062e\u0648\u0644
|
||||
browserContinuePrompt=\u0641\u062a\u062d \u0627\u0644\u0645\u062a\u0635\u0641\u062d \u0644\u0625\u0643\u0645\u0627\u0644 \u0639\u0645\u0644\u064a\u0629 \u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u062f\u062e\u0648\u0644\u061f [\u0646/\u0644]\:
|
||||
browserContinueAnswer=\u0646
|
||||
usb=\u0645\u0646\u0641\u0630 USB
|
||||
nfc=\u0642\u0627\u0631\u0626 \u0628\u0637\u0627\u0642\u0629 NFC
|
||||
bluetooth=\u0628\u0644\u0648\u062a\u0648\u062b
|
||||
internal=\u062f\u0627\u062e\u0644\u064a
|
||||
unknown=\u063a\u064a\u0631 \u0645\u0639\u0631\u0648\u0641
|
||||
termsTitle=\u0627\u0644\u0634\u0631\u0648\u0637 \u0648\u0627\u0644\u0623\u062d\u0643\u0627\u0645
|
||||
termsText=
|
||||
termsPlainText=\u064a\u062c\u0628 \u062a\u062d\u062f\u064a\u062f \u0627\u0644\u0634\u0631\u0648\u0637 \u0648\u0627\u0644\u0623\u062d\u0643\u0627\u0645.
|
||||
termsAcceptanceRequired=\u064a\u062c\u0628 \u0627\u0644\u0645\u0648\u0627\u0641\u0642\u0629 \u0639\u0644\u0649 \u0627\u0644\u0634\u0631\u0648\u0637 \u0648\u0627\u0644\u0623\u062d\u0643\u0627\u0645.
|
||||
acceptTerms=\u0623\u0648\u0627\u0641\u0642 \u0639\u0644\u0649 \u0627\u0644\u0634\u0631\u0648\u0637 \u0648\u0627\u0644\u0623\u062d\u0643\u0627\u0645
|
||||
recaptchaFailed=\u0641\u0634\u0644 \u0641\u064a \u0627\u062e\u062a\u0628\u0627\u0631 Recaptcha
|
||||
recaptchaNotConfigured=\u0645\u0637\u0644\u0648\u0628 \u0627\u062e\u062a\u0628\u0627\u0631 Recaptcha\u060c \u0648\u0644\u0643\u0646 \u0644\u0645 \u064a\u062a\u0645 \u062a\u0643\u0648\u064a\u0646\u0647
|
||||
consentDenied=\u062a\u0645 \u0631\u0641\u0636 \u0627\u0644\u0645\u0648\u0627\u0641\u0642\u0629.
|
||||
noAccount=\u0645\u0633\u062a\u062e\u062f\u0645 \u062c\u062f\u064a\u062f\u061f
|
||||
username=\u0627\u0633\u0645 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645
|
||||
usernameOrEmail=\u0627\u0633\u0645 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645 \u0623\u0648 \u0627\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a
|
||||
firstName=\u0627\u0644\u0627\u0633\u0645 \u0627\u0644\u0623\u0648\u0644
|
||||
givenName=\u0627\u0644\u0627\u0633\u0645 \u0627\u0644\u0623\u0648\u0644
|
||||
fullName=\u0627\u0644\u0627\u0633\u0645 \u0627\u0644\u0643\u0627\u0645\u0644
|
||||
lastName=\u0627\u0644\u0627\u0633\u0645 \u0627\u0644\u0623\u062e\u064a\u0631
|
||||
familyName=\u0627\u0633\u0645 \u0627\u0644\u0639\u0627\u0626\u0644\u0629
|
||||
email=\u0627\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a
|
||||
password=\u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631
|
||||
passwordConfirm=\u062a\u0623\u0643\u064a\u062f \u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631
|
||||
passwordNew=\u0643\u0644\u0645\u0629 \u0645\u0631\u0648\u0631 \u062c\u062f\u064a\u062f\u0629
|
||||
passwordNewConfirm=\u062a\u0623\u0643\u064a\u062f \u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631 \u0627\u0644\u062c\u062f\u064a\u062f\u0629
|
||||
hidePassword=\u0625\u062e\u0641\u0627\u0621 \u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631
|
||||
showPassword=\u0625\u0638\u0647\u0627\u0631 \u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631
|
||||
rememberMe=\u062a\u0630\u0643\u0631\u0646\u064a
|
||||
authenticatorCode=\u0631\u0645\u0632 \u0644\u0645\u0631\u0629 \u0648\u0627\u062d\u062f\u0629
|
||||
address=\u0627\u0644\u0639\u0646\u0648\u0627\u0646
|
||||
street=\u0627\u0644\u0634\u0627\u0631\u0639
|
||||
locality=\u0627\u0644\u0645\u062f\u064a\u0646\u0629
|
||||
region=\u0627\u0644\u0648\u0644\u0627\u064a\u0629 \u0623\u0648 \u0627\u0644\u0645\u0646\u0637\u0642\u0629
|
||||
postal_code=\u0627\u0644\u0631\u0645\u0632 \u0627\u0644\u0628\u0631\u064a\u062f\u064a
|
||||
country=\u0627\u0644\u062f\u0648\u0644\u0629
|
||||
emailVerified=\u062a\u0645 \u0627\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 \u0627\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a
|
||||
website=\u0627\u0644\u0645\u0648\u0642\u0639 \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a
|
||||
phoneNumber=\u0631\u0642\u0645 \u0627\u0644\u0647\u0627\u062a\u0641
|
||||
phoneNumberVerified=\u062a\u0645 \u0627\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 \u0631\u0642\u0645 \u0627\u0644\u0647\u0627\u062a\u0641
|
||||
gender=\u0627\u0644\u062c\u0646\u0633
|
||||
birthday=\u062a\u0627\u0631\u064a\u062e \u0627\u0644\u0645\u064a\u0644\u0627\u062f
|
||||
zoneinfo=\u0627\u0644\u062a\u0648\u0642\u064a\u062a
|
||||
gssDelegationCredential=\u062a\u0641\u0648\u064a\u0636 \u0627\u0644\u0627\u0639\u062a\u0645\u0627\u062f GSS
|
||||
logoutOtherSessions=\u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u062e\u0631\u0648\u062c \u0645\u0646 \u0627\u0644\u0623\u062c\u0647\u0632\u0629 \u0627\u0644\u0623\u062e\u0631\u0649
|
||||
profileScopeConsentText=\u0645\u0644\u0641 \u062a\u0639\u0631\u064a\u0641\u064a \u0644\u0644\u0645\u0633\u062a\u062e\u062f\u0645
|
||||
emailScopeConsentText=\u0627\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a
|
||||
addressScopeConsentText=\u0627\u0644\u0639\u0646\u0648\u0627\u0646
|
||||
phoneScopeConsentText=\u0631\u0642\u0645 \u0627\u0644\u0647\u0627\u062a\u0641
|
||||
offlineAccessScopeConsentText=\u0627\u0644\u0648\u0635\u0648\u0644 \u062f\u0648\u0646 \u0627\u062a\u0635\u0627\u0644
|
||||
samlRoleListScopeConsentText=\u0627\u0644\u0623\u062f\u0648\u0627\u0631 \u0627\u0644\u062e\u0627\u0635\u0629 \u0628\u064a
|
||||
rolesScopeConsentText=\u0623\u062f\u0648\u0627\u0631 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645
|
||||
restartLoginTooltip=\u0625\u0639\u0627\u062f\u0629 \u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u062f\u062e\u0648\u0644
|
||||
loginTotpIntro=\u062a\u062d\u062a\u0627\u062c \u0625\u0644\u0649 \u0625\u0639\u062f\u0627\u062f \u0645\u0648\u0644\u0651\u062f \u0643\u0644\u0645\u0629 \u0645\u0631\u0648\u0631 \u0644\u0645\u0631\u0629 \u0648\u0627\u062d\u062f\u0629 \u0644\u0644\u0648\u0635\u0648\u0644 \u0625\u0644\u0649 \u0647\u0630\u0627 \u0627\u0644\u062d\u0633\u0627\u0628
|
||||
loginTotpStep1=\u0642\u0645 \u0628\u062a\u062b\u0628\u064a\u062a \u0625\u062d\u062f\u0649 \u0627\u0644\u062a\u0637\u0628\u064a\u0642\u0627\u062a \u0627\u0644\u062a\u0627\u0644\u064a\u0629 \u0639\u0644\u0649 \u0647\u0627\u062a\u0641\u0643 \u0627\u0644\u0645\u062a\u0646\u0642\u0644\:
|
||||
loginTotpStep2=\u0627\u0641\u062a\u062d \u0627\u0644\u062a\u0637\u0628\u064a\u0642 \u062b\u0645 \u0627\u0645\u0633\u062d \u0631\u0645\u0632 \u0627\u0644\u0627\u0633\u062a\u062c\u0627\u0628\u0629 \u0627\u0644\u0633\u0631\u064a\u0639\u0629\:
|
||||
loginTotpStep3=\u0623\u062f\u062e\u0644 \u0631\u0645\u0632 \u0627\u0644\u062a\u062d\u0642\u0642 \u0630\u0627\u062a \u0627\u0644\u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u0627\u0644\u0648\u0627\u062d\u062f \u0648\u0627\u0644\u0635\u0627\u062f\u0631 \u0645\u0646 \u0627\u0644\u062a\u0637\u0628\u064a\u0642 \u062b\u0645 \u0627\u0646\u0642\u0631 \u0639\u0644\u0649 \u0632\u0631 \u0627\u0644\u062d\u0641\u0638 \u0644\u0625\u062a\u0645\u0627\u0645 \u0627\u0644\u0625\u0639\u062f\u0627\u062f.
|
||||
loginTotpStep3DeviceName=\u0636\u0639 \u0627\u0633\u0645\u064b\u0627 \u0644\u0644\u062c\u0647\u0627\u0632 \u062d\u062a\u0649 \u064a\u0633\u0647\u0644 \u0639\u0644\u064a\u0643 \u0625\u062f\u0627\u0631\u0629 \u0623\u062c\u0647\u0632\u0629 \u0627\u0644\u0645\u0635\u0627\u062f\u0642\u0629.
|
||||
loginTotpManualStep2=\u0627\u0641\u062a\u062d \u0627\u0644\u062a\u0637\u0628\u064a\u0642 \u062b\u0645 \u0623\u062f\u062e\u0644 \u0627\u0644\u0645\u0641\u062a\u0627\u062d\:
|
||||
loginTotpManualStep3=\u0627\u0633\u062a\u062e\u062f\u0645 \u0642\u064a\u0645 \u0627\u0644\u062a\u0643\u0648\u064a\u0646 \u0627\u0644\u062a\u0627\u0644\u064a\u0629 \u0625\u0630\u0627 \u0633\u0645\u062d \u0627\u0644\u062a\u0637\u0628\u064a\u0642 \u0628\u062a\u0639\u064a\u064a\u0646\u0647\u0627\:
|
||||
loginTotpUnableToScan=\u063a\u064a\u0631 \u0642\u0627\u062f\u0631 \u0639\u0644\u0649 \u0627\u0644\u0645\u0633\u062d\u061f
|
||||
loginTotpScanBarcode=\u0645\u0633\u062d \u0631\u0645\u0632 \u0627\u0644\u0627\u0633\u062a\u062c\u0627\u0628\u0629 \u0627\u0644\u0633\u0631\u064a\u0639\u0629\u061f
|
||||
loginCredential=\u0628\u064a\u0627\u0646\u0627\u062a \u0627\u0644\u062f\u062e\u0648\u0644
|
||||
loginOtpOneTime=\u0631\u0645\u0632 \u0644\u0645\u0631\u0629 \u0648\u0627\u062d\u062f\u0629
|
||||
loginTotpType=\u0627\u0644\u0646\u0648\u0639
|
||||
loginTotpAlgorithm=\u0627\u0644\u062e\u0648\u0627\u0631\u0632\u0645\u064a\u0629
|
||||
loginTotpDigits=\u0639\u062f\u062f \u0627\u0644\u062e\u0627\u0646\u0627\u062a
|
||||
loginTotpInterval=\u0627\u0644\u0645\u062f\u0629 \u0627\u0644\u0632\u0645\u0646\u064a\u0629
|
||||
loginTotpCounter=\u0627\u0644\u0639\u062f\u0627\u062f
|
||||
loginTotpDeviceName=\u0627\u0633\u0645 \u0627\u0644\u062c\u0647\u0627\u0632
|
||||
loginTotp.totp=\u0639\u0644\u0649 \u0623\u0633\u0627\u0633 \u0627\u0644\u0648\u0642\u062a
|
||||
loginTotp.hotp=\u0639\u0644\u0649 \u0623\u0633\u0627\u0633 \u0627\u0644\u0639\u062f\u0627\u062f
|
||||
totpAppFreeOTPName=FreeOTP
|
||||
totpAppGoogleName=Google Authenticator
|
||||
totpAppMicrosoftAuthenticatorName=Microsoft Authenticator
|
||||
loginChooseAuthenticator=\u062d\u062f\u062f \u0637\u0631\u064a\u0642\u0629 \u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u062f\u062e\u0648\u0644
|
||||
oauthGrantRequest=\u0647\u0644 \u062a\u0648\u062f \u0645\u0646\u062d \u0635\u0644\u0627\u062d\u064a\u0629 \u0627\u0644\u0648\u0635\u0648\u0644 \u0647\u0630\u0647\u061f
|
||||
inResource=\u0641\u064a
|
||||
oauth2DeviceVerificationTitle=\u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u062f\u062e\u0648\u0644 \u0639\u0644\u0649 \u0627\u0644\u0623\u062c\u0647\u0632\u0629
|
||||
verifyOAuth2DeviceUserCode=\u0623\u062f\u062e\u0644 \u0627\u0644\u0631\u0645\u0632 \u0627\u0644\u0638\u0627\u0647\u0631 \u0639\u0644\u0649 \u062c\u0647\u0627\u0632\u0643 \u062b\u0645 \u0627\u0646\u0642\u0631 \u0639\u0644\u0649 \u0632\u0631 \u0627\u0644\u0625\u0631\u0633\u0627\u0644
|
||||
oauth2DeviceInvalidUserCodeMessage=\u0631\u0645\u0632 \u063a\u064a\u0631 \u0635\u0627\u0644\u062d\u060c \u064a\u0631\u062c\u0649 \u0627\u0644\u0645\u062d\u0627\u0648\u0644\u0629 \u0645\u0631\u0629 \u0623\u062e\u0631\u0649.
|
||||
oauth2DeviceExpiredUserCodeMessage=\u0627\u0646\u062a\u0647\u062a \u0635\u0644\u0627\u062d\u064a\u0629 \u0627\u0644\u0631\u0645\u0632. \u064a\u0631\u062c\u0649 \u0627\u0644\u0639\u0648\u062f\u0629 \u0625\u0644\u0649 \u062c\u0647\u0627\u0632\u0643 \u062b\u0645 \u0645\u062d\u0627\u0648\u0644\u0629 \u0627\u0644\u0627\u062a\u0635\u0627\u0644 \u0645\u0631\u0629 \u0623\u062e\u0631\u0649.
|
||||
oauth2DeviceVerificationCompleteHeader=\u062a\u0645 \u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u062f\u062e\u0648\u0644 \u0639\u0644\u0649 \u0627\u0644\u062c\u0647\u0627\u0632 \u0628\u0646\u062c\u0627\u062d
|
||||
oauth2DeviceVerificationCompleteMessage=\u064a\u0645\u0643\u0646\u0643 \u0625\u063a\u0644\u0627\u0642 \u0646\u0627\u0641\u0630\u0629 \u0627\u0644\u0645\u062a\u0635\u0641\u062d \u0647\u0630\u0647 \u0648\u0627\u0644\u0639\u0648\u062f\u0629 \u0625\u0644\u0649 \u062c\u0647\u0627\u0632\u0643.
|
||||
oauth2DeviceVerificationFailedHeader=\u0641\u0634\u0644 \u0641\u064a \u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u062f\u062e\u0648\u0644 \u0639\u0644\u0649 \u0627\u0644\u062c\u0647\u0627\u0632
|
||||
oauth2DeviceVerificationFailedMessage=\u064a\u0645\u0643\u0646\u0643 \u0625\u063a\u0644\u0627\u0642 \u0646\u0627\u0641\u0630\u0629 \u0627\u0644\u0645\u062a\u0635\u0641\u062d \u0647\u0630\u0647 \u0648\u0627\u0644\u0639\u0648\u062f\u0629 \u0625\u0644\u0649 \u062c\u0647\u0627\u0632\u0643 \u0648\u0645\u062d\u0627\u0648\u0644\u0629 \u0627\u0644\u0627\u062a\u0635\u0627\u0644 \u0645\u0631\u0629 \u0623\u062e\u0631\u0649.
|
||||
oauth2DeviceConsentDeniedMessage=\u062a\u0645 \u0631\u0641\u0636 \u0627\u0644\u0645\u0648\u0627\u0641\u0642\u0629 \u0639\u0644\u0649 \u0627\u0644\u0627\u062a\u0635\u0627\u0644 \u0628\u0627\u0644\u062c\u0647\u0627\u0632.
|
||||
oauth2DeviceAuthorizationGrantDisabledMessage=\u0644\u0627 \u064a\u064f\u0633\u0645\u062d \u0644\u0644\u0639\u0645\u064a\u0644 \u0628\u0628\u062f\u0621 \u0627\u0644\u0625\u062c\u0631\u0627\u0621 OAuth 2.0 Device Authorization Grant\u060c \u062d\u064a\u062b \u0623\u0646\u0647 \u0645\u0639\u0637\u0644.
|
||||
emailVerifyInstruction1=\u062a\u0645 \u0625\u0631\u0633\u0627\u0644 \u0628\u0631\u064a\u062f \u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a \u064a\u062d\u062a\u0648\u064a \u0639\u0644\u0649 \u0625\u0631\u0634\u0627\u062f\u0627\u062a \u0644\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 \u0639\u0646\u0648\u0627\u0646 \u0628\u0631\u064a\u062f\u0643 \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a \u0625\u0644\u0649 \u0639\u0646\u0648\u0627\u0646\u0643 {0}.
|
||||
emailVerifyInstruction2=\u0623\u0644\u0645 \u062a\u0633\u062a\u0644\u0645 \u0631\u0645\u0632 \u0627\u0644\u062a\u062d\u0642\u0642 \u0639\u0644\u0649 \u0628\u0631\u064a\u062f\u0643 \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a\u061f
|
||||
emailVerifyInstruction3=\u0644\u0625\u0639\u0627\u062f\u0629 \u0625\u0631\u0633\u0627\u0644 \u0627\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a.
|
||||
emailLinkIdpTitle=\u0631\u0628\u0637 {0}
|
||||
emailLinkIdp1=\u062a\u0645 \u0625\u0631\u0633\u0627\u0644 \u0631\u0633\u0627\u0644\u0629 \u0628\u0631\u064a\u062f \u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a \u0628\u0647\u0627 \u0625\u0631\u0634\u0627\u062f\u0627\u062a \u0644\u0631\u0628\u0637 \u0627\u0644\u062d\u0633\u0627\u0628 {0} ({1}) \u0628\u0627\u0644\u062d\u0633\u0627\u0628 {2} \u0627\u0644\u062e\u0627\u0635 \u0628\u0643.
|
||||
emailLinkIdp2=\u0623\u0644\u0645 \u062a\u0633\u062a\u0644\u0645 \u0631\u0645\u0632 \u0627\u0644\u062a\u062d\u0642\u0642 \u0639\u0644\u0649 \u0628\u0631\u064a\u062f\u0643 \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a\u061f
|
||||
emailLinkIdp3=\u0644\u0625\u0639\u0627\u062f\u0629 \u0625\u0631\u0633\u0627\u0644 \u0627\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a.
|
||||
emailLinkIdp4=\u0625\u0630\u0627 \u0643\u0646\u062a \u0642\u062f \u062a\u062d\u0642\u0642\u062a \u0628\u0627\u0644\u0641\u0639\u0644 \u0645\u0646 \u0627\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a \u0641\u064a \u0645\u062a\u0635\u0641\u062d \u0645\u062e\u062a\u0644\u0641
|
||||
emailLinkIdp5=\u0644\u0644\u0627\u0633\u062a\u0645\u0631\u0627\u0631.
|
||||
backToLogin=» \u0627\u0644\u0639\u0648\u062f\u0629 \u0625\u0644\u0649 \u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u062f\u062e\u0648\u0644
|
||||
emailInstruction=\u0623\u062f\u062e\u0644 \u0627\u0633\u0645 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645 \u0623\u0648 \u0639\u0646\u0648\u0627\u0646 \u0627\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a \u0627\u0644\u062e\u0627\u0635 \u0628\u0643 \u0648\u0633\u0646\u0631\u0633\u0644 \u0644\u0643 \u062a\u0639\u0644\u064a\u0645\u0627\u062a \u062d\u0648\u0644 \u0643\u064a\u0641\u064a\u0629 \u0625\u0646\u0634\u0627\u0621 \u0643\u0644\u0645\u0629 \u0645\u0631\u0648\u0631 \u062c\u062f\u064a\u062f\u0629.
|
||||
emailInstructionUsername=\u0623\u062f\u062e\u0644 \u0627\u0633\u0645 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645 \u0627\u0644\u062e\u0627\u0635 \u0628\u0643 \u0648\u0633\u0646\u0631\u0633\u0644 \u0644\u0643 \u062a\u0639\u0644\u064a\u0645\u0627\u062a \u062d\u0648\u0644 \u0643\u064a\u0641\u064a\u0629 \u0625\u0646\u0634\u0627\u0621 \u0643\u0644\u0645\u0629 \u0645\u0631\u0648\u0631 \u062c\u062f\u064a\u062f\u0629.
|
||||
copyCodeInstruction=\u064a\u0631\u062c\u0649 \u0646\u0633\u062e \u0647\u0630\u0627 \u0627\u0644\u0631\u0645\u0632 \u0648\u0644\u0635\u0642\u0647 \u0641\u064a \u0627\u0644\u062a\u0637\u0628\u064a\u0642 \u0627\u0644\u062e\u0627\u0635 \u0628\u0643\:
|
||||
pageExpiredTitle=\u0627\u0646\u062a\u0647\u062a \u0635\u0644\u0627\u062d\u064a\u0629 \u0627\u0644\u0635\u0641\u062d\u0629
|
||||
pageExpiredMsg1=\u0644\u0625\u0639\u0627\u062f\u0629 \u0639\u0645\u0644\u064a\u0629 \u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u062f\u062e\u0648\u0644
|
||||
pageExpiredMsg2=\u0644\u0645\u0648\u0627\u0635\u0644\u0629 \u0639\u0645\u0644\u064a\u0629 \u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u062f\u062e\u0648\u0644
|
||||
personalInfo=\u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a \u0627\u0644\u0634\u062e\u0635\u064a\u0629\:
|
||||
role_admin=\u0645\u0633\u0624\u0648\u0644
|
||||
role_realm-admin=\u0645\u0633\u0624\u0648\u0644 \u0645\u0646\u0638\u0648\u0645\u0629
|
||||
role_create-realm=\u0625\u0646\u0634\u0627\u0621 \u0645\u0646\u0638\u0648\u0645\u0629
|
||||
role_create-client=\u0625\u0646\u0634\u0627\u0621 \u0639\u0645\u064a\u0644
|
||||
role_view-realm=\u0639\u0631\u0636 \u0627\u0644\u0645\u0646\u0638\u0648\u0645\u0629
|
||||
role_view-users=\u0639\u0631\u0636 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645\u064a\u0646
|
||||
role_view-applications=\u0639\u0631\u0636 \u0627\u0644\u062a\u0637\u0628\u064a\u0642\u0627\u062a
|
||||
role_view-clients=\u0639\u0631\u0636 \u0627\u0644\u0639\u0645\u0644\u0627\u0621
|
||||
role_view-events=\u0639\u0631\u0636 \u0627\u0644\u0623\u062d\u062f\u0627\u062b
|
||||
role_view-identity-providers=\u0639\u0631\u0636 \u0645\u0632\u0648\u062f\u064a \u0627\u0644\u062d\u0633\u0627\u0628\u0627\u062a
|
||||
role_manage-realm=\u0625\u062f\u0627\u0631\u0629 \u0627\u0644\u0645\u0646\u0638\u0648\u0645\u0629
|
||||
role_manage-users=\u0625\u062f\u0627\u0631\u0629 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645\u064a\u0646
|
||||
role_manage-applications=\u0625\u062f\u0627\u0631\u0629 \u0627\u0644\u062a\u0637\u0628\u064a\u0642\u0627\u062a
|
||||
role_manage-identity-providers=\u0625\u062f\u0627\u0631\u0629 \u0645\u0632\u0648\u062f\u064a \u0627\u0644\u062d\u0633\u0627\u0628\u0627\u062a
|
||||
role_manage-clients=\u0625\u062f\u0627\u0631\u0629 \u0627\u0644\u0639\u0645\u0644\u0627\u0621
|
||||
role_manage-events=\u0625\u062f\u0627\u0631\u0629 \u0627\u0644\u0623\u062d\u062f\u0627\u062b
|
||||
role_view-profile=\u0639\u0631\u0636 \u0627\u0644\u0645\u0644\u0641 \u0627\u0644\u0634\u062e\u0635\u064a
|
||||
role_manage-account=\u0625\u062f\u0627\u0631\u0629 \u0627\u0644\u062d\u0633\u0627\u0628
|
||||
role_manage-account-links=\u0625\u062f\u0627\u0631\u0629 \u0627\u0631\u062a\u0628\u0627\u0637\u0627\u062a \u0627\u0644\u062d\u0633\u0627\u0628
|
||||
role_read-token=\u0642\u0631\u0627\u0621\u0629 \u0627\u0644\u0631\u0645\u0632
|
||||
role_offline-access=\u0627\u0644\u0648\u0635\u0648\u0644 \u062f\u0648\u0646 \u0627\u062a\u0635\u0627\u0644
|
||||
client_account=\u0627\u0644\u062d\u0633\u0627\u0628
|
||||
client_account-console=\u0644\u0648\u062d\u0629 \u0627\u0644\u062a\u062d\u0643\u0645 \u0628\u0627\u0644\u062d\u0633\u0627\u0628
|
||||
client_security-admin-console=\u0644\u0648\u062d\u0629 \u0627\u0644\u062a\u062d\u0643\u0645 \u0628\u0623\u0645\u0627\u0646 \u0627\u0644\u0645\u0633\u0624\u0648\u0644
|
||||
client_admin-cli=\u0648\u0627\u062c\u0647\u0629 \u0633\u0637\u0631 \u0627\u0644\u0623\u0648\u0627\u0645\u0631 \u0644\u0644\u0645\u0633\u0624\u0648\u0644
|
||||
client_realm-management=\u0625\u062f\u0627\u0631\u0629 \u0627\u0644\u0645\u0646\u0638\u0648\u0645\u0629
|
||||
client_broker=\u0648\u0633\u064a\u0637
|
||||
requiredFields=\u0627\u0644\u062d\u0642\u0648\u0644 \u0627\u0644\u0645\u0637\u0644\u0648\u0628\u0629
|
||||
invalidUserMessage=\u0627\u0633\u0645 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645 \u0623\u0648 \u0643\u0644\u0645\u0629 \u0645\u0631\u0648\u0631 \u063a\u064a\u0631 \u0635\u0627\u0644\u062d\u0629.
|
||||
invalidUsernameMessage=\u0627\u0633\u0645 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645 \u063a\u064a\u0631 \u0635\u0627\u0644\u062d.
|
||||
invalidUsernameOrEmailMessage=\u0627\u0633\u0645 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645 \u0623\u0648 \u0627\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a \u063a\u064a\u0631 \u0635\u0627\u0644\u062d.
|
||||
invalidPasswordMessage=\u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631 \u063a\u064a\u0631 \u0635\u0627\u0644\u062d\u0629.
|
||||
invalidEmailMessage=\u0627\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a \u063a\u064a\u0631 \u0635\u0627\u0644\u062d.
|
||||
accountDisabledMessage=\u0627\u0644\u062d\u0633\u0627\u0628 \u0645\u0639\u0637\u0644\u060c \u062a\u0648\u0627\u0635\u0644 \u0645\u0639 \u0645\u0633\u0624\u0648\u0644 \u0627\u0644\u0646\u0638\u0627\u0645.
|
||||
accountTemporarilyDisabledMessage=\u0627\u0644\u062d\u0633\u0627\u0628 \u0645\u0639\u0637\u0644 \u0645\u0624\u0642\u062a\u064b\u0627\u060c \u062a\u0648\u0627\u0635\u0644 \u0645\u0639 \u0645\u0633\u0624\u0648\u0644 \u0627\u0644\u0646\u0638\u0627\u0645 \u0623\u0648 \u062d\u0627\u0648\u0644 \u0645\u0631\u0629 \u0623\u062e\u0631\u0649 \u0644\u0627\u062d\u0642\u064b\u0627.
|
||||
expiredCodeMessage=\u0646\u0641\u0630 \u0627\u0644\u0648\u0642\u062a \u0627\u0644\u0645\u0633\u0645\u0648\u062d \u0644\u0644\u062f\u062e\u0648\u0644. \u0627\u0644\u0631\u062c\u0627\u0621 \u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u062f\u062e\u0648\u0644 \u0645\u0631\u0629 \u0623\u062e\u0631\u0649.
|
||||
expiredActionMessage=\u0627\u0646\u062a\u0647\u0649 \u0627\u0644\u0625\u062c\u0631\u0627\u0621. \u0627\u0644\u0631\u062c\u0627\u0621 \u0627\u0644\u0627\u0633\u062a\u0645\u0631\u0627\u0631 \u0641\u064a \u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u062f\u062e\u0648\u0644 \u0627\u0644\u0622\u0646.
|
||||
expiredActionTokenNoSessionMessage=\u0627\u0646\u062a\u0647\u0649 \u0627\u0644\u0625\u062c\u0631\u0627\u0621.
|
||||
expiredActionTokenSessionExistsMessage=\u0627\u0646\u062a\u0647\u0649 \u0627\u0644\u0625\u062c\u0631\u0627\u0621. \u064a\u0631\u062c\u0649 \u0627\u0644\u0628\u062f\u0621 \u0645\u0631\u0629 \u0623\u062e\u0631\u0649.
|
||||
sessionLimitExceeded=\u0647\u0646\u0627\u0643 \u062c\u0644\u0633\u0627\u062a \u0643\u062b\u064a\u0631\u0629 \u062c\u062f\u064b\u0627
|
||||
missingFirstNameMessage=\u0627\u0644\u0631\u062c\u0627\u0621 \u062a\u062d\u062f\u064a\u062f \u0627\u0644\u0627\u0633\u0645 \u0627\u0644\u0623\u0648\u0644.
|
||||
missingLastNameMessage=\u0627\u0644\u0631\u062c\u0627\u0621 \u062a\u062d\u062f\u064a\u062f \u0627\u0644\u0627\u0633\u0645 \u0627\u0644\u0623\u062e\u064a\u0631.
|
||||
missingEmailMessage=\u0627\u0644\u0631\u062c\u0627\u0621 \u062a\u062d\u062f\u064a\u062f \u0627\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a.
|
||||
missingUsernameMessage=\u0627\u0644\u0631\u062c\u0627\u0621 \u062a\u062d\u062f\u064a\u062f \u0627\u0633\u0645 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645.
|
||||
missingPasswordMessage=\u0627\u0644\u0631\u062c\u0627\u0621 \u062a\u062d\u062f\u064a\u062f \u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631.
|
||||
missingTotpMessage=\u0627\u0644\u0631\u062c\u0627\u0621 \u062a\u062d\u062f\u064a\u062f \u0631\u0645\u0632 \u0627\u0644\u062a\u062d\u0642\u0642.
|
||||
missingTotpDeviceNameMessage=\u0627\u0644\u0631\u062c\u0627\u0621 \u062a\u062d\u062f\u064a\u062f \u0627\u0633\u0645 \u0627\u0644\u062c\u0647\u0627\u0632.
|
||||
notMatchPasswordMessage=\u0643\u0644\u0645\u0627\u062a \u0627\u0644\u0645\u0631\u0648\u0631 \u063a\u064a\u0631 \u0645\u062a\u0637\u0627\u0628\u0642\u0629.
|
||||
error-invalid-value=\u0642\u064a\u0645\u0629 \u063a\u064a\u0631 \u0635\u0627\u0644\u062d\u0629.
|
||||
error-invalid-blank=\u064a\u0631\u062c\u0649 \u062a\u062d\u062f\u064a\u062f \u0642\u064a\u0645\u0629.
|
||||
error-empty=\u064a\u0631\u062c\u0649 \u062a\u062d\u062f\u064a\u062f \u0642\u064a\u0645\u0629.
|
||||
error-invalid-length=\u0627\u0644\u0637\u0648\u0644 \u064a\u062c\u0628 \u0623\u0646 \u064a\u0643\u0648\u0646 \u0628\u064a\u0646 {1} \u0648 {2}.
|
||||
error-invalid-length-too-short=\u0627\u0644\u0637\u0648\u0644 \u064a\u062c\u0628 \u0623\u0644\u0627 \u064a\u0642\u0644 \u0639\u0646 {1}.
|
||||
error-invalid-length-too-long=\u0627\u0644\u0637\u0648\u0644 \u064a\u062c\u0628 \u0623\u0644\u0627 \u064a\u0632\u064a\u062f \u0639\u0646 {2}.
|
||||
error-invalid-email=\u0628\u0631\u064a\u062f \u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a \u063a\u064a\u0631 \u0635\u0627\u0644\u062d.
|
||||
error-invalid-number=\u0631\u0642\u0645 \u063a\u064a\u0631 \u0635\u0627\u0644\u062d.
|
||||
error-number-out-of-range=\u0627\u0644\u0631\u0642\u0645 \u064a\u062c\u0628 \u0623\u0646 \u064a\u0643\u0648\u0646 \u0628\u064a\u0646 {1} \u0648 {2}.
|
||||
error-number-out-of-range-too-small=\u0627\u0644\u0631\u0642\u0645 \u064a\u062c\u0628 \u0623\u0644\u0627 \u062a\u0642\u0644 \u0642\u064a\u0645\u062a\u0647 \u0639\u0646 {1}.
|
||||
error-number-out-of-range-too-big=\u0627\u0644\u0631\u0642\u0645 \u064a\u062c\u0628 \u0623\u0644\u0627 \u062a\u0632\u064a\u062f \u0642\u064a\u0645\u062a\u0647 \u0639\u0646 {2}.
|
||||
error-pattern-no-match=\u0642\u064a\u0645\u0629 \u063a\u064a\u0631 \u0635\u0627\u0644\u062d\u0629.
|
||||
error-invalid-uri=\u0639\u0646\u0648\u0627\u0646 \u0645\u0648\u0642\u0639 \u063a\u064a\u0631 \u0635\u0627\u0644\u062d.
|
||||
error-invalid-uri-scheme=\u0628\u0627\u062f\u0626\u0629 \u0639\u0646\u0648\u0627\u0646 \u0645\u0648\u0642\u0639 \u063a\u064a\u0631 \u0635\u0627\u0644\u062d\u0629.
|
||||
error-invalid-uri-fragment=\u0645\u0644\u062d\u0642 \u0639\u0646\u0648\u0627\u0646 \u0645\u0648\u0642\u0639 \u063a\u064a\u0631 \u0635\u0627\u0644\u062d.
|
||||
error-user-attribute-required=\u064a\u0631\u062c\u0649 \u062a\u062d\u062f\u064a\u062f \u0647\u0630\u0627 \u0627\u0644\u062d\u0642\u0644.
|
||||
error-invalid-date=\u062a\u0627\u0631\u064a\u062e \u063a\u064a\u0631 \u0635\u0627\u0644\u062d.
|
||||
error-user-attribute-read-only=\u0647\u0630\u0627 \u0627\u0644\u062d\u0642\u0644 \u0644\u0644\u0642\u0631\u0627\u0621\u0629 \u0641\u0642\u0637.
|
||||
error-username-invalid-character=\u0627\u0644\u0642\u064a\u0645\u0629 \u062a\u062d\u062a\u0648\u064a \u0639\u0644\u0649 \u062d\u0631\u0641 \u063a\u064a\u0631 \u0635\u0627\u0644\u062d.
|
||||
error-person-name-invalid-character=\u0627\u0644\u0642\u064a\u0645\u0629 \u062a\u062d\u062a\u0648\u064a \u0639\u0644\u0649 \u062d\u0631\u0641 \u063a\u064a\u0631 \u0635\u0627\u0644\u062d.
|
||||
error-reset-otp-missing-id=\u064a\u0631\u062c\u0649 \u0627\u062e\u062a\u064a\u0627\u0631 \u0625\u0639\u062f\u0627\u062f \u0644\u062e\u0627\u0635\u064a\u0629 \u0631\u0645\u0632 \u0627\u0644\u062a\u062d\u0642\u0642.
|
||||
invalidPasswordExistingMessage=\u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631 \u0627\u0644\u062d\u0627\u0644\u064a\u0629 \u063a\u064a\u0631 \u0635\u0627\u0644\u062d\u0629.
|
||||
invalidPasswordBlacklistedMessage=\u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631 \u063a\u064a\u0631 \u0635\u0627\u0644\u062d\u0629\: \u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631 \u0641\u064a \u0627\u0644\u0642\u0627\u0626\u0645\u0629 \u0627\u0644\u0633\u0648\u062f\u0627\u0621.
|
||||
invalidPasswordConfirmMessage=\u062a\u0623\u0643\u064a\u062f \u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631 \u063a\u064a\u0631 \u0645\u062a\u0637\u0627\u0628\u0642.
|
||||
invalidTotpMessage=\u0631\u0645\u0632 \u0627\u0644\u062a\u062d\u0642\u0642 \u063a\u064a\u0631 \u0635\u0627\u0644\u062d.
|
||||
usernameExistsMessage=\u0627\u0633\u0645 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645 \u0645\u0633\u062a\u062e\u062f\u0645 \u0645\u0633\u0628\u0642\u064b\u0627.
|
||||
emailExistsMessage=\u0627\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a \u0645\u0633\u062a\u062e\u062f\u0645 \u0645\u0633\u0628\u0642\u064b\u0627.
|
||||
federatedIdentityExistsMessage=\u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645 \u0635\u0627\u062d\u0628 ({0}\: {1}) \u0645\u0648\u062c\u0648\u062f \u0645\u0633\u0628\u0642\u064b\u0627. \u0627\u0644\u0631\u062c\u0627\u0621 \u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u062f\u062e\u0648\u0644 \u0625\u0644\u0649 \u0635\u0641\u062d\u0629 \u0625\u062f\u0627\u0631\u0629 \u0627\u0644\u062d\u0633\u0627\u0628 \u0644\u0631\u0628\u0637 \u0627\u0644\u062d\u0633\u0627\u0628.
|
||||
federatedIdentityUnavailableMessage=\u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645 {0} \u0627\u0644\u0645\u0635\u0627\u062f\u0642 \u0639\u0644\u064a\u0647 \u0628\u0648\u0627\u0633\u0637\u0629 \u0645\u0632\u0648\u062f \u0627\u0644\u062d\u0633\u0627\u0628\u0627\u062a {1} \u063a\u064a\u0631 \u0645\u0648\u062c\u0648\u062f. \u0627\u0644\u0631\u062c\u0627\u0621 \u0627\u0644\u062a\u0648\u0627\u0635\u0644 \u0645\u0639 \u0645\u0633\u0624\u0648\u0644 \u0627\u0644\u0646\u0638\u0627\u0645.
|
||||
federatedIdentityUnmatchedEssentialClaimMessage=\u0631\u0645\u0632 \u0627\u0644\u0645\u0635\u0627\u062f\u0642\u0629 \u0644\u0644\u062a\u0639\u0631\u064a\u0641 \u0627\u0644\u0630\u064a \u062a\u0645 \u0625\u0635\u062f\u0627\u0631\u0647 \u0645\u0646 \u0645\u0632\u0648\u062f \u0627\u0644\u062d\u0633\u0627\u0628\u0627\u062a \u0644\u0627 \u064a\u062a\u0637\u0627\u0628\u0642 \u0645\u0639 \u0627\u0644\u0642\u064a\u0645 \u0627\u0644\u062a\u064a \u0625\u0639\u062f\u0627\u062f\u0647\u0627 \u0645\u0633\u0628\u0642\u064b\u0627. \u0627\u0644\u0631\u062c\u0627\u0621 \u0627\u0644\u062a\u0648\u0627\u0635\u0644 \u0645\u0639 \u0645\u0633\u0624\u0648\u0644 \u0627\u0644\u0646\u0638\u0627\u0645.
|
||||
confirmLinkIdpTitle=\u0627\u0644\u062d\u0633\u0627\u0628 \u0645\u0648\u062c\u0648\u062f \u0645\u0633\u0628\u0642\u064b\u0627
|
||||
federatedIdentityConfirmLinkMessage=\u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645 \u0635\u0627\u062d\u0628 ({0}\: {1}) \u0645\u0648\u062c\u0648\u062f \u0645\u0633\u0628\u0642\u064b\u0627. \u0643\u064a\u0641 \u062a\u0631\u064a\u062f \u0627\u0644\u0627\u0633\u062a\u0645\u0631\u0627\u0631\u061f
|
||||
federatedIdentityConfirmReauthenticateMessage=\u0627\u0644\u0645\u0635\u0627\u062f\u0642\u0629 \u0644\u0631\u0628\u0637 \u062d\u0633\u0627\u0628\u0643 \u0628\u0640 {0}
|
||||
nestedFirstBrokerFlowMessage=\u0644\u0645 \u064a\u062a\u0645 \u0631\u0628\u0637 \u0645\u0633\u062a\u062e\u062f\u0645 {0} ({1}) \u0628\u0623\u064a \u0645\u0633\u062a\u062e\u062f\u0645 \u0645\u0639\u0631\u0648\u0641.
|
||||
confirmLinkIdpReviewProfile=\u0645\u0631\u0627\u062c\u0639\u0629 \u0627\u0644\u0645\u0644\u0641 \u0627\u0644\u0634\u062e\u0635\u064a
|
||||
confirmLinkIdpContinue=\u0625\u0636\u0627\u0641\u0629 \u0625\u0644\u0649 \u0627\u0644\u062d\u0633\u0627\u0628 \u0627\u0644\u062d\u0627\u0644\u064a
|
||||
configureTotpMessage=\u062a\u062d\u062a\u0627\u062c \u0625\u0644\u0649 \u0625\u0639\u062f\u0627\u062f \u0627\u0644\u0645\u0635\u0627\u062f\u0642\u0629 \u0628\u0627\u0644\u0647\u0627\u062a\u0641 \u0627\u0644\u0630\u0643\u064a \u0644\u062a\u0641\u0639\u064a\u0644 \u062d\u0633\u0627\u0628\u0643.
|
||||
configureBackupCodesMessage=\u062a\u062d\u062a\u0627\u062c \u0625\u0644\u0649 \u0625\u0639\u062f\u0627\u062f \u0631\u0645\u0648\u0632 \u0627\u0644\u0645\u0635\u0627\u062f\u0642\u0629 \u0627\u0644\u0627\u062d\u062a\u064a\u0627\u0637\u064a\u0629 \u0644\u062a\u0641\u0639\u064a\u0644 \u062d\u0633\u0627\u0628\u0643.
|
||||
updateProfileMessage=\u062a\u062d\u062a\u0627\u062c \u0625\u0644\u0649 \u062a\u062d\u062f\u064a\u062b \u0627\u0644\u0645\u0644\u0641 \u0627\u0644\u0634\u062e\u0635\u064a \u0644\u062a\u0641\u0639\u064a\u0644 \u062d\u0633\u0627\u0628\u0643.
|
||||
updatePasswordMessage=\u062a\u062d\u062a\u0627\u062c \u0625\u0644\u0649 \u062a\u062d\u062f\u064a\u062b \u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631 \u0644\u062a\u0641\u0639\u064a\u0644 \u062d\u0633\u0627\u0628\u0643.
|
||||
updateEmailMessage=\u062a\u062d\u062a\u0627\u062c \u0625\u0644\u0649 \u062a\u062d\u062f\u064a\u062b \u0627\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a \u0644\u062a\u0641\u0639\u064a\u0644 \u062d\u0633\u0627\u0628\u0643.
|
||||
resetPasswordMessage=\u062a\u062d\u062a\u0627\u062c \u0625\u0644\u0649 \u062a\u062d\u062f\u064a\u062b \u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631 \u0627\u0644\u062e\u0627\u0635\u0629 \u0628\u0643.
|
||||
verifyEmailMessage=\u062a\u062d\u062a\u0627\u062c \u0625\u0644\u0649 \u0627\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 \u0627\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a \u0644\u062a\u0641\u0639\u064a\u0644 \u062d\u0633\u0627\u0628\u0643.
|
||||
linkIdpMessage=\u062a\u062d\u062a\u0627\u062c \u0625\u0644\u0649 \u0627\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 \u0627\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a \u0644\u0631\u0628\u0637 \u062d\u0633\u0627\u0628\u0643 \u0628\u0640 {0}.
|
||||
emailSentMessage=\u0645\u0646 \u0627\u0644\u0645\u0641\u062a\u0631\u0636 \u0623\u0646 \u062a\u062a\u0644\u0642\u0649 \u0628\u0631\u064a\u062f\u064b\u0627 \u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a\u064b\u0627 \u0639\u0645\u0627 \u0642\u0631\u064a\u0628 \u064a\u062d\u062a\u0648\u064a \u0639\u0644\u0649 \u0645\u0632\u064a\u062f \u0645\u0646 \u0627\u0644\u0625\u0631\u0634\u0627\u062f\u0627\u062a.
|
||||
emailSendErrorMessage=\u0641\u0634\u0644 \u0641\u064a \u0625\u0631\u0633\u0627\u0644 \u0627\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a\u060c \u064a\u0631\u062c\u0649 \u0627\u0644\u0645\u062d\u0627\u0648\u0644\u0629 \u0645\u0631\u0629 \u0623\u062e\u0631\u0649 \u0641\u064a \u0648\u0642\u062a \u0644\u0627\u062d\u0642.
|
||||
accountUpdatedMessage=\u062a\u0645 \u062a\u062d\u062f\u064a\u062b \u0627\u0644\u062d\u0633\u0627\u0628 \u0627\u0644\u062e\u0627\u0635 \u0628\u0643.
|
||||
accountPasswordUpdatedMessage=\u062a\u0645 \u062a\u062d\u062f\u064a\u062b \u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631 \u0627\u0644\u062e\u0627\u0635\u0629 \u0628\u0643.
|
||||
delegationCompleteHeader=\u062a\u0645 \u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u062f\u062e\u0648\u0644 \u0628\u0646\u062c\u0627\u062d
|
||||
delegationCompleteMessage=\u064a\u0645\u0643\u0646\u0643 \u0625\u063a\u0644\u0627\u0642 \u0646\u0627\u0641\u0630\u0629 \u0627\u0644\u0645\u062a\u0635\u0641\u062d \u0647\u0630\u0647 \u0648\u0627\u0644\u0639\u0648\u062f\u0629 \u0625\u0644\u0649 \u062a\u0637\u0628\u064a\u0642 \u0648\u062d\u062f\u0629 \u0627\u0644\u062a\u062d\u0643\u0645 \u0627\u0644\u062e\u0627\u0635\u0629 \u0628\u0643.
|
||||
delegationFailedHeader=\u0641\u0634\u0644 \u0641\u064a \u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u062f\u062e\u0648\u0644
|
||||
delegationFailedMessage=\u064a\u0645\u0643\u0646\u0643 \u0625\u063a\u0644\u0627\u0642 \u0646\u0627\u0641\u0630\u0629 \u0627\u0644\u0645\u062a\u0635\u0641\u062d \u0647\u0630\u0647 \u0648\u0627\u0644\u0639\u0648\u062f\u0629 \u0625\u0644\u0649 \u062a\u0637\u0628\u064a\u0642 \u0648\u062d\u062f\u0629 \u0627\u0644\u062a\u062d\u0643\u0645 \u0648\u0645\u062d\u0627\u0648\u0644\u0629 \u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u062f\u062e\u0648\u0644 \u0645\u0631\u0629 \u0623\u062e\u0631\u0649.
|
||||
noAccessMessage=\u0644\u0627 \u0648\u0635\u0648\u0644
|
||||
invalidPasswordMinLengthMessage=\u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631 \u063a\u064a\u0631 \u0635\u0627\u0644\u062d\u0629\: \u0627\u0644\u062d\u062f \u0627\u0644\u0623\u062f\u0646\u0649 \u0644\u0644\u0637\u0648\u0644 {0}.
|
||||
invalidPasswordMaxLengthMessage=\u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631 \u063a\u064a\u0631 \u0635\u0627\u0644\u062d\u0629\: \u0627\u0644\u062d\u062f \u0627\u0644\u0623\u0642\u0635\u0649 \u0644\u0644\u0637\u0648\u0644 {0}.
|
||||
invalidPasswordMinDigitsMessage=\u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631 \u063a\u064a\u0631 \u0635\u0627\u0644\u062d\u0629\: \u064a\u062c\u0628 \u0623\u0646 \u062a\u062d\u062a\u0648\u064a \u0639\u0644\u0649 {0} \u0623\u0631\u0642\u0627\u0645 \u0639\u0644\u0649 \u0627\u0644\u0623\u0642\u0644.
|
||||
invalidPasswordMinLowerCaseCharsMessage=\u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631 \u063a\u064a\u0631 \u0635\u0627\u0644\u062d\u0629\: \u064a\u062c\u0628 \u0623\u0646 \u062a\u062d\u062a\u0648\u064a \u0639\u0644\u0649 {0} \u062d\u0631\u0648\u0641 \u0635\u063a\u064a\u0631\u0629 \u0639\u0644\u0649 \u0627\u0644\u0623\u0642\u0644.
|
||||
invalidPasswordMinUpperCaseCharsMessage=\u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631 \u063a\u064a\u0631 \u0635\u0627\u0644\u062d\u0629\: \u064a\u062c\u0628 \u0623\u0646 \u062a\u062d\u062a\u0648\u064a \u0639\u0644\u0649 {0} \u062d\u0631\u0648\u0641 \u0643\u0628\u064a\u0631\u0629 \u0639\u0644\u0649 \u0627\u0644\u0623\u0642\u0644.
|
||||
invalidPasswordMinSpecialCharsMessage=\u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631 \u063a\u064a\u0631 \u0635\u0627\u0644\u062d\u0629\: \u064a\u062c\u0628 \u0623\u0646 \u062a\u062d\u062a\u0648\u064a \u0639\u0644\u0649 {0} \u0631\u0645\u0648\u0632 \u0639\u0644\u0649 \u0627\u0644\u0623\u0642\u0644.
|
||||
invalidPasswordNotUsernameMessage=\u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631 \u063a\u064a\u0631 \u0635\u0627\u0644\u062d\u0629\: \u064a\u062c\u0628 \u0623\u0644\u0627 \u062a\u0643\u0648\u0646 \u0645\u0637\u0627\u0628\u0642\u0629 \u0644\u0627\u0633\u0645 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645.
|
||||
invalidPasswordNotEmailMessage=\u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631 \u063a\u064a\u0631 \u0635\u0627\u0644\u062d\u0629\: \u064a\u062c\u0628 \u0623\u0644\u0627 \u062a\u0643\u0648\u0646 \u0645\u0637\u0627\u0628\u0642\u0629 \u0644\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a.
|
||||
invalidPasswordRegexPatternMessage=\u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631 \u063a\u064a\u0631 \u0635\u0627\u0644\u062d\u0629\: \u064a\u062c\u0628 \u0623\u0644\u0627 \u062a\u0643\u0648\u0646 \u0645\u0637\u0627\u0628\u0642\u0629 \u0644\u0644\u0623\u0646\u0645\u0627\u0637 \u0627\u0644\u0645\u062d\u062f\u062f\u0629.
|
||||
invalidPasswordHistoryMessage=\u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631 \u063a\u064a\u0631 \u0635\u0627\u0644\u062d\u0629\: \u064a\u062c\u0628 \u0623\u0644\u0627 \u062a\u0643\u0648\u0646 \u0645\u0637\u0627\u0628\u0642\u0629 \u0644\u0623\u064a \u0645\u0646 \u0643\u0644\u0645\u0627\u062a \u0627\u0644\u0645\u0631\u0648\u0631 \u0627\u0644\u0640 {0} \u0627\u0644\u0623\u062e\u064a\u0631\u0629.
|
||||
invalidPasswordGenericMessage=\u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631 \u063a\u064a\u0631 \u0635\u0627\u0644\u062d\u0629\: \u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631 \u0627\u0644\u062c\u062f\u064a\u062f\u0629 \u0644\u0627 \u062a\u062a\u0637\u0627\u0628\u0642 \u0645\u0639 \u0633\u064a\u0627\u0633\u0627\u062a \u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631.
|
||||
failedToProcessResponseMessage=\u0641\u0634\u0644 \u0641\u064a \u0645\u0639\u0627\u0644\u062c\u0629 \u0627\u0644\u0627\u0633\u062a\u062c\u0627\u0628\u0629
|
||||
httpsRequiredMessage=\u0627\u0644\u0628\u0631\u0648\u062a\u0648\u0643\u0648\u0644 HTTPS \u0645\u0637\u0644\u0648\u0628
|
||||
realmNotEnabledMessage=\u0627\u0644\u0645\u0646\u0638\u0648\u0645\u0629 \u063a\u064a\u0631 \u0645\u0641\u0639\u0644\u0629
|
||||
invalidRequestMessage=\u0637\u0644\u0628 \u063a\u064a\u0631 \u0635\u0627\u0644\u062d
|
||||
successLogout=\u0644\u0642\u062f \u0642\u0645\u062a \u0628\u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u062e\u0631\u0648\u062c
|
||||
failedLogout=\u0641\u0634\u0644 \u0641\u064a \u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u062e\u0631\u0648\u062c
|
||||
unknownLoginRequesterMessage=\u0637\u0627\u0644\u0628 \u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u062f\u062e\u0648\u0644 \u063a\u064a\u0631 \u0645\u0639\u0631\u0648\u0641
|
||||
loginRequesterNotEnabledMessage=\u0637\u0627\u0644\u0628 \u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u062f\u062e\u0648\u0644 \u063a\u064a\u0631 \u0645\u0641\u0639\u0644
|
||||
bearerOnlyMessage=\u0644\u0627 \u064a\u0633\u0645\u062d \u0644\u0644\u062a\u0637\u0628\u064a\u0642\u0627\u062a Bearer-only \u0628\u0628\u062f\u0621 \u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u062f\u062e\u0648\u0644 \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u0627\u0644\u0645\u062a\u0635\u0641\u062d
|
||||
standardFlowDisabledMessage=\u0644\u0627 \u064a\u0633\u0645\u062d \u0644\u0644\u0639\u0645\u064a\u0644 \u0628\u0628\u062f\u0621 \u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u062f\u062e\u0648\u0644 \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u0627\u0644\u0645\u062a\u0635\u0641\u062d \u0645\u0639 \u0642\u064a\u0645\u0629 response_type \u0627\u0644\u0645\u0639\u0637\u0627\u0629. \u062a\u0645 \u062a\u0639\u0637\u064a\u0644 \u0627\u0644\u0625\u062c\u0631\u0627\u0621 \u0627\u0644\u0642\u064a\u0627\u0633\u064a standard flow \u0644\u0647\u0630\u0627 \u0627\u0644\u0639\u0645\u064a\u0644.
|
||||
implicitFlowDisabledMessage=\u0644\u0627 \u064a\u0633\u0645\u062d \u0644\u0644\u0639\u0645\u064a\u0644 \u0628\u0628\u062f\u0621 \u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u062f\u062e\u0648\u0644 \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u0627\u0644\u0645\u062a\u0635\u0641\u062d \u0645\u0639 \u0642\u064a\u0645\u0629 response_type \u0627\u0644\u0645\u0639\u0637\u0627\u0629. \u062a\u0645 \u062a\u0639\u0637\u064a\u0644 \u0627\u0644\u0625\u062c\u0631\u0627\u0621 \u0627\u0644\u0636\u0645\u0646\u064a implicit flow \u0644\u0647\u0630\u0627 \u0627\u0644\u0639\u0645\u064a\u0644.
|
||||
invalidRedirectUriMessage=\u0631\u0627\u0628\u0637 \u0625\u0639\u0627\u062f\u0629 \u0627\u0644\u062a\u0648\u062c\u064a\u0647 \u063a\u064a\u0631 \u0635\u0627\u0644\u062d
|
||||
unsupportedNameIdFormatMessage=\u0635\u064a\u063a\u0629 \u063a\u064a\u0631 \u0645\u062f\u0639\u0648\u0645\u0629 \u0644\u0644\u0642\u064a\u0645\u0629 NameID
|
||||
invalidRequesterMessage=\u0637\u0627\u0644\u0628 \u063a\u064a\u0631 \u0635\u0627\u0644\u062d
|
||||
registrationNotAllowedMessage=\u0627\u0644\u062a\u0633\u062c\u064a\u0644 \u063a\u064a\u0631 \u0645\u0633\u0645\u0648\u062d \u0628\u0647
|
||||
resetCredentialNotAllowedMessage=\u0625\u0639\u0627\u062f\u0629 \u062a\u0639\u064a\u064a\u0646 \u0628\u064a\u0627\u0646\u0627\u062a \u0627\u0644\u062f\u062e\u0648\u0644 \u063a\u064a\u0631 \u0645\u0633\u0645\u0648\u062d \u0628\u0647
|
||||
permissionNotApprovedMessage=\u0644\u0645 \u062a\u062a\u0645 \u0627\u0644\u0645\u0648\u0627\u0641\u0642\u0629 \u0639\u0644\u0649 \u0627\u0644\u0625\u0630\u0646.
|
||||
noRelayStateInResponseMessage=\u0644\u0627 \u062a\u0648\u0627\u062c\u062f \u0644\u0642\u064a\u0645\u0629 Relay State \u0641\u064a \u0627\u0633\u062a\u062c\u0627\u0628\u0629 \u0645\u0632\u0648\u062f \u0627\u0644\u062d\u0633\u0627\u0628\u0627\u062a.
|
||||
insufficientPermissionMessage=\u0623\u0630\u0648\u0646\u0627\u062a \u063a\u064a\u0631 \u0643\u0627\u0641\u064a\u0629 \u0644\u0631\u0628\u0637 \u0627\u0644\u0647\u0648\u064a\u0627\u062a.
|
||||
couldNotProceedWithAuthenticationRequestMessage=\u062a\u0639\u0630\u0631\u062a \u0645\u062a\u0627\u0628\u0639\u0629 \u0637\u0644\u0628 \u0627\u0644\u0645\u0635\u0627\u062f\u0642\u0629 \u0644\u0645\u0632\u0648\u062f \u0627\u0644\u062d\u0633\u0627\u0628\u0627\u062a.
|
||||
couldNotObtainTokenMessage=\u062a\u0639\u0630\u0631 \u0627\u0644\u062d\u0635\u0648\u0644 \u0639\u0644\u0649 \u0631\u0645\u0632 \u0645\u0635\u0627\u062f\u0642\u0629 \u0645\u0646 \u0645\u0632\u0648\u062f \u0627\u0644\u062d\u0633\u0627\u0628\u0627\u062a.
|
||||
unexpectedErrorRetrievingTokenMessage=\u062e\u0637\u0623 \u063a\u064a\u0631 \u0645\u062a\u0648\u0642\u0639 \u0639\u0646\u062f \u0627\u0633\u062a\u0631\u062f\u0627\u062f \u0631\u0645\u0632 \u0627\u0644\u0645\u0635\u0627\u062f\u0642\u0629 \u0645\u0646 \u0645\u0632\u0648\u062f \u0627\u0644\u062d\u0633\u0627\u0628\u0627\u062a.
|
||||
unexpectedErrorHandlingResponseMessage=\u062e\u0637\u0623 \u063a\u064a\u0631 \u0645\u062a\u0648\u0642\u0639 \u0639\u0646\u062f \u0627\u0644\u062a\u0639\u0627\u0645\u0644 \u0645\u0639 \u0627\u0644\u0627\u0633\u062a\u062c\u0627\u0628\u0629 \u0645\u0646 \u0645\u0632\u0648\u062f \u0627\u0644\u062d\u0633\u0627\u0628\u0627\u062a.
|
||||
identityProviderAuthenticationFailedMessage=\u0641\u0634\u0644\u062a \u0627\u0644\u0645\u0635\u0627\u062f\u0642\u0629. \u062a\u0639\u0630\u0631\u062a \u0627\u0644\u0645\u0635\u0627\u062f\u0642\u0629 \u0645\u0639 \u0645\u0632\u0648\u062f \u0627\u0644\u062d\u0633\u0627\u0628\u0627\u062a.
|
||||
couldNotSendAuthenticationRequestMessage=\u062a\u0639\u0630\u0631 \u0625\u0631\u0633\u0627\u0644 \u0637\u0644\u0628 \u0627\u0644\u0645\u0635\u0627\u062f\u0642\u0629 \u0625\u0644\u0649 \u0645\u0632\u0648\u062f \u0627\u0644\u062d\u0633\u0627\u0628\u0627\u062a.
|
||||
unexpectedErrorHandlingRequestMessage=\u062e\u0637\u0623 \u063a\u064a\u0631 \u0645\u062a\u0648\u0642\u0639 \u0639\u0646\u062f \u0645\u0639\u0627\u0644\u062c\u0629 \u0637\u0644\u0628 \u0627\u0644\u0645\u0635\u0627\u062f\u0642\u0629 \u0644\u0645\u0632\u0648\u062f \u0627\u0644\u062d\u0633\u0627\u0628\u0627\u062a.
|
||||
invalidAccessCodeMessage=\u0631\u0645\u0632 \u0627\u0644\u0648\u0635\u0648\u0644 \u063a\u064a\u0631 \u0635\u0627\u0644\u062d.
|
||||
sessionNotActiveMessage=\u0627\u0644\u062c\u0644\u0633\u0629 \u063a\u064a\u0631 \u0646\u0634\u0637\u0629.
|
||||
invalidCodeMessage=\u062d\u062f\u062b \u062e\u0637\u0623\u060c \u064a\u0631\u062c\u0649 \u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u062f\u062e\u0648\u0644 \u0645\u0631\u0629 \u0623\u062e\u0631\u0649 \u0645\u0646 \u062e\u0644\u0627\u0644 \u0627\u0644\u062a\u0637\u0628\u064a\u0642 \u0627\u0644\u062e\u0627\u0635 \u0628\u0643.
|
||||
cookieNotFoundMessage=\u0644\u0645 \u064a\u062a\u0645 \u0627\u0644\u0639\u062b\u0648\u0631 \u0639\u0644\u0649 \u0645\u0644\u0641 \u062a\u0639\u0631\u064a\u0641 \u0627\u0644\u0627\u0631\u062a\u0628\u0627\u0637. \u064a\u0631\u062c\u0649 \u0627\u0644\u062a\u0623\u0643\u062f \u0645\u0646 \u062a\u0645\u0643\u064a\u0646 \u0645\u0644\u0641\u0627\u062a \u062a\u0639\u0631\u064a\u0641 \u0627\u0644\u0627\u0631\u062a\u0628\u0627\u0637 \u0641\u064a \u0645\u062a\u0635\u0641\u062d\u0643.
|
||||
insufficientLevelOfAuthentication=\u0644\u0645 \u064a\u062a\u0645 \u0627\u0633\u062a\u064a\u0641\u0627\u0621 \u0645\u0633\u062a\u0648\u0649 \u0627\u0644\u0645\u0635\u0627\u062f\u0642\u0629 \u0627\u0644\u0645\u0637\u0644\u0648\u0628.
|
||||
identityProviderUnexpectedErrorMessage=\u062e\u0637\u0623 \u063a\u064a\u0631 \u0645\u062a\u0648\u0642\u0639 \u0639\u0646\u062f \u0627\u0644\u0645\u0635\u0627\u062f\u0642\u0629 \u0645\u0639 \u0645\u0632\u0648\u062f \u0627\u0644\u062d\u0633\u0627\u0628\u0627\u062a
|
||||
identityProviderMissingStateMessage=\u0627\u0644\u0645\u0639\u0627\u0645\u0644 state \u0645\u0641\u0642\u0648\u062f \u0641\u064a \u0631\u062f \u0645\u0632\u0648\u062f \u0627\u0644\u062d\u0633\u0627\u0628\u0627\u062a.
|
||||
identityProviderMissingCodeOrErrorMessage=\u0627\u0644\u0645\u0639\u0627\u0645\u0644 code \u0623\u0648 error \u0645\u0641\u0642\u0648\u062f \u0641\u064a \u0631\u062f \u0645\u0632\u0648\u062f \u0627\u0644\u062d\u0633\u0627\u0628\u0627\u062a.
|
||||
identityProviderInvalidResponseMessage=\u0631\u062f \u063a\u064a\u0631 \u0635\u0627\u0644\u062d \u0645\u0646 \u0645\u0632\u0648\u062f \u0627\u0644\u062d\u0633\u0627\u0628\u0627\u062a.
|
||||
identityProviderInvalidSignatureMessage=\u062a\u0648\u0642\u064a\u0639 \u063a\u064a\u0631 \u0635\u0627\u0644\u062d \u0641\u064a \u0631\u062f \u0645\u0632\u0648\u062f \u0627\u0644\u062d\u0633\u0627\u0628\u0627\u062a.
|
||||
identityProviderNotFoundMessage=\u062a\u0639\u0630\u0631 \u0627\u0644\u0639\u062b\u0648\u0631 \u0639\u0644\u0649 \u0645\u0632\u0648\u062f \u0627\u0644\u062d\u0633\u0627\u0628\u0627\u062a \u0628\u0627\u0644\u0645\u0639\u0631\u0641.
|
||||
identityProviderLinkSuccess=\u0644\u0642\u062f \u0646\u062c\u062d\u062a \u0641\u064a \u0627\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 \u0628\u0631\u064a\u062f\u0643 \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a. \u064a\u0631\u062c\u0649 \u0627\u0644\u0631\u062c\u0648\u0639 \u0625\u0644\u0649 \u0645\u062a\u0635\u0641\u062d\u0643 \u0648\u0627\u0644\u0645\u062a\u0627\u0628\u0639\u0629 \u0647\u0646\u0627\u0643 \u0641\u064a \u0639\u0645\u0644\u064a\u0629 \u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u062f\u062e\u0648\u0644.
|
||||
staleCodeMessage=\u0647\u0630\u0647 \u0627\u0644\u0635\u0641\u062d\u0629 \u0644\u0645 \u062a\u0639\u062f \u0635\u0627\u0644\u062d\u0629\u060c \u064a\u0631\u062c\u0649 \u0627\u0644\u0631\u062c\u0648\u0639 \u0625\u0644\u0649 \u0627\u0644\u062a\u0637\u0628\u064a\u0642 \u0627\u0644\u062e\u0627\u0635 \u0628\u0643 \u0648\u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u062f\u062e\u0648\u0644 \u0645\u0631\u0629 \u0623\u062e\u0631\u0649
|
||||
realmSupportsNoCredentialsMessage=\u0644\u0627 \u062a\u062f\u0639\u0645 \u0627\u0644\u0645\u0646\u0638\u0648\u0645\u0629 \u0623\u064a \u0646\u0648\u0639 \u0645\u0646 \u0628\u064a\u0627\u0646\u0627\u062a \u0627\u0644\u062f\u062e\u0648\u0644.
|
||||
credentialSetupRequired=\u0644\u0627 \u064a\u0645\u0643\u0646 \u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u062f\u062e\u0648\u0644\u060c \u0645\u0637\u0644\u0648\u0628 \u0625\u0639\u062f\u0627\u062f \u0628\u064a\u0627\u0646\u0627\u062a \u0627\u0644\u062f\u062e\u0648\u0644.
|
||||
identityProviderNotUniqueMessage=\u062a\u062f\u0639\u0645 \u0627\u0644\u0645\u0646\u0638\u0648\u0645\u0629 \u0639\u062f\u0629 \u0645\u0632\u0648\u062f\u064a \u062d\u0633\u0627\u0628\u0627\u062a. \u062a\u0639\u0630\u0631 \u062a\u062d\u062f\u064a\u062f \u0645\u0632\u0648\u062f \u0627\u0644\u062d\u0633\u0627\u0628\u0627\u062a \u0627\u0644\u0630\u064a \u064a\u062c\u0628 \u0627\u0633\u062a\u062e\u062f\u0627\u0645\u0647 \u0644\u0644\u0645\u0635\u0627\u062f\u0642\u0629 \u0645\u0639\u0647.
|
||||
emailVerifiedMessage=\u062a\u0645 \u0627\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 \u0639\u0646\u0648\u0627\u0646 \u0627\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a \u0627\u0644\u062e\u0627\u0635 \u0628\u0643.
|
||||
emailVerifiedAlreadyMessage=\u062a\u0645 \u0627\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 \u0639\u0646\u0648\u0627\u0646 \u0627\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a \u0627\u0644\u062e\u0627\u0635 \u0628\u0643 \u0645\u0633\u0628\u0642\u064b\u0627.
|
||||
staleEmailVerificationLink=\u0627\u0644\u0631\u0627\u0628\u0637 \u0627\u0644\u0630\u064a \u0646\u0642\u0631\u062a \u0639\u0644\u064a\u0647 \u0647\u0648 \u0631\u0627\u0628\u0637 \u0642\u062f\u064a\u0645 \u0648\u0644\u0645 \u064a\u0639\u062f \u0635\u0627\u0644\u062d\u064b\u0627. \u0631\u0628\u0645\u0627 \u062a\u0643\u0648\u0646 \u0642\u062f \u062a\u062d\u0642\u0642\u062a \u0645\u0633\u0628\u0642\u064b\u0627 \u0645\u0646 \u0628\u0631\u064a\u062f\u0643 \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a.
|
||||
identityProviderAlreadyLinkedMessage=\u0627\u0644\u0647\u0648\u064a\u0629 \u0627\u0644\u0645\u0648\u062d\u062f\u0629 \u0627\u0644\u062a\u064a \u0623\u0631\u062c\u0639\u0647\u0627 {0} \u0645\u0631\u062a\u0628\u0637\u0629 \u0645\u0633\u0628\u0642\u064b\u0627 \u0628\u0645\u0633\u062a\u062e\u062f\u0645 \u0622\u062e\u0631.
|
||||
confirmAccountLinking=\u062a\u0623\u0643\u064a\u062f \u0631\u0628\u0637 \u0627\u0644\u062d\u0633\u0627\u0628 {0} \u0645\u0646 \u0645\u0632\u0648\u062f \u0627\u0644\u062d\u0633\u0627\u0628\u0627\u062a {1} \u0645\u0639 \u062d\u0633\u0627\u0628\u0643.
|
||||
confirmEmailAddressVerification=\u062a\u0623\u0643\u062f \u0645\u0646 \u0635\u062d\u0629 \u0639\u0646\u0648\u0627\u0646 \u0627\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a {0}.
|
||||
confirmExecutionOfActions=\u0642\u0645 \u0628\u062a\u0646\u0641\u064a\u0630 \u0627\u0644\u0625\u062c\u0631\u0627\u0621\u0627\u062a \u0627\u0644\u062a\u0627\u0644\u064a\u0629
|
||||
backToApplication=» \u0627\u0644\u0639\u0648\u062f\u0629 \u0625\u0644\u0649 \u0627\u0644\u062a\u0637\u0628\u064a\u0642
|
||||
missingParameterMessage=\u0639\u0648\u0627\u0645\u0644 \u0645\u0641\u0642\u0648\u062f\u0629\: {0}
|
||||
clientNotFoundMessage=\u0627\u0644\u0639\u0645\u064a\u0644 \u063a\u064a\u0631 \u0645\u0648\u062c\u0648\u062f.
|
||||
clientDisabledMessage=\u0627\u0644\u0639\u0645\u064a\u0644 \u0645\u0639\u0637\u0644.
|
||||
invalidParameterMessage=\u0639\u0627\u0645\u0644 \u063a\u064a\u0631 \u0635\u0627\u0644\u062d\: {0}
|
||||
alreadyLoggedIn=\u0644\u0642\u062f \u0642\u0645\u062a \u0628\u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u062f\u062e\u0648\u0644 \u0645\u0633\u0628\u0642\u064b\u0627.
|
||||
differentUserAuthenticated=\u0644\u0642\u062f \u062a\u0645\u062a \u0645\u0635\u0627\u062f\u0642\u062a\u0643 \u0645\u0633\u0628\u0642\u064b\u0627 \u0643\u0645\u0633\u062a\u062e\u062f\u0645 \u0645\u062e\u062a\u0644\u0641 '' {0} '' \u0641\u064a \u0647\u0630\u0647 \u0627\u0644\u062c\u0644\u0633\u0629. \u0627\u0644\u0631\u062c\u0627\u0621 \u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u062e\u0631\u0648\u062c \u0623\u0648\u0644\u0627.
|
||||
brokerLinkingSessionExpired=\u062a\u0645 \u0637\u0644\u0628 \u0631\u0628\u0637 \u062d\u0633\u0627\u0628 \u0627\u0644\u0648\u0633\u064a\u0637\u060c \u0648\u0644\u0643\u0646 \u0627\u0644\u062c\u0644\u0633\u0629 \u0627\u0644\u062d\u0627\u0644\u064a\u0629 \u0644\u0645 \u062a\u0639\u062f \u0635\u0627\u0644\u062d\u0629.
|
||||
proceedWithAction=« \u0627\u0646\u0642\u0631 \u0647\u0646\u0627 \u0644\u0644\u0645\u062a\u0627\u0628\u0639\u0629
|
||||
acrNotFulfilled=\u0644\u0645 \u064a\u062a\u0645 \u0627\u0633\u062a\u064a\u0641\u0627\u0621 \u0645\u062a\u0637\u0644\u0628\u0627\u062a \u0627\u0644\u0645\u0635\u0627\u062f\u0642\u0629
|
||||
requiredAction.CONFIGURE_TOTP=\u0625\u0639\u062f\u0627\u062f \u062e\u0627\u0635\u064a\u0629 \u0631\u0645\u0632 \u0627\u0644\u062a\u062d\u0642\u0642
|
||||
requiredAction.TERMS_AND_CONDITIONS=\u0627\u0644\u0623\u062d\u0643\u0627\u0645 \u0648\u0627\u0644\u0634\u0631\u0648\u0637
|
||||
requiredAction.UPDATE_PASSWORD=\u062a\u062d\u062f\u064a\u062b \u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631
|
||||
requiredAction.UPDATE_PROFILE=\u062a\u062d\u062f\u064a\u062b \u0627\u0644\u0645\u0644\u0641 \u0627\u0644\u062a\u0639\u0631\u064a\u0641\u064a
|
||||
requiredAction.VERIFY_EMAIL=\u0627\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 \u0627\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a
|
||||
requiredAction.CONFIGURE_RECOVERY_AUTHN_CODES=\u062a\u0648\u0644\u064a\u062f \u0631\u0645\u0648\u0632 \u0645\u0635\u0627\u062f\u0642\u0629 \u0627\u0644\u0627\u0633\u062a\u0631\u062f\u0627\u062f
|
||||
requiredAction.webauthn-register-passwordless=\u0627\u0644\u0645\u0635\u0627\u062f\u0642\u0629 \u062f\u0648\u0646 \u0643\u0644\u0645\u0629 \u0645\u0631\u0648\u0631 \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 Webauthn
|
||||
invalidTokenRequiredActions=\u0627\u0644\u0625\u062c\u0631\u0627\u0621\u0627\u062a \u0627\u0644\u0645\u0637\u0644\u0648\u0628\u0629 \u0627\u0644\u0645\u062f\u0631\u062c\u0629 \u0641\u064a \u0627\u0644\u0631\u0627\u0628\u0637 \u063a\u064a\u0631 \u0635\u0627\u0644\u062d\u0629
|
||||
doX509Login=\u0633\u0648\u0641 \u064a\u062a\u0645 \u062a\u0633\u062c\u064a\u0644 \u062f\u062e\u0648\u0644\u0643 \u0643\u0640\:
|
||||
clientCertificate=\u0634\u0647\u0627\u062f\u0629 \u0627\u0644\u0639\u0645\u064a\u0644 X509\:
|
||||
noCertificate=[\u0628\u062f\u0648\u0646 \u0634\u0647\u0627\u062f\u0629]
|
||||
pageNotFound=\u0627\u0644\u0635\u0641\u062d\u0629 \u063a\u064a\u0631 \u0645\u0648\u062c\u0648\u062f\u0629
|
||||
internalServerError=\u062d\u062f\u062b \u062e\u0637\u0623 \u062f\u0627\u062e\u0644\u064a \u0641\u064a \u0627\u0644\u062e\u0627\u062f\u0645
|
||||
console-username=\u0627\u0633\u0645 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645\:
|
||||
console-password=\u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631\:
|
||||
console-otp=\u0643\u0644\u0645\u0629 \u0645\u0631\u0648\u0631 \u0644\u0645\u0631\u0629 \u0648\u0627\u062d\u062f\u0629\:
|
||||
console-new-password=\u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631 \u0627\u0644\u062c\u062f\u064a\u062f\u0629\:
|
||||
console-confirm-password=\u062a\u0623\u0643\u064a\u062f \u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631\:
|
||||
console-update-password=\u0645\u0637\u0644\u0648\u0628 \u062a\u062d\u062f\u064a\u062b \u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631 \u0627\u0644\u062e\u0627\u0635\u0629 \u0628\u0643.
|
||||
console-verify-email=\u062a\u062d\u062a\u0627\u062c \u0625\u0644\u0649 \u0627\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 \u0639\u0646\u0648\u0627\u0646 \u0628\u0631\u064a\u062f\u0643 \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a. \u0644\u0642\u062f \u0623\u0631\u0633\u0644\u0646\u0627 \u0628\u0631\u064a\u062f\u064b\u0627 \u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a\u064b\u0627 \u0625\u0644\u0649 {0} \u064a\u062d\u062a\u0648\u064a \u0639\u0644\u0649 \u0631\u0645\u0632 \u062a\u062d\u0642\u0642. \u0627\u0644\u0631\u062c\u0627\u0621 \u0625\u062f\u062e\u0627\u0644 \u0647\u0630\u0627 \u0627\u0644\u0631\u0645\u0632 \u0641\u064a \u0627\u0644\u0623\u0633\u0641\u0644.
|
||||
console-email-code=\u0631\u0645\u0632 \u0627\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0627\u0644\u0643\u062a\u0631\u0648\u0646\u064a\:
|
||||
console-accept-terms=\u0642\u0628\u0648\u0644 \u0627\u0644\u0634\u0631\u0648\u0637\u061f [\u0646/\u0644]\:
|
||||
console-accept=\u0646
|
||||
openshift.scope.user_info=\u0645\u0639\u0644\u0648\u0645\u0627\u062a \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645
|
||||
openshift.scope.user_check-access=\u0645\u0639\u0644\u0648\u0645\u0627\u062a \u0648\u0635\u0648\u0644 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645
|
||||
openshift.scope.user_full=\u0627\u0644\u0648\u0635\u0648\u0644 \u0627\u0644\u0643\u0627\u0645\u0644
|
||||
openshift.scope.list-projects=\u0642\u0627\u0626\u0645\u0629 \u0627\u0644\u0645\u0634\u0627\u0631\u064a\u0639
|
||||
saml.post-form.title=\u0625\u0639\u0627\u062f\u0629 \u062a\u0648\u062c\u064a\u0647 \u0627\u0644\u0645\u0635\u0627\u062f\u0642\u0629
|
||||
saml.post-form.message=\u064a\u062a\u0645 \u0627\u0644\u0622\u0646 \u0625\u0639\u0627\u062f\u0629 \u0627\u0644\u062a\u0648\u062c\u064a\u0647\u060c \u0627\u0644\u0631\u062c\u0627\u0621 \u0627\u0644\u0627\u0646\u062a\u0638\u0627\u0631.
|
||||
saml.post-form.js-disabled=\u062a\u0645 \u062a\u0639\u0637\u064a\u0644 \u062c\u0627\u0641\u0627\u0633\u0643\u0631\u0628\u062a. \u0646\u0648\u0635\u064a \u0628\u0634\u062f\u0629 \u0644\u062a\u0645\u0643\u064a\u0646\u0647. \u0627\u0646\u0642\u0631 \u0639\u0644\u0649 \u0627\u0644\u0632\u0631 \u0623\u062f\u0646\u0627\u0647 \u0644\u0644\u0645\u062a\u0627\u0628\u0639\u0629.
|
||||
saml.artifactResolutionServiceInvalidResponse=\u063a\u064a\u0631 \u0642\u0627\u062f\u0631 \u0639\u0644\u0649 \u0625\u064a\u062c\u0627\u062f \u0627\u0644\u0645\u0639\u0631\u0641 artifact.
|
||||
otp-display-name=\u062a\u0637\u0628\u064a\u0642 \u0645\u0635\u0627\u062f\u0642
|
||||
otp-help-text=\u0623\u062f\u062e\u0644 \u0631\u0645\u0632 \u0627\u0644\u062a\u062d\u0642\u0642 \u0627\u0644\u0635\u0627\u062f\u0631\u0629 \u0645\u0646 \u0627\u0644\u062a\u0637\u0628\u064a\u0642 \u0627\u0644\u0645\u0635\u0627\u062f\u0642.
|
||||
otp-reset-description=\u0623\u064a \u0625\u0639\u062f\u0627\u062f \u0644\u062e\u0627\u0635\u064a\u0629 \u0631\u0645\u0632 \u0627\u0644\u062a\u062d\u0642\u0642 \u062a\u0631\u063a\u0628 \u0628\u0625\u0632\u0627\u0644\u062a\u0647\u061f
|
||||
password-display-name=\u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631
|
||||
password-help-text=\u0633\u062c\u0644 \u0627\u0644\u062f\u062e\u0648\u0644 \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631.
|
||||
auth-username-form-display-name=\u0627\u0633\u0645 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645
|
||||
auth-username-form-help-text=\u0633\u062c\u0644 \u0627\u0644\u062f\u062e\u0648\u0644 \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u0627\u0633\u0645 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645
|
||||
auth-username-password-form-display-name=\u0627\u0633\u0645 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645 \u0648\u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631
|
||||
auth-username-password-form-help-text=\u0633\u062c\u0644 \u0627\u0644\u062f\u062e\u0648\u0644 \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u0627\u0633\u0645 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645 \u0648\u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631.
|
||||
auth-recovery-authn-code-form-display-name=\u0631\u0645\u0632 \u0645\u0635\u0627\u062f\u0642\u0629 \u0627\u0644\u0627\u0633\u062a\u0631\u062f\u0627\u062f
|
||||
auth-recovery-authn-code-form-help-text=\u0623\u062f\u062e\u0644 \u0631\u0645\u0632 \u0645\u0635\u0627\u062f\u0642\u0629 \u0627\u0644\u0627\u0633\u062a\u0631\u062f\u0627\u062f \u0645\u0646 \u0642\u0627\u0626\u0645\u0629 \u062a\u0645 \u0625\u0646\u0634\u0627\u0624\u0647\u0627 \u0645\u0633\u0628\u0642\u064b\u0627.
|
||||
auth-recovery-code-info-message=\u0623\u062f\u062e\u0644 \u0631\u0645\u0632 \u0645\u0635\u0627\u062f\u0642\u0629 \u0627\u0644\u0627\u0633\u062a\u0631\u062f\u0627\u062f \u0627\u0644\u0645\u062d\u062f\u062f.
|
||||
auth-recovery-code-prompt=\u0631\u0645\u0632 \u0645\u0635\u0627\u062f\u0642\u0629 \u0627\u0644\u0627\u0633\u062a\u0631\u062f\u0627\u062f \#{0}
|
||||
auth-recovery-code-header=\u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u062f\u062e\u0648\u0644 \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u0631\u0645\u0632 \u0645\u0635\u0627\u062f\u0642\u0629 \u0627\u0644\u0627\u0633\u062a\u0631\u062f\u0627\u062f
|
||||
recovery-codes-error-invalid=\u0631\u0645\u0632 \u0645\u0635\u0627\u062f\u0642\u0629 \u0627\u0644\u0627\u0633\u062a\u0631\u062f\u0627\u062f \u063a\u064a\u0631 \u0635\u0627\u0644\u062d
|
||||
recovery-code-config-header=\u0631\u0645\u0648\u0632 \u0645\u0635\u0627\u062f\u0642\u0629 \u0627\u0644\u0627\u0633\u062a\u0631\u062f\u0627\u062f
|
||||
recovery-code-config-warning-title=\u0644\u0646 \u062a\u0638\u0647\u0631 \u0631\u0645\u0648\u0632 \u0627\u0644\u0627\u0633\u062a\u0631\u062f\u0627\u062f \u0647\u0630\u0647 \u0645\u0631\u0629 \u0623\u062e\u0631\u0649 \u0628\u0639\u062f \u0645\u063a\u0627\u062f\u0631\u0629 \u0627\u0644\u0635\u0641\u062d\u0629
|
||||
recovery-code-config-warning-message=\u062a\u0623\u0643\u062f \u0645\u0646 \u0637\u0628\u0627\u0639\u062a\u0647\u0627 \u0623\u0648 \u062a\u0646\u0632\u064a\u0644\u0647\u0627 \u0623\u0648 \u0646\u0633\u062e\u0647\u0627 \u0625\u0644\u0649 \u0645\u062f\u064a\u0631 \u0643\u0644\u0645\u0627\u062a \u0627\u0644\u0645\u0631\u0648\u0631 \u0648\u0627\u062d\u062a\u0641\u0638 \u0628\u0647\u0627. \u0633\u064a\u0624\u062f\u064a \u0625\u0644\u063a\u0627\u0621 \u0647\u0630\u0627 \u0627\u0644\u0625\u0639\u062f\u0627\u062f \u0625\u0644\u0649 \u0625\u0632\u0627\u0644\u0629 \u0631\u0645\u0648\u0632 \u0645\u0635\u0627\u062f\u0642\u0629 \u0627\u0644\u0627\u0633\u062a\u0631\u062f\u0627\u062f \u0647\u0630\u0647 \u0645\u0646 \u062d\u0633\u0627\u0628\u0643.
|
||||
recovery-codes-print=\u0637\u0628\u0627\u0639\u0629
|
||||
recovery-codes-download=\u062a\u0646\u0632\u064a\u0644
|
||||
recovery-codes-copy=\u0646\u0633\u062e
|
||||
recovery-codes-copied=\u062a\u0645 \u0627\u0644\u0646\u0633\u062e
|
||||
recovery-codes-confirmation-message=\u0644\u0642\u062f \u0642\u0645\u062a \u0628\u062d\u0641\u0638 \u0647\u0630\u0647 \u0627\u0644\u0631\u0645\u0648\u0632 \u0641\u064a \u0645\u0643\u0627\u0646 \u0645\u0627 \u0622\u0645\u0646
|
||||
recovery-codes-action-complete=\u0625\u0643\u0645\u0627\u0644 \u0627\u0644\u0625\u0639\u062f\u0627\u062f
|
||||
recovery-codes-action-cancel=\u0625\u0644\u063a\u0627\u0621 \u0627\u0644\u0625\u0639\u062f\u0627\u062f
|
||||
recovery-codes-download-file-header=\u0627\u062d\u062a\u0641\u0638 \u0628\u0631\u0645\u0648\u0632 \u0645\u0635\u0627\u062f\u0642\u0629 \u0627\u0644\u0627\u0633\u062a\u0631\u062f\u0627\u062f \u0647\u0630\u0647 \u0641\u064a \u0645\u0643\u0627\u0646 \u0622\u0645\u0646.
|
||||
recovery-codes-download-file-description=\u0631\u0645\u0648\u0632 \u0645\u0635\u0627\u062f\u0642\u0629 \u0627\u0644\u0627\u0633\u062a\u0631\u062f\u0627\u062f \u0647\u064a \u0631\u0645\u0648\u0632 \u0645\u0631\u0648\u0631 \u062a\u0633\u062a\u062e\u062f\u0645 \u0645\u0631\u0629 \u0648\u0627\u062d\u062f\u0629 \u0648\u062a\u0633\u0645\u062d \u0644\u0643 \u0628\u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u062f\u062e\u0648\u0644 \u0625\u0644\u0649 \u062d\u0633\u0627\u0628\u0643 \u0625\u0630\u0627 \u0644\u0645 \u064a\u0643\u0646 \u0644\u062f\u064a\u0643 \u0648\u0635\u0648\u0644 \u0625\u0644\u0649 \u0627\u0644\u0645\u0635\u062f\u0642 \u0627\u0644\u062e\u0627\u0635 \u0628\u0643.
|
||||
recovery-codes-download-file-date=\u062a\u0645 \u0625\u0646\u0634\u0627\u0621 \u0647\u0630\u0647 \u0627\u0644\u0631\u0645\u0648\u0632 \u0641\u064a
|
||||
recovery-codes-label-default=\u0631\u0645\u0648\u0632 \u0645\u0635\u0627\u062f\u0642\u0629 \u0627\u0644\u0627\u0633\u062a\u0631\u062f\u0627\u062f
|
||||
webauthn-display-name=\u0645\u0641\u062a\u0627\u062d \u0623\u0645\u0627\u0646
|
||||
webauthn-help-text=\u0627\u0633\u062a\u062e\u062f\u0645 \u0645\u0641\u062a\u0627\u062d \u0627\u0644\u0623\u0645\u0627\u0646 \u0644\u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u062f\u062e\u0648\u0644.
|
||||
webauthn-passwordless-display-name=\u0645\u0641\u062a\u0627\u062d \u0623\u0645\u0627\u0646
|
||||
webauthn-passwordless-help-text=\u0627\u0633\u062a\u062e\u062f\u0645 \u0645\u0641\u062a\u0627\u062d \u0627\u0644\u0623\u0645\u0627\u0646 \u0644\u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u062f\u062e\u0648\u0644 \u062f\u0648\u0646 \u0643\u0644\u0645\u0629 \u0645\u0631\u0648\u0631.
|
||||
webauthn-login-title=\u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u062f\u062e\u0648\u0644 \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u0645\u0641\u062a\u0627\u062d \u0627\u0644\u0623\u0645\u0627\u0646
|
||||
webauthn-registration-title=\u062a\u0633\u062c\u064a\u0644 \u0645\u0641\u062a\u0627\u062d \u0623\u0645\u0627\u0646
|
||||
webauthn-available-authenticators=\u0645\u0641\u0627\u062a\u064a\u062d \u0627\u0644\u0623\u0645\u0627\u0646 \u0627\u0644\u0645\u062a\u0627\u062d\u0629
|
||||
webauthn-unsupported-browser-text=\u0627\u0644\u062e\u0627\u0635\u064a\u0629 WebAuthn \u063a\u064a\u0631 \u0645\u062f\u0639\u0648\u0645\u0629 \u0641\u064a \u0647\u0630\u0627 \u0627\u0644\u0645\u062a\u0635\u0641\u062d. \u062c\u0631\u0628 \u0645\u062a\u0635\u0641\u062d \u0622\u062e\u0631 \u0623\u0648 \u062a\u0648\u0627\u0635\u0644 \u0645\u0639 \u0645\u0633\u0624\u0648\u0644 \u0627\u0644\u0646\u0638\u0627\u0645.
|
||||
webauthn-doAuthenticate=\u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u062f\u062e\u0648\u0644 \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u0645\u0641\u062a\u0627\u062d \u0627\u0644\u0623\u0645\u0627\u0646
|
||||
webauthn-createdAt-label=\u062a\u0645 \u0625\u0646\u0634\u0627\u0624\u0647 \u0641\u064a
|
||||
webauthn-error-title=\u062e\u0637\u0623 \u0641\u064a \u0645\u0641\u062a\u0627\u062d \u0627\u0644\u0623\u0645\u0627\u0646
|
||||
webauthn-error-registration=\u0641\u0634\u0644 \u0641\u064a \u062a\u0633\u062c\u064a\u0644 \u0645\u0641\u062a\u0627\u062d \u0627\u0644\u0623\u0645\u0627\u0646 \u0627\u0644\u062e\u0627\u0635 \u0628\u0643.<br/> {0}
|
||||
webauthn-error-api-get=\u0641\u0634\u0644\u062a \u0627\u0644\u0645\u0635\u0627\u062f\u0642\u0629 \u0628\u0648\u0627\u0633\u0637\u0629 \u0645\u0641\u062a\u0627\u062d \u0627\u0644\u0623\u0645\u0627\u0646.<br/> {0}
|
||||
webauthn-error-different-user=\u0623\u0648\u0644 \u0645\u0633\u062a\u062e\u062f\u0645 \u062a\u0645\u062a \u0645\u0635\u0627\u062f\u0642\u062a\u0647 \u0644\u064a\u0633 \u0647\u0648 \u0627\u0644\u0634\u062e\u0635 \u0627\u0644\u0630\u064a \u062a\u0645\u062a \u0645\u0635\u0627\u062f\u0642\u062a\u0647 \u0628\u0648\u0627\u0633\u0637\u0629 \u0645\u0641\u062a\u0627\u062d \u0627\u0644\u0623\u0645\u0627\u0646.
|
||||
webauthn-error-auth-verification=\u0646\u062a\u064a\u062c\u0629 \u0645\u0635\u0627\u062f\u0642\u0629 \u0645\u0641\u062a\u0627\u062d \u0627\u0644\u0623\u0645\u0627\u0646 \u063a\u064a\u0631 \u0635\u0627\u0644\u062d\u0629.<br/> {0}
|
||||
webauthn-error-register-verification=\u0646\u062a\u064a\u062c\u0629 \u062a\u0633\u062c\u064a\u0644 \u0645\u0641\u062a\u0627\u062d \u0627\u0644\u0623\u0645\u0627\u0646 \u063a\u064a\u0631 \u0635\u0627\u0644\u062d\u0629.<br/> {0}
|
||||
webauthn-error-user-not-found=\u0645\u0633\u062a\u062e\u062f\u0645 \u063a\u064a\u0631 \u0645\u0639\u0631\u0648\u0641 \u062a\u0645\u062a \u0645\u0635\u0627\u062f\u0642\u062a\u0647 \u0628\u0648\u0627\u0633\u0637\u0629 \u0645\u0641\u062a\u0627\u062d \u0627\u0644\u0623\u0645\u0627\u0646.
|
||||
identity-provider-redirector=\u0627\u062a\u0635\u0644 \u0628\u0645\u0632\u0648\u062f \u062d\u0633\u0627\u0628\u0627\u062a \u0622\u062e\u0631
|
||||
identity-provider-login-label=\u0623\u0648 \u0642\u0645 \u0628\u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u062f\u062e\u0648\u0644 \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645
|
||||
idp-email-verification-display-name=\u062a\u0623\u0643\u064a\u062f \u0627\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a
|
||||
idp-email-verification-help-text=\u0631\u0628\u0637 \u062d\u0633\u0627\u0628\u0643 \u0639\u0646 \u0637\u0631\u064a\u0642 \u0627\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 \u0635\u062d\u0629 \u0627\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a \u0627\u0644\u062e\u0627\u0635 \u0628\u0643.
|
||||
idp-username-password-form-display-name=\u0627\u0633\u0645 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645 \u0648 \u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631
|
||||
idp-username-password-form-help-text=\u0631\u0628\u0637 \u062d\u0633\u0627\u0628\u0643 \u0639\u0646 \u0637\u0631\u064a\u0642 \u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u062f\u062e\u0648\u0644.
|
||||
finalDeletionConfirmation=\u0625\u0630\u0627 \u0642\u0645\u062a \u0628\u062d\u0630\u0641 \u062d\u0633\u0627\u0628\u0643\u060c \u0641\u0644\u0627 \u064a\u0645\u0643\u0646 \u0627\u0633\u062a\u0639\u0627\u062f\u062a\u0647. \u0644\u0644\u0627\u062d\u062a\u0641\u0627\u0638 \u0628\u062d\u0633\u0627\u0628\u0643\u060c \u0627\u0646\u0642\u0631 \u0641\u0648\u0642 \u0625\u0644\u063a\u0627\u0621.
|
||||
irreversibleAction=\u0647\u0630\u0627 \u0627\u0644\u0625\u062c\u0631\u0627\u0621 \u0644\u0627 \u0631\u062c\u0639\u0629 \u0641\u064a\u0647
|
||||
deleteAccountConfirm=\u062a\u0623\u0643\u064a\u062f \u062d\u0630\u0641 \u0627\u0644\u062d\u0633\u0627\u0628
|
||||
deletingImplies=\u062d\u0630\u0641 \u062d\u0633\u0627\u0628\u0643 \u064a\u0639\u0646\u064a \u0636\u0645\u0646\u0627\u064b\:
|
||||
errasingData=\u0645\u062d\u0648 \u062c\u0645\u064a\u0639 \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a \u0627\u0644\u062e\u0627\u0635\u0629 \u0628\u0643
|
||||
loggingOutImmediately=\u062a\u0633\u062c\u064a\u0644 \u062e\u0631\u0648\u062c\u0643 \u0639\u0644\u0649 \u0627\u0644\u0641\u0648\u0631
|
||||
accountUnusable=\u0623\u064a \u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u0644\u0627\u062d\u0642 \u0644\u0644\u062a\u0637\u0628\u064a\u0642 \u0644\u0646 \u064a\u0643\u0648\u0646 \u0645\u0645\u0643\u0646\u0627\u064b \u0645\u0639 \u0647\u0630\u0627 \u0627\u0644\u062d\u0633\u0627\u0628
|
||||
userDeletedSuccessfully=\u062a\u0645 \u062d\u0630\u0641 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645 \u0628\u0646\u062c\u0627\u062d
|
||||
access-denied=\u062a\u0645 \u0631\u0641\u0636 \u0627\u0644\u0648\u0635\u0648\u0644
|
||||
access-denied-when-idp-auth=\u062a\u0645 \u0631\u0641\u0636 \u0627\u0644\u0627\u062a\u0641\u0627\u0642\u064a\u0629 \u0623\u062b\u0646\u0627\u0621 \u0627\u0644\u0645\u0635\u0627\u062f\u0642\u0629 \u0645\u0639 {0}
|
||||
frontchannel-logout.title=\u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u062e\u0631\u0648\u062c
|
||||
frontchannel-logout.message=\u0623\u0646\u062a \u062a\u0642\u0648\u0645 \u0628\u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u062e\u0631\u0648\u062c \u0645\u0646 \u0627\u0644\u062a\u0637\u0628\u064a\u0642\u0627\u062a \u0627\u0644\u062a\u0627\u0644\u064a\u0629
|
||||
logoutConfirmTitle=\u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u062e\u0631\u0648\u062c
|
||||
logoutConfirmHeader=\u0647\u0644 \u062a\u0648\u062f \u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u062e\u0631\u0648\u062c\u061f
|
||||
doLogout=\u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u062e\u0631\u0648\u062c
|
||||
readOnlyUsernameMessage=\u0644\u0627 \u064a\u0645\u0643\u0646\u0643 \u062a\u062d\u062f\u064a\u062b \u0627\u0633\u0645 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645 \u0627\u0644\u062e\u0627\u0635 \u0628\u0643 \u0644\u0623\u0646\u0647 \u0644\u0644\u0642\u0631\u0627\u0621\u0629 \u0641\u0642\u0637.
|
||||
shouldBeEqual={0} \u064a\u062c\u0628 \u0623\u0646 \u064a\u0643\u0648\u0646 \u0645\u0633\u0627\u0648\u064a\u064b\u0627 \u0644\u0640 {1}
|
||||
shouldBeDifferent={0} \u064a\u062c\u0628 \u0623\u0646 \u064a\u0643\u0648\u0646 \u0645\u062e\u062a\u0644\u0641\u064b\u0627 \u0639\u0646 {1}
|
||||
shouldMatchPattern=`/\u064a\u062c\u0628 \u0623\u0646 \u064a\u0637\u0627\u0628\u0642 \u0627\u0644\u0646\u0645\u0637\: `/{0}/
|
||||
mustBeAnInteger=\u064a\u062c\u0628 \u0623\u0646 \u064a\u0643\u0648\u0646 \u0639\u062f\u062f\u064b\u0627 \u0635\u062d\u064a\u062d\u064b\u0627
|
||||
notAValidOption=\u0644\u064a\u0633 \u062e\u064a\u0627\u0631\u064b\u0627 \u0635\u0627\u0644\u062d\u064b\u0627
|
||||
selectAnOption=\u0627\u062e\u062a\u0631 \u062e\u064a\u0627\u0631\u064b\u0627
|
||||
remove=\u0625\u0632\u0627\u0644\u0629
|
||||
addValue=\u0623\u0636\u0641 \u0642\u064a\u0645\u0629
|
||||
languages=\u0627\u0644\u0644\u063a\u0627\u062a
|
@ -0,0 +1,441 @@
|
||||
|
||||
doLogIn=Inicia la sessi\u00f3
|
||||
doRegister=Registreu-vos
|
||||
doRegisterSecurityKey=Registreu-vos
|
||||
doCancel=Cancel\u00b7la
|
||||
doSubmit=Envia
|
||||
doBack=Enrere
|
||||
doYes=S\u00ed
|
||||
doNo=No
|
||||
doContinue=Continua
|
||||
doIgnore=Ignora
|
||||
doAccept=Accepta
|
||||
doDecline=Rebutja
|
||||
doForgotPassword=Heu oblidat la vostra contrasenya?
|
||||
doClickHere=Feu clic aqu\u00ed
|
||||
doImpersonate=Suplanta
|
||||
doTryAgain=Torna-ho a provar
|
||||
doTryAnotherWay=Prova d''una altra manera
|
||||
doConfirmDelete=Confirma la supressi\u00f3
|
||||
errorDeletingAccount=S''ha produ\u00eft un error en eliminar el compte
|
||||
deletingAccountForbidden=No teniu permisos suficients per a eliminar el vostre compte, contacteu amb l''administrador.
|
||||
kerberosNotConfigured=Kerberos no configurat
|
||||
kerberosNotConfiguredTitle=Kerberos no configurat
|
||||
bypassKerberosDetail=O b\u00e9 no esteu identificat mitjan\u00e7ant Kerberos o el vostre navegador no est\u00e0 configurat per a identificar-se mitjan\u00e7ant Kerberos. Feu clic per a identificar-vos per un altre mitj\u00e0
|
||||
kerberosNotSetUp=Kerberos no est\u00e0 configurat. No us podeu identificar.
|
||||
registerTitle=Registreu-vos
|
||||
loginAccountTitle=Accediu al vostre compte
|
||||
loginTitle=Inicia la sessi\u00f3 a {0}
|
||||
loginTitleHtml={0}
|
||||
impersonateTitle={0} Suplanta l''usuari
|
||||
impersonateTitleHtml=<strong>{0}</strong> Suplanta l''usuari
|
||||
realmChoice=Domini
|
||||
unknownUser=Usuari desconegut
|
||||
loginTotpTitle=Configuraci\u00f3 de l''autenticador m\u00f2bil
|
||||
loginProfileTitle=Actualitzaci\u00f3 de la informaci\u00f3 del compte
|
||||
loginIdpReviewProfileTitle=Actualitzaci\u00f3 de la informaci\u00f3 del compte
|
||||
loginTimeout=S''ha excedit el temps per a realitzar una entrada. L''entrada comen\u00e7ar\u00e0 des del principi.
|
||||
reauthenticate=Torneu a identificar-vos per a continuar
|
||||
oauthGrantTitle=Concedeix l''acc\u00e9s a {0}
|
||||
oauthGrantTitleHtml={0}
|
||||
oauthGrantInformation=Assegureu-vos que confieu en {0} assabentant-vos de com {0} gestionar\u00e0 les vostres dades.
|
||||
oauthGrantReview=Podeu revisar les
|
||||
oauthGrantTos=condicions del servei.
|
||||
oauthGrantPolicy=pol\u00edtica de privacitat.
|
||||
errorTitle=Ho lamentem...
|
||||
errorTitleHtml=Ho <strong>lamentem</strong>...
|
||||
emailVerifyTitle=Verificaci\u00f3 del correu electr\u00f2nic
|
||||
emailForgotTitle=Heu oblidat la contrasenya?
|
||||
updateEmailTitle=Actualitza el correu electr\u00f2nic
|
||||
emailUpdateConfirmationSentTitle=S''ha enviat un correu de confirmaci\u00f3
|
||||
emailUpdateConfirmationSent=S''ha enviat un correu electr\u00f2nic de confirmaci\u00f3 a {0}. Seguiu les instruccions per a completar l''actualitzaci\u00f3 del correu electr\u00f2nic.
|
||||
emailUpdatedTitle=S''ha actualitzat el correu electr\u00f2nic
|
||||
emailUpdated=S''ha actualitzat correctament el correu electr\u00f2nic del compte a {0}.
|
||||
updatePasswordTitle=Actualitza la contrasenya
|
||||
codeSuccessTitle=Codi d''\u00e8xit
|
||||
codeErrorTitle=Codi d''error\\\: {0}
|
||||
displayUnsupported=El tipus de visualitzaci\u00f3 demanat no \u00e9s compatible
|
||||
browserRequired=Es requereix un navegador per a entrar
|
||||
browserContinue=Es requereix un navegador per a completar l''entrada
|
||||
browserContinuePrompt=Voleu obrir el navegador i continuar l''entrada? [s/n]\:
|
||||
browserContinueAnswer=s
|
||||
usb=USB
|
||||
nfc=NFC
|
||||
bluetooth=Bluetooth
|
||||
internal=Interna
|
||||
unknown=Desconegut
|
||||
termsTitle=Termes i condicions
|
||||
termsText=
|
||||
termsPlainText=Termes i condicions a definir.
|
||||
termsAcceptanceRequired=Heu d''acceptar els nostres termes i condicions.
|
||||
acceptTerms=Accepto els termes i condicions
|
||||
recaptchaFailed=Recaptcha inv\u00e0lid
|
||||
recaptchaNotConfigured=El Recaptcha \u00e9s obligatori per\u00f2 no est\u00e0 configurat
|
||||
consentDenied=Consentiment rebutjat.
|
||||
noAccount=Usuari nou?
|
||||
username=Usuari
|
||||
usernameOrEmail=Usuari o adre\u00e7a electr\u00f2nica
|
||||
firstName=Nom
|
||||
givenName=Nom de pila
|
||||
fullName=Nom complet
|
||||
lastName=Cognoms
|
||||
familyName=Cognoms
|
||||
email=Email
|
||||
password=Contrasenya
|
||||
passwordConfirm=Confirma la contrasenya
|
||||
passwordNew=Contrasenya nova
|
||||
passwordNewConfirm=Confirma la contrasenya nova
|
||||
rememberMe=Recorda''m
|
||||
authenticatorCode=Codi d''un sol \u00fas
|
||||
address=Adre\u00e7a
|
||||
street=Carrer
|
||||
locality=Ciutat o municipi
|
||||
region=Estat, prov\u00edncia o regi\u00f3
|
||||
postal_code=Codi postal
|
||||
country=Pa\u00eds
|
||||
emailVerified=Adre\u00e7a electr\u00f2nica verificada
|
||||
website=P\u00e0gina web
|
||||
phoneNumber=N\u00famero de tel\u00e8fon
|
||||
phoneNumberVerified=N\u00famero de tel\u00e8fon verificat
|
||||
gender=G\u00e8nere
|
||||
birthday=Natalici
|
||||
zoneinfo=Fus horari
|
||||
gssDelegationCredential=Credencial de delegaci\u00f3 GSS
|
||||
logoutOtherSessions=Surt d''altres dispositius
|
||||
profileScopeConsentText=Perfil d''usuari
|
||||
emailScopeConsentText=Correu electr\u00f2nic
|
||||
addressScopeConsentText=Adre\u00e7a
|
||||
phoneScopeConsentText=N\u00famero de tel\u00e8fon
|
||||
offlineAccessScopeConsentText=Acc\u00e9s fora de l\u00ednia
|
||||
samlRoleListScopeConsentText=Els meus rols
|
||||
rolesScopeConsentText=Rols d''usuari
|
||||
restartLoginTooltip=Torna a iniciar l''entrada
|
||||
loginTotpIntro=Heu de configurar un generador de contrasenyes d''un sol \u00fas per a accedir a aquest compte
|
||||
loginTotpStep1=Instal\u00b7leu una de les aplicacions seg\u00fcents al vostre m\u00f2bil\:
|
||||
loginTotpStep2=Obriu l''aplicaci\u00f3 i escanegeu el codi de barres\:
|
||||
loginTotpStep3=Introdu\u00efu el codi d''un sol \u00fas prove\u00eft per l''aplicaci\u00f3 i feu clic a Envia per a finalitzar la configuraci\u00f3.
|
||||
loginTotpStep3DeviceName=Introdu\u00efu un nom de dispositiu per a ajudar-vos a gestionar els vostres dispositius OTP.
|
||||
loginTotpManualStep2=Obriu l''aplicaci\u00f3 i introdu\u00efu la clau\:
|
||||
loginTotpManualStep3=Utilitzeu els valors de configuraci\u00f3 seg\u00fcents si l''aplicaci\u00f3 permet establir-los\:
|
||||
loginTotpUnableToScan=No podeu escanejar?
|
||||
loginTotpScanBarcode=Voleu escanejar el codi de barres?
|
||||
loginCredential=Credencial
|
||||
loginOtpOneTime=Codi d''un sol \u00fas
|
||||
loginTotpType=Tipus
|
||||
loginTotpAlgorithm=Algoritme
|
||||
loginTotpDigits=D\u00edgits
|
||||
loginTotpInterval=Interval
|
||||
loginTotpCounter=Comptador
|
||||
loginTotpDeviceName=Nom del dispositiu
|
||||
loginTotp.totp=Basat en temps
|
||||
loginTotp.hotp=Basat en comptador
|
||||
totpAppFreeOTPName=FreeOTP
|
||||
totpAppGoogleName=Google Authenticator
|
||||
totpAppMicrosoftAuthenticatorName=Microsoft Authenticator
|
||||
loginChooseAuthenticator=Seleccioneu un m\u00e8tode d''entrada
|
||||
oauthGrantRequest=Voleu permetre aquests privilegis d''acc\u00e9s?
|
||||
inResource=a
|
||||
oauth2DeviceVerificationTitle=Entrada per dispositiu
|
||||
verifyOAuth2DeviceUserCode=Introdu\u00efu el codi prove\u00eft pel vostre dispositiu i feu clic a Envia
|
||||
oauth2DeviceInvalidUserCodeMessage=El codi no \u00e9s v\u00e0lid, torneu-ho a provar.
|
||||
oauth2DeviceExpiredUserCodeMessage=El codi ha caducat. Torneu al vostre dispositiu i intenteu-ho de nou.
|
||||
oauth2DeviceVerificationCompleteHeader=Inici de sessi\u00f3 per dispositiu correcte
|
||||
oauth2DeviceVerificationCompleteMessage=Podeu tancar aquesta finestra del navegador i tornar al vostre dispositiu.
|
||||
oauth2DeviceVerificationFailedHeader=Ha fallat l''inici de sessi\u00f3 per dispositiu
|
||||
oauth2DeviceVerificationFailedMessage=Podeu tancar aquesta finestra del navegador i tornar al vostre dispositiu per a tornar a connectar.
|
||||
oauth2DeviceConsentDeniedMessage=S''ha rebutjat el consentiment per a connectar al dispositiu.
|
||||
oauth2DeviceAuthorizationGrantDisabledMessage=El client no est\u00e0 autoritzat a iniciar una concessi\u00f3 d''autoritzaci\u00f3 de dispositiu OAuth 2.0. El flux \u00e9s inhabilitat per al client.
|
||||
emailVerifyInstruction1=S''ha enviat un correu electr\u00f2nic a la vostra adre\u00e7a de correu electr\u00f2nic {0} amb instruccions per a verificar-la.
|
||||
emailVerifyInstruction2=No heu rebut un codi de verificaci\u00f3 al vostre correu electr\u00f2nic?
|
||||
emailVerifyInstruction3=per a tornar a enviar el correu electr\u00f2nic.
|
||||
emailLinkIdpTitle=Enlla\u00e7 a {0}
|
||||
emailLinkIdp1=S''ha enviat un correu electr\u00f2nic amb instruccions per a enlla\u00e7ar el compte {0} {1} amb el vostre compte {2}.
|
||||
emailLinkIdp2=No heu rebut un codi de verificaci\u00f3 al vostre correu electr\u00f2nic?
|
||||
emailLinkIdp3=per a tornar a enviar el correu electr\u00f2nic.
|
||||
emailLinkIdp4=si ja heu verificat el correu electr\u00f2nic en un altre navegador
|
||||
emailLinkIdp5=per a continuar.
|
||||
backToLogin=« Torna a la identificaci\u00f3
|
||||
emailInstruction=Introdu\u00efu el vostre nom d''usuari o adre\u00e7a de correu electr\u00f2nic i us enviarem instruccions per a establir una contrasenya nova.
|
||||
emailInstructionUsername=Introdu\u00efu el vostre nom d''usuari i us enviarem instruccions per a establir una contrasenya nova.
|
||||
copyCodeInstruction=Copieu i enganxeu aquest codi a la vostra aplicaci\u00f3\:
|
||||
pageExpiredTitle=La p\u00e0gina ha caducat
|
||||
pageExpiredMsg1=Per a tornar a iniciar el proc\u00e9s d''entrada
|
||||
pageExpiredMsg2=Per a continuar el proc\u00e9s d''entrada
|
||||
personalInfo=Informaci\u00f3 personal\:
|
||||
role_admin=Administraci\u00f3
|
||||
role_realm-admin=Administrador del domini
|
||||
role_create-realm=Crea un domini
|
||||
role_create-client=Crea un client
|
||||
role_view-realm=Visualitza el domini
|
||||
role_view-users=Visualitza els usuaris
|
||||
role_view-applications=Visualitza les aplicacions
|
||||
role_view-clients=Visualitza els clients
|
||||
role_view-events=Visualitza els esdeveniments
|
||||
role_view-identity-providers=Visualitza els prove\u00efdors d''identitat
|
||||
role_manage-realm=Gestiona el domini
|
||||
role_manage-users=Gestiona els usuaris
|
||||
role_manage-applications=Gestiona les aplicacions
|
||||
role_manage-identity-providers=Gestiona els prove\u00efdors d''identitat
|
||||
role_manage-clients=Gestiona els clients
|
||||
role_manage-events=Gestiona els esdeveniments
|
||||
role_view-profile=Visualitza el perfil
|
||||
role_manage-account=Gestiona el compte
|
||||
role_manage-account-links=Gestiona els enlla\u00e7os del compte
|
||||
role_read-token=Llegeix el codi d''autoritzaci\u00f3
|
||||
role_offline-access=Acc\u00e9s fora de l\u00ednia
|
||||
client_account=Compte
|
||||
client_account-console=Consola del compte
|
||||
client_security-admin-console=Consola d''administraci\u00f3 de seguretat
|
||||
client_admin-cli=CLI d''administraci\u00f3
|
||||
client_realm-management=Gesti\u00f3 del domini
|
||||
client_broker=Agent
|
||||
requiredFields=Camps requerits
|
||||
invalidUserMessage=El nom d''usuari o contrasenya no s\u00f3n v\u00e0lids.
|
||||
invalidUsernameMessage=El nom d''usuari no \u00e9s v\u00e0lid.
|
||||
invalidUsernameOrEmailMessage=El nom d''usuari o correu electr\u00f2nic no s\u00f3n v\u00e0lids.
|
||||
invalidPasswordMessage=La contrasenya no \u00e9s v\u00e0lida.
|
||||
invalidEmailMessage=L''adre\u00e7a de correu electr\u00f2nic no \u00e9s v\u00e0lida.
|
||||
accountDisabledMessage=El compte est\u00e0 inhabilitat, contacteu amb l''administrador.
|
||||
accountTemporarilyDisabledMessage=El compte est\u00e0 temporalment inhabilitat, contacteu amb l''administrador o intenteu-ho de nou m\u00e9s tard.
|
||||
expiredCodeMessage=S''ha esgotat el temps m\u00e0xim per a la identificaci\u00f3. Identifiqueu-vos de nou.
|
||||
expiredActionMessage=L''acci\u00f3 ha caducat. Continueu ara amb l''entrada.
|
||||
expiredActionTokenNoSessionMessage=L''acci\u00f3 ha caducat.
|
||||
expiredActionTokenSessionExistsMessage=L''acci\u00f3 ha caducat. Si us plau, comenceu de nou.
|
||||
sessionLimitExceeded=Hi ha massa sessions.
|
||||
missingFirstNameMessage=Indiqueu el vostre nom.
|
||||
missingLastNameMessage=Indiqueu els vostres cognoms.
|
||||
missingEmailMessage=Indiqueu la vostra adre\u00e7a de correu electr\u00f2nic.
|
||||
missingUsernameMessage=Indiqueu el vostre nom d''usuari.
|
||||
missingPasswordMessage=Indiqueu la vostra contrasenya.
|
||||
missingTotpMessage=Indiqueu el vostre codi d''autenticaci\u00f3.
|
||||
missingTotpDeviceNameMessage=Indiqueu el nom del vostre dispositiu.
|
||||
notMatchPasswordMessage=Les contrasenyes no coincideixen.
|
||||
error-invalid-value=El valor no \u00e9s v\u00e0lid.
|
||||
error-invalid-blank=Especifiqueu un valor.
|
||||
error-empty=Especifiqueu un valor.
|
||||
error-invalid-length=La llarg\u00e0ria ha de ser d''entre {1} i {2}.
|
||||
error-invalid-length-too-short=La llarg\u00e0ria m\u00ednima \u00e9s de {1}.
|
||||
error-invalid-length-too-long=La llarg\u00e0ria m\u00e0xima \u00e9s de {2}.
|
||||
error-invalid-email=L''adre\u00e7a de correu electr\u00f2nic no \u00e9s v\u00e0lida.
|
||||
error-invalid-number=El nombre no \u00e9s v\u00e0lid.
|
||||
error-number-out-of-range=El n\u00famero ha de ser entre {1} i {2}.
|
||||
error-number-out-of-range-too-small=El nombre ha de tindre un valor m\u00ednim de {1}.
|
||||
error-number-out-of-range-too-big=El nombre ha de tindre un valor m\u00e0xim de {2}.
|
||||
error-pattern-no-match=El valor no \u00e9s v\u00e0lid.
|
||||
error-invalid-uri=L''URL no \u00e9s v\u00e0lid.
|
||||
error-invalid-uri-scheme=L''esquema d''URL no \u00e9s v\u00e0lid.
|
||||
error-invalid-uri-fragment=El fragment d''URL no \u00e9s v\u00e0lid.
|
||||
error-user-attribute-required=Especifiqueu aquest camp.
|
||||
error-invalid-date=La data no \u00e9s v\u00e0lida.
|
||||
error-user-attribute-read-only=Aquest camp \u00e9s nom\u00e9s de lectura.
|
||||
error-username-invalid-character=El valor cont\u00e9 un car\u00e0cter no v\u00e0lid.
|
||||
error-person-name-invalid-character=El valor cont\u00e9 un car\u00e0cter no v\u00e0lid.
|
||||
error-reset-otp-missing-id=Seleccioneu una configuraci\u00f3 d''OTP.
|
||||
invalidPasswordExistingMessage=La contrasenya actual no \u00e9s v\u00e0lida.
|
||||
invalidPasswordBlacklistedMessage=La contrasenya no \u00e9s v\u00e0lida\: est\u00e0 en una llista negra.
|
||||
invalidPasswordConfirmMessage=La confirmaci\u00f3 de contrasenya no coincideix.
|
||||
invalidTotpMessage=El codi d''autenticaci\u00f3 no \u00e9s v\u00e0lid.
|
||||
usernameExistsMessage=El nom d''usuari ja existeix.
|
||||
emailExistsMessage=El correu electr\u00f2nic ja existeix.
|
||||
federatedIdentityExistsMessage=Ja existeix un usuari amb {0} {1}. Entreu al gestor de comptes per a enlla\u00e7ar el compte.
|
||||
federatedIdentityUnavailableMessage=L''usuari {0} autenticat amb el prove\u00efdor d''identitat {1} no existeix. Contacteu amb l''administrador.
|
||||
federatedIdentityUnmatchedEssentialClaimMessage=El codi d''autoritzaci\u00f3 de l''ID em\u00e8s pel prove\u00efdor d''identitat no concorda amb la declaraci\u00f3 essencial configurada. Contacteu amb l''administrador.
|
||||
confirmLinkIdpTitle=El compte ja existeix
|
||||
federatedIdentityConfirmLinkMessage=Ja existeix un usuari amb {0} {1}. Com voleu continuar?
|
||||
federatedIdentityConfirmReauthenticateMessage=Identifiqueu-vos per a enlla\u00e7ar el vostre compte amb {0}
|
||||
nestedFirstBrokerFlowMessage=L''usuari {0} de {1} no est\u00e0 enlla\u00e7at a cap usuari conegut.
|
||||
confirmLinkIdpReviewProfile=Revisa el perfil
|
||||
confirmLinkIdpContinue=Afegeix al compte existent
|
||||
configureTotpMessage=Heu de configurar l''aplicaci\u00f3 m\u00f2bil d''autenticaci\u00f3 per a activar el compte.
|
||||
configureBackupCodesMessage=Heu de configurar els codis de recuperaci\u00f3 per a activar el compte.
|
||||
updateProfileMessage=Heu d''actualitzar el vostre perfil d''usuari per a activar el compte.
|
||||
updatePasswordMessage=Heu de canviar la contrasenya per a activar el compte.
|
||||
updateEmailMessage=Heu d''actualitzar la vostra adre\u00e7a de correu electr\u00f2nic per a activar el compte.
|
||||
resetPasswordMessage=Heu de canviar la contrasenya.
|
||||
verifyEmailMessage=Heu de verificar la vostra adre\u00e7a de correu electr\u00f2nic per a activar el compte.
|
||||
linkIdpMessage=Heu de verificar la vostra adre\u00e7a electr\u00f2nica per a enlla\u00e7ar el compte amb {0}.
|
||||
emailSentMessage=Aviat haur\u00edeu de rebre un correu electr\u00f2nic amb m\u00e9s instruccions.
|
||||
emailSendErrorMessage=Ha fallat l''enviament del correu electr\u00f2nic, intenteu-ho de nou m\u00e9s tard.
|
||||
accountUpdatedMessage=S''ha actualitzat el compte.
|
||||
accountPasswordUpdatedMessage=S''ha actualitzat la contrasenya.
|
||||
delegationCompleteHeader=Inici de sessi\u00f3 correcte
|
||||
delegationCompleteMessage=Podeu tancar aquesta finestra del navegador i tornar a la vostra aplicaci\u00f3 de consola.
|
||||
delegationFailedHeader=Ha fallat l''inici de sessi\u00f3
|
||||
delegationFailedMessage=Podeu tancar aquesta finestra del navegador i tornar a la vostra aplicaci\u00f3 de consola per a tornar a connectar.
|
||||
noAccessMessage=Sense acc\u00e9s
|
||||
invalidPasswordMinLengthMessage=La contrasenya no \u00e9s v\u00e0lida\: la llarg\u00e0ria m\u00ednima \u00e9s {0}.
|
||||
invalidPasswordMaxLengthMessage=La contrasenya no \u00e9s v\u00e0lida\: la llarg\u00e0ria m\u00e0xima \u00e9s {0}.
|
||||
invalidPasswordMinDigitsMessage=La contrasenya no \u00e9s v\u00e0lida\: ha de contenir almenys {0} car\u00e0cters num\u00e8rics.
|
||||
invalidPasswordMinLowerCaseCharsMessage=La contrasenya no \u00e9s v\u00e0lida\: ha de contenir almenys {0} lletres min\u00fascules.
|
||||
invalidPasswordMinUpperCaseCharsMessage=La contrasenya no \u00e9s v\u00e0lida\: ha de contenir almenys {0} lletres maj\u00fascules.
|
||||
invalidPasswordMinSpecialCharsMessage=Contrasenya incorrecta\: ha de contenir almenys {0} car\u00e0cters especials.
|
||||
invalidPasswordNotUsernameMessage=La contrasenya no \u00e9s v\u00e0lida\: no pot ser igual al nom d''usuari.
|
||||
invalidPasswordNotEmailMessage=La contrasenya no \u00e9s v\u00e0lida\: no pot ser igual al correu electr\u00f2nic.
|
||||
invalidPasswordRegexPatternMessage=La contrasenya no \u00e9s v\u00e0lida\: no coincideix amb el patr\u00f3 de l''expressi\u00f3 regular.
|
||||
invalidPasswordHistoryMessage=Contrasenya incorrecta\: no pot ser igual a cap de les \u00faltimes {0} contrasenyes.
|
||||
invalidPasswordGenericMessage=La contrasenya no \u00e9s v\u00e0lida\: la contrasenya nova no coincideix amb les pol\u00edtiques de contrasenya.
|
||||
failedToProcessResponseMessage=No s''ha pogut processar la resposta
|
||||
httpsRequiredMessage=Es requereix HTTPS
|
||||
realmNotEnabledMessage=El domini no est\u00e0 habilitat
|
||||
invalidRequestMessage=Petici\u00f3 incorrecta
|
||||
successLogout=No esteu identificat
|
||||
failedLogout=Ha fallat la desconnexi\u00f3.
|
||||
unknownLoginRequesterMessage=Sol\u00b7licitant d''identificaci\u00f3 desconegut
|
||||
loginRequesterNotEnabledMessage=El sol\u00b7licitant d''inici de sessi\u00f3 est\u00e0 desactivat
|
||||
bearerOnlyMessage=Les aplicacions Bearer-only no poden iniciar sessi\u00f3 des del navegador.
|
||||
standardFlowDisabledMessage=El client no est\u00e0 autoritzat a iniciar una entrada per navegador amb el tipus de resposta donada. El flux est\u00e0ndard est\u00e0 inhabilitat per al client.
|
||||
implicitFlowDisabledMessage=El client no est\u00e0 autoritzat a iniciar una entrada per navegador amb el tipus de resposta donada. El flux impl\u00edcit est\u00e0 inhabilitat per al client.
|
||||
invalidRedirectUriMessage=L''URI de redirecci\u00f3 no \u00e9s v\u00e0lid
|
||||
unsupportedNameIdFormatMessage=El NameIDFormat no est\u00e0 implementat
|
||||
invalidRequesterMessage=El sol\u00b7licitant no \u00e9s v\u00e0lid
|
||||
registrationNotAllowedMessage=El registre no est\u00e0 perm\u00e8s
|
||||
resetCredentialNotAllowedMessage=El reinici de les credencials no est\u00e0 perm\u00e8s
|
||||
permissionNotApprovedMessage=Perm\u00eds no aprovat.
|
||||
noRelayStateInResponseMessage=Sense estat de retransmissi\u00f3 en la resposta del prove\u00efdor d''identitat.
|
||||
insufficientPermissionMessage=Permisos insuficients per a enlla\u00e7ar identitats.
|
||||
couldNotProceedWithAuthenticationRequestMessage=No s''ha pogut continuar amb la petici\u00f3 d''autenticaci\u00f3 al prove\u00efdor d''identitat.
|
||||
couldNotObtainTokenMessage=No s''ha pogut obtenir el codi d''autoritzaci\u00f3 del prove\u00efdor d''identitat.
|
||||
unexpectedErrorRetrievingTokenMessage=Error inesperat en obtenir el codi d''autoritzaci\u00f3 del prove\u00efdor d''identitat
|
||||
unexpectedErrorHandlingResponseMessage=Error inesperat processant la resposta del prove\u00efdor d''identitat.
|
||||
identityProviderAuthenticationFailedMessage=Ha fallat l''autenticaci\u00f3. No ha estat possible autenticar-se en el prove\u00efdor d''identitat.
|
||||
couldNotSendAuthenticationRequestMessage=No s''ha pogut enviar la petici\u00f3 d''identificaci\u00f3 al prove\u00efdor d''identitat.
|
||||
unexpectedErrorHandlingRequestMessage=Error inesperat durant la petici\u00f3 d''identificaci\u00f3 al prove\u00efdor d''identitat.
|
||||
invalidAccessCodeMessage=Codi d''acc\u00e9s no v\u00e0lid.
|
||||
sessionNotActiveMessage=La sessi\u00f3 no est\u00e0 activa
|
||||
invalidCodeMessage=S''ha produ\u00eft un error, identifiqueu-vos de nou des de la vostra aplicaci\u00f3.
|
||||
cookieNotFoundMessage=No s''ha trobat la galeta. Assegureu-vos que les galetes estan habilitades al vostre navegador.
|
||||
insufficientLevelOfAuthentication=El nivell d''autenticaci\u00f3 sol\u00b7licitat no s''ha satisfet.
|
||||
identityProviderUnexpectedErrorMessage=Error no esperat intentant autenticar en el prove\u00efdor d''identitat.
|
||||
identityProviderMissingStateMessage=Manca un par\u00e0metre d''estat a la resposta del prove\u00efdor d''identitat.
|
||||
identityProviderInvalidResponseMessage=La resposta del prove\u00efdor d''identitat no \u00e9s v\u00e0lida.
|
||||
identityProviderInvalidSignatureMessage=La signatura de la resposta del prove\u00efdor d''identitat no \u00e9s v\u00e0lida.
|
||||
identityProviderNotFoundMessage=No s''ha trobat cap prove\u00efdor d''identitat.
|
||||
identityProviderLinkSuccess=Heu verificat el vostre correu electr\u00f2nic correctament. Torneu al vostre navegador original i continueu amb l''entrada all\u00e0.
|
||||
staleCodeMessage=Aquesta p\u00e0gina ja no \u00e9s v\u00e0lida, torneu a la vostra aplicaci\u00f3 i torneu a entrar
|
||||
realmSupportsNoCredentialsMessage=El domini no suporta cap tipus de credencials.
|
||||
credentialSetupRequired=No es pot entrar, es requereix la configuraci\u00f3 de credencials.
|
||||
identityProviderNotUniqueMessage=El domini suporta m\u00faltiples prove\u00efdors d''identitat. No s''ha pogut determinar el prove\u00efdor d''identitat que hauria de ser utilitzat per identificar-se.
|
||||
emailVerifiedMessage=S''ha verificat el vostre correu electr\u00f2nic.
|
||||
staleEmailVerificationLink=L''enlla\u00e7 en qu\u00e8 heu clicat \u00e9s un enlla\u00e7 antic que ja no \u00e9s v\u00e0lid. Potser ja heu verificat el vostre correu electr\u00f2nic.
|
||||
identityProviderAlreadyLinkedMessage=La identitat federada retornada per {0} ja est\u00e0 enlla\u00e7ada a un altre usuari.
|
||||
confirmAccountLinking=Confirmeu l''enlla\u00e7at del compte {0} del prove\u00efdor d''identitat {1} amb el vostre compte.
|
||||
confirmEmailAddressVerification=Confirmeu la validesa de l''adre\u00e7a de correu electr\u00f2nic {0}.
|
||||
confirmExecutionOfActions=Completeu les accions seg\u00fcents
|
||||
backToApplication=« Torna a l''aplicaci\u00f3
|
||||
missingParameterMessage=Manquen par\u00e0metres\\\: {0}
|
||||
clientNotFoundMessage=No s''ha trobat el client.
|
||||
clientDisabledMessage=El client \u00e9s inhabilitat.
|
||||
invalidParameterMessage=El par\u00e0metre no \u00e9s v\u00e0lid\\\: {0}
|
||||
alreadyLoggedIn=Ja esteu identificat.
|
||||
differentUserAuthenticated=Ja esteu identificat amb l''usuari diferent \u00ab{0}\u00bb en aquesta sessi\u00f3. Desconnecteu primer.
|
||||
brokerLinkingSessionExpired=S''ha sol\u00b7licitat l''enlla\u00e7at d''un compte agent, per\u00f2 la sessi\u00f3 actual ja no \u00e9s v\u00e0lida.
|
||||
proceedWithAction=» Feu clic aqu\u00ed per a continuar
|
||||
acrNotFulfilled=Els requisits d''autenticaci\u00f3 no s''han satisfet
|
||||
requiredAction.CONFIGURE_TOTP=Configura l''OTP
|
||||
requiredAction.TERMS_AND_CONDITIONS=Termes i condicions
|
||||
requiredAction.UPDATE_PASSWORD=Actualitza la contrasenya
|
||||
requiredAction.UPDATE_PROFILE=Actualitza el perfil
|
||||
requiredAction.VERIFY_EMAIL=Verifica el correu electr\u00f2nic
|
||||
requiredAction.CONFIGURE_RECOVERY_AUTHN_CODES=Genera codis de recuperaci\u00f3
|
||||
requiredAction.webauthn-register-passwordless=Registre sense contrasenya WebAuthn
|
||||
invalidTokenRequiredActions=Les accions requerides a l''enlla\u00e7 no s\u00f3n v\u00e0lides
|
||||
doX509Login=Us identificareu com a\\\:
|
||||
clientCertificate=Certificat de client X509\\\:
|
||||
noCertificate=[Cap certificat]
|
||||
pageNotFound=No s''ha trobat la p\u00e0gina
|
||||
internalServerError=S''ha produ\u00eft un error intern
|
||||
console-username=Nom d''usuari\:
|
||||
console-password=Contrasenya\:
|
||||
console-otp=Contrasenya d''un sol \u00fas\:
|
||||
console-new-password=Contrasenya nova\:
|
||||
console-confirm-password=Confirma la contrasenya\:
|
||||
console-update-password=Es requereix que actualitzeu la vostra contrasenya.
|
||||
console-verify-email=Heu de verificar l''adre\u00e7a de correu electr\u00f2nic. Hem enviat un correu electr\u00f2nic a {0} que cont\u00e9 un codi de verificaci\u00f3. Introdu\u00efu aquest codi al camp seg\u00fcent.
|
||||
console-email-code=Codi de verificaci\u00f3\:
|
||||
console-accept-terms=Voleu acceptar els termes? [s/n]\:
|
||||
console-accept=s
|
||||
openshift.scope.user_info=Informaci\u00f3 d''usuari
|
||||
openshift.scope.user_check-access=Informaci\u00f3 d''accessos d''usuari
|
||||
openshift.scope.user_full=Acc\u00e9s total
|
||||
openshift.scope.list-projects=Llista els projectes
|
||||
saml.post-form.title=Redirecci\u00f3 d''autenticaci\u00f3
|
||||
saml.post-form.message=S''est\u00e0 redirigint, espereu.
|
||||
saml.post-form.js-disabled=El JavaScript est\u00e0 inhabilitat. Us recomanem que l''habiliteu. Feu clic al bot\u00f3 de sota per a continuar.
|
||||
saml.artifactResolutionServiceInvalidResponse=No s''ha pogut resoldre l''artefacte.
|
||||
otp-display-name=Aplicaci\u00f3 d''autenticaci\u00f3
|
||||
otp-help-text=Introdu\u00efu el codi de verificaci\u00f3 de l''aplicaci\u00f3 d''autenticaci\u00f3.
|
||||
otp-reset-description=Quina configuraci\u00f3 d''OTP voleu suprimir?
|
||||
password-display-name=Contrasenya
|
||||
password-help-text=Entreu introduint la vostra contrasenya.
|
||||
auth-username-form-display-name=Nom d''usuari
|
||||
auth-username-form-help-text=Comenceu a identificar-vos introduint el vostre nom d''usuari
|
||||
auth-username-password-form-display-name=Nom d''usuari i contrasenya
|
||||
auth-username-password-form-help-text=Entreu introduint el vostre nom d''usuari i contrasenya.
|
||||
auth-recovery-authn-code-form-display-name=Codi d''autenticaci\u00f3 de recuperaci\u00f3
|
||||
auth-recovery-authn-code-form-help-text=Introdu\u00efu un codi d''autenticaci\u00f3 de recuperaci\u00f3 d''una llista pr\u00e8viament generada.
|
||||
auth-recovery-code-info-message=Introdu\u00efu el codi de recuperaci\u00f3 especificat.
|
||||
auth-recovery-code-prompt=Codi de recuperaci\u00f3 \#{0}
|
||||
auth-recovery-code-header=Entreu amb un codi d''autenticaci\u00f3 de recuperaci\u00f3
|
||||
recovery-codes-error-invalid=El codi d''autenticaci\u00f3 de recuperaci\u00f3 no \u00e9s v\u00e0lid
|
||||
recovery-code-config-header=Codis d''autenticaci\u00f3 de recuperaci\u00f3
|
||||
recovery-code-config-warning-title=Aquests codis de recuperaci\u00f3 no es tornaran a mostrar despr\u00e9s que abandoneu la p\u00e0gina
|
||||
recovery-code-config-warning-message=Assegureu-vos que els imprimiu, baixeu o copieu a un gestor de contrasenyes i els deseu de manera segura. Cancel\u00b7lar aquesta configuraci\u00f3 eliminar\u00e0 aquests codis de recuperaci\u00f3 del vostre compte.
|
||||
recovery-codes-print=Imprimeix
|
||||
recovery-codes-download=Baixa
|
||||
recovery-codes-copy=Copia
|
||||
recovery-codes-copied=S''ha copiat
|
||||
recovery-codes-confirmation-message=He desat aquests codis en algun lloc segur
|
||||
recovery-codes-action-complete=Completa la configuraci\u00f3
|
||||
recovery-codes-action-cancel=Cancel\u00b7la la configuraci\u00f3
|
||||
recovery-codes-download-file-header=Deseu aquests codis de recuperaci\u00f3 en un lloc segur.
|
||||
recovery-codes-download-file-description=Els codis de recuperaci\u00f3 s\u00f3n codis d''acc\u00e9s d''un sol \u00fas que vos permeten entrar al vostre compte si no teniu acc\u00e9s al vostre autenticador.
|
||||
recovery-codes-download-file-date=Aquests codis s''han generat el
|
||||
recovery-codes-label-default=Codis de recuperaci\u00f3
|
||||
webauthn-display-name=Clau de seguretat
|
||||
webauthn-help-text=Utilitzeu la vostra clau de seguretat per a entrar.
|
||||
webauthn-passwordless-display-name=Clau de seguretat
|
||||
webauthn-passwordless-help-text=Utilitzeu la vostra clau de seguretat per a entrar sense contrasenya.
|
||||
webauthn-login-title=Entrada amb clau de seguretat
|
||||
webauthn-registration-title=Registre d''una clau de seguretat
|
||||
webauthn-available-authenticators=Claus de seguretat disponibles
|
||||
webauthn-unsupported-browser-text=El WebAuthn no est\u00e0 implementat per aquest navegador. Proveu-ho amb un altre o contacteu amb l''administrador.
|
||||
webauthn-doAuthenticate=Entra amb una clau de seguretat
|
||||
webauthn-createdAt-label=Creada
|
||||
webauthn-error-title=Error de la clau de seguretat
|
||||
webauthn-error-registration=No s''ha pogut registrar la vostra clau de seguretat.<br/> {0}
|
||||
webauthn-error-api-get=No s''ha pogut identificar amb la clau de seguretat.<br/> {0}
|
||||
webauthn-error-different-user=L''usuari identificat primer no \u00e9s l''autenticat per la clau de seguretat.
|
||||
webauthn-error-auth-verification=El resultat de l''autenticaci\u00f3 amb clau de seguretat no \u00e9s v\u00e0lid.<br/>{0}
|
||||
webauthn-error-register-verification=El resultat del registre amb clau de seguretat no \u00e9s v\u00e0lid.<br/>{0}
|
||||
webauthn-error-user-not-found=L''usuari identificat per la clau de seguretat \u00e9s desconegut.
|
||||
identity-provider-redirector=Connecta amb un altre prove\u00efdor d''identitat
|
||||
identity-provider-login-label=O entra amb
|
||||
idp-email-verification-display-name=Verificaci\u00f3 de correu electr\u00f2nic
|
||||
idp-email-verification-help-text=Enllaceu el compte verificant la vostra adre\u00e7a de correu electr\u00f2nic.
|
||||
idp-username-password-form-display-name=Nom d''usuari i contrasenya
|
||||
idp-username-password-form-help-text=Enllaceu el vostre compte mitjan\u00e7ant una identificaci\u00f3.
|
||||
finalDeletionConfirmation=Si elimineu el vostre compte, no es podr\u00e0 restaurar. Per a mantenir el vostre compte, feu clic en Cancel\u00b7la.
|
||||
irreversibleAction=Aquesta acci\u00f3 \u00e9s irreversible
|
||||
deleteAccountConfirm=Confirmaci\u00f3 de supressi\u00f3 del compte
|
||||
deletingImplies=La supressi\u00f3 del vostre compte implica\:
|
||||
errasingData=Eliminar totes les vostres dades
|
||||
loggingOutImmediately=Desconnectar-vos immediatament
|
||||
accountUnusable=Qualsevol \u00fas posterior de l''aplicaci\u00f3 no ser\u00e0 possible amb aquest compte
|
||||
userDeletedSuccessfully=S''ha eliminat l''usuari correctament
|
||||
access-denied=S''ha denegat l''acc\u00e9s
|
||||
access-denied-when-idp-auth=S''ha denegat l''acc\u00e9s mentre s''autenticava amb {0}
|
||||
frontchannel-logout.title=Sortida
|
||||
frontchannel-logout.message=Esteu sortint de les aplicacions seg\u00fcents
|
||||
logoutConfirmTitle=Sortida
|
||||
logoutConfirmHeader=Esteu segur que voleu sortir?
|
||||
doLogout=Surt
|
||||
readOnlyUsernameMessage=No podeu actualitzar el vostre nom d''usuari perqu\u00e8 \u00e9s de nom\u00e9s lectura.
|
||||
shouldBeEqual={0} hauria de ser igual a {1}
|
||||
shouldBeDifferent={0} hauria de ser diferent de {1}
|
||||
shouldMatchPattern=El patr\u00f3 hauria de coincidir\: `/{0}/`
|
||||
mustBeAnInteger=Ha de ser un enter
|
||||
notAValidOption=No \u00e9s una opci\u00f3 v\u00e0lida
|
||||
selectAnOption=Selecciona una opci\u00f3
|
||||
remove=Elimina
|
||||
addValue=Afegeix valor
|
||||
languages=Idiomes
|
@ -0,0 +1,443 @@
|
||||
|
||||
doLogIn=P\u0159ihl\u00e1sit se
|
||||
doRegister=Registrovat se
|
||||
doRegisterSecurityKey=Registrovat se
|
||||
doCancel=Zru\u0161it
|
||||
doSubmit=Odeslat
|
||||
doBack=Zp\u011bt
|
||||
doYes=Ano
|
||||
doNo=Ne
|
||||
doContinue=Pokra\u010dovat
|
||||
doIgnore=Ignorovat
|
||||
doAccept=Potvrdit
|
||||
doDecline=Zam\u00edtnout
|
||||
doForgotPassword=Zapomenut\u00e9 heslo?
|
||||
doClickHere=Klikn\u011bte zde
|
||||
doImpersonate=Zosobnit
|
||||
doTryAgain=Zkusit znovu
|
||||
doTryAnotherWay=Zkusit jin\u00fdm zp\u016fsobem
|
||||
doConfirmDelete=Potvrdit odstran\u011bn\u00ed
|
||||
errorDeletingAccount=Nastala chyba p\u0159i odstra\u0148ov\u00e1n\u00ed \u00fa\u010dtu
|
||||
deletingAccountForbidden=Nem\u00e1te dostate\u010dn\u00e1 opr\u00e1vn\u011bn\u00ed k odstran\u011bn\u00ed va\u0161eho vlastn\u00edho \u00fa\u010dtu, kontaktujte administr\u00e1tora.
|
||||
kerberosNotConfigured=Kerberos nen\u00ed nakonfigurov\u00e1n
|
||||
kerberosNotConfiguredTitle=Kerberos nen\u00ed nakonfigurov\u00e1n
|
||||
bypassKerberosDetail=Bu\u010f nejste p\u0159ihl\u00e1\u0161eni p\u0159es Kerberos nebo v\u00e1\u0161 prohl\u00ed\u017ee\u010d nen\u00ed nastaven pro p\u0159ihl\u00e1\u0161en\u00ed Kerberos. Klepnut\u00edm na tla\u010d\u00edtko pokra\u010dujte k p\u0159ihl\u00e1\u0161en\u00ed jin\u00fdmi zp\u016fsoby
|
||||
kerberosNotSetUp=Kerberos nen\u00ed nastaven. Nem\u016f\u017eete se p\u0159ihl\u00e1sit.
|
||||
registerTitle=Registrovat
|
||||
loginAccountTitle=P\u0159ihl\u00e1sit k va\u0161emu \u00fa\u010dtu
|
||||
loginTitle=P\u0159ihl\u00e1sit do {0}
|
||||
loginTitleHtml={0}
|
||||
impersonateTitle={0} Zosobnit u\u017eivatele
|
||||
impersonateTitleHtml=<strong>{0}</strong> Zosobnit u\u017eivatele
|
||||
realmChoice=Realm
|
||||
unknownUser=Nezn\u00e1m\u00fd u\u017eivatel
|
||||
loginTotpTitle=Nastaven\u00ed autentik\u00e1toru OTP
|
||||
loginProfileTitle=Aktualizovat informace o \u00fa\u010dtu
|
||||
loginIdpReviewProfileTitle=Aktualizovat informace o \u00fa\u010dtu
|
||||
loginTimeout=P\u0159ihla\u0161ov\u00e1n\u00ed trvalo p\u0159\u00edli\u0161 dlouho. P\u0159ihla\u0161ovac\u00ed proces za\u010d\u00edn\u00e1 od za\u010d\u00e1tku.
|
||||
reauthenticate=Pro pokra\u010dov\u00e1n\u00ed se pros\u00edm znovu p\u0159ihlaste
|
||||
oauthGrantTitle=Ud\u011blit p\u0159\u00edstup {0}
|
||||
oauthGrantTitleHtml={0}
|
||||
oauthGrantInformation=Ujist\u011bte se, \u017ee d\u016fv\u011b\u0159ujete {0}. Zjist\u011bte, jak {0} nakl\u00e1d\u00e1 s daty u\u017eivatel\u016f.
|
||||
oauthGrantReview=M\u016f\u017eete si p\u0159e\u010d\u00edst
|
||||
oauthGrantTos=podm\u00ednky pou\u017e\u00edv\u00e1n\u00ed slu\u017eby.
|
||||
oauthGrantPolicy=z\u00e1sady ochrany osobn\u00edch \u00fadaj\u016f.
|
||||
errorTitle=Je n\u00e1m l\u00edto...
|
||||
errorTitleHtml=<strong>Omlouv\u00e1me</strong> se ...
|
||||
emailVerifyTitle=Ov\u011b\u0159en\u00ed e-mailu
|
||||
emailForgotTitle=Zapomn\u011bli jste heslo?
|
||||
updateEmailTitle=Aktualizace e-mailu
|
||||
emailUpdateConfirmationSentTitle=Potvrzovac\u00ed e-mail odesl\u00e1n
|
||||
emailUpdateConfirmationSent=Potvrzovac\u00ed e-mail byl odesl\u00e1n na adresu {0}. Pro dokon\u010den\u00ed aktualizace e-mailu postupujte podle pokyn\u016f.
|
||||
emailUpdatedTitle=E-mail byl aktualizov\u00e1n
|
||||
emailUpdated=E-mail \u00fa\u010dtu byl \u00fasp\u011b\u0161n\u011b aktualizov\u00e1n na {0}.
|
||||
updatePasswordTitle=Aktualizace hesla
|
||||
codeSuccessTitle=K\u00f3d \u00fasp\u011bchu
|
||||
codeErrorTitle=K\u00f3d chyby\: {0}
|
||||
displayUnsupported=Po\u017eadovan\u00fd typ zobrazen\u00ed nen\u00ed podporovan\u00fd
|
||||
browserRequired=Pro p\u0159ihl\u00e1\u0161en\u00ed je vy\u017eadov\u00e1n prohl\u00ed\u017ee\u010d
|
||||
browserContinue=Pro dokon\u010den\u00ed p\u0159ihl\u00e1\u0161en\u00ed je vy\u017eadov\u00e1n prohl\u00ed\u017ee\u010d
|
||||
browserContinuePrompt=Otev\u0159\u00edt prohl\u00ed\u017ee\u010d a pokra\u010dovat v p\u0159ihl\u00e1\u0161en\u00ed? [a/n]\:
|
||||
browserContinueAnswer=a
|
||||
usb=USB
|
||||
nfc=NFC
|
||||
bluetooth=Bluetooth
|
||||
internal=Intern\u00ed
|
||||
unknown=Nezn\u00e1m\u00e9
|
||||
termsTitle=Smluvn\u00ed podm\u00ednky
|
||||
termsText=
|
||||
termsPlainText=Smluvn\u00ed podm\u00ednky k odsouhlasen\u00ed.
|
||||
termsAcceptanceRequired=Mus\u00edte souhlasit s na\u0161imi smluvn\u00edmi podm\u00ednkami.
|
||||
acceptTerms=Souhlas\u00edm se smluvn\u00edmi podm\u00ednkami
|
||||
recaptchaFailed=Neplatn\u00e1 Recaptcha
|
||||
recaptchaNotConfigured=Recaptcha je vy\u017eadov\u00e1na, ale nen\u00ed nakonfigurov\u00e1na
|
||||
consentDenied=Souhlas byl zam\u00edtnut.
|
||||
noAccount=Nov\u00fd u\u017eivatel?
|
||||
username=P\u0159ihla\u0161ovac\u00ed jm\u00e9no
|
||||
usernameOrEmail=P\u0159ihla\u0161ovac\u00ed jm\u00e9no nebo e-mail
|
||||
firstName=K\u0159estn\u00ed jm\u00e9no
|
||||
givenName=K\u0159estn\u00ed jm\u00e9na
|
||||
fullName=Cel\u00e9 jm\u00e9no
|
||||
lastName=P\u0159\u00edjmen\u00ed
|
||||
familyName=P\u0159\u00edjmen\u00ed
|
||||
email=E-mail
|
||||
password=Heslo
|
||||
passwordConfirm=Potvrdit heslo
|
||||
passwordNew=Nov\u00e9 heslo
|
||||
passwordNewConfirm=Potvrdit nov\u00e9 heslo
|
||||
hidePassword=Skr\u00fdt heslo
|
||||
showPassword=Zobrazit heslo
|
||||
rememberMe=Pamatovat si m\u011b
|
||||
authenticatorCode=Jednor\u00e1zov\u00fd k\u00f3d
|
||||
address=Adresa
|
||||
street=Ulice
|
||||
locality=M\u011bsto
|
||||
region=Kraj
|
||||
postal_code=PS\u010c
|
||||
country=St\u00e1t
|
||||
emailVerified=E-mail ov\u011b\u0159en
|
||||
website=Webov\u00e1 str\u00e1nka
|
||||
phoneNumber=Telefonn\u00ed \u010d\u00edslo
|
||||
phoneNumberVerified=Telefonn\u00ed \u010d\u00edslo ov\u011b\u0159eno
|
||||
gender=Pohlav\u00ed
|
||||
birthday=Datum narozen\u00ed
|
||||
zoneinfo=\u010casov\u00e1 z\u00f3na
|
||||
gssDelegationCredential=GSS Delegovan\u00e9 Opr\u00e1vn\u011bn\u00ed
|
||||
logoutOtherSessions=Odhl\u00e1sit se z ostatn\u00edch za\u0159\u00edzen\u00ed
|
||||
profileScopeConsentText=U\u017eivatelsk\u00fd profil
|
||||
emailScopeConsentText=E-mailov\u00e1 adresa
|
||||
addressScopeConsentText=Adresa
|
||||
phoneScopeConsentText=Telefonn\u00ed \u010d\u00edslo
|
||||
offlineAccessScopeConsentText=P\u0159\u00edstup offline
|
||||
samlRoleListScopeConsentText=Moje role
|
||||
rolesScopeConsentText=U\u017eivatelsk\u00e9 role
|
||||
restartLoginTooltip=Za\u010d\u00edt s p\u0159ihla\u0161ov\u00e1n\u00edm od za\u010d\u00e1tku
|
||||
loginTotpIntro=Mus\u00edte si nakonfigurovat gener\u00e1tor jednor\u00e1zov\u00fdch k\u00f3d\u016f (OTP) pro p\u0159\u00edstup k \u00fa\u010dtu
|
||||
loginTotpStep1=Nainstalujte do mobilu jednu z n\u00e1sleduj\u00edc\u00edch aplikac\u00ed
|
||||
loginTotpStep2=Otev\u0159ete aplikaci a naskenujte \u010d\u00e1rov\u00fd k\u00f3d
|
||||
loginTotpStep3=Zadejte jednor\u00e1zov\u00fd k\u00f3d poskytnut\u00fd aplikac\u00ed a klepnut\u00edm na tla\u010d\u00edtko Odeslat dokon\u010dete nastaven\u00ed
|
||||
loginTotpStep3DeviceName=Zadejte n\u00e1zev za\u0159\u00edzen\u00ed pro jednodu\u0161\u0161\u00ed spr\u00e1vu jednor\u00e1zov\u00fdch k\u00f3d\u016f (OTP) za\u0159\u00edzen\u00ed.
|
||||
loginTotpManualStep2=Otev\u0159ete aplikaci a zadejte kl\u00ed\u010d
|
||||
loginTotpManualStep3=Pou\u017eijte n\u00e1sleduj\u00edc\u00ed hodnoty konfigurace, pokud aplikace umo\u017e\u0148uje jejich nastaven\u00ed
|
||||
loginTotpUnableToScan=Nelze skenovat?
|
||||
loginTotpScanBarcode=Skenovat \u010d\u00e1rov\u00fd k\u00f3d?
|
||||
loginCredential=P\u0159ihla\u0161ovac\u00ed \u00fadaje
|
||||
loginOtpOneTime=Jednor\u00e1zov\u00fd k\u00f3d
|
||||
loginTotpType=Typ
|
||||
loginTotpAlgorithm=Algoritmus
|
||||
loginTotpDigits=\u010c\u00edslice
|
||||
loginTotpInterval=Interval
|
||||
loginTotpCounter=Po\u010d\u00edtadlo
|
||||
loginTotpDeviceName=N\u00e1zev za\u0159\u00edzen\u00ed
|
||||
loginTotp.totp=Zalo\u017eeno na \u010dase
|
||||
loginTotp.hotp=Zalo\u017eeno na po\u010d\u00edtadle
|
||||
totpAppFreeOTPName=FreeOTP
|
||||
totpAppGoogleName=Google Authenticator
|
||||
totpAppMicrosoftAuthenticatorName=Microsoft Authenticator
|
||||
loginChooseAuthenticator=Vyberte metodu p\u0159ihl\u00e1\u0161en\u00ed
|
||||
oauthGrantRequest=Poskytujete tyto p\u0159\u00edstupov\u00e1 opr\u00e1vn\u011bn\u00ed?
|
||||
inResource=v
|
||||
oauth2DeviceVerificationTitle=P\u0159ihl\u00e1\u0161en\u00ed na za\u0159\u00edzen\u00ed
|
||||
verifyOAuth2DeviceUserCode=Zadejte k\u00f3d z va\u0161eho za\u0159\u00edzen\u00ed a klikn\u011bte na Odeslat
|
||||
oauth2DeviceInvalidUserCodeMessage=Nespr\u00e1vn\u00fd k\u00f3d, zkuste to pros\u00edm znovu.
|
||||
oauth2DeviceExpiredUserCodeMessage=Platnost k\u00f3du vypr\u0161ela. Vra\u0165te se pros\u00edm do va\u0161eho za\u0159\u00edzen\u00ed a zkuste se p\u0159ipojit znovu.
|
||||
oauth2DeviceVerificationCompleteHeader=\u00dasp\u011b\u0161n\u00e9 p\u0159ihl\u00e1\u0161en\u00ed v za\u0159\u00edzen\u00ed
|
||||
oauth2DeviceVerificationCompleteMessage=M\u016f\u017eete zav\u0159\u00edt toto okno prohl\u00ed\u017ee\u010de a vr\u00e1tit se do va\u0161eho za\u0159\u00edzen\u00ed.
|
||||
oauth2DeviceVerificationFailedHeader=Selhalo p\u0159ihl\u00e1\u0161en\u00ed v za\u0159\u00edzen\u00ed
|
||||
oauth2DeviceVerificationFailedMessage=M\u016f\u017eete zav\u0159\u00edt toto okno prohl\u00ed\u017ee\u010de a vr\u00e1tit se do va\u0161eho za\u0159\u00edzen\u00ed a zkusit se znovu p\u0159ipojit.
|
||||
oauth2DeviceConsentDeniedMessage=P\u0159ipojen\u00ed za\u0159\u00edzen\u00ed odm\u00edtnuto.
|
||||
oauth2DeviceAuthorizationGrantDisabledMessage=Klient nem\u00e1 povoleno iniciovat OAuth 2.0 Device Authorization Grant. Flow je pro klienta zak\u00e1z\u00e1no.
|
||||
emailVerifyInstruction1=Byl V\u00e1m zasl\u00e1n e-mail s pokyny k ov\u011b\u0159en\u00ed va\u0161\u00ed e-mailov\u00e9 adresy.
|
||||
emailVerifyInstruction2=Nez\u00edskali jste v e-mailu ov\u011b\u0159ovac\u00ed k\u00f3d?
|
||||
emailVerifyInstruction3=znovu odeslat e-mail.
|
||||
emailLinkIdpTitle=Odkaz {0}
|
||||
emailLinkIdp1=Byl v\u00e1m zasl\u00e1n e-mail s pokyny k propojen\u00ed {0} \u00fa\u010dtu {1} s va\u0161\u00edm \u00fa\u010dtem {2}.
|
||||
emailLinkIdp2=Nez\u00edskali jste v e-mailu ov\u011b\u0159ovac\u00ed k\u00f3d?
|
||||
emailLinkIdp3=znovu odeslat e-mail.
|
||||
emailLinkIdp4=Pokud jste ji\u017e ov\u011b\u0159ili e-mail v jin\u00e9m prohl\u00ed\u017ee\u010di
|
||||
emailLinkIdp5=pokra\u010dovat.
|
||||
backToLogin=« Zp\u011bt k p\u0159ihl\u00e1\u0161en\u00ed
|
||||
emailInstruction=Zadejte sv\u00e9 u\u017eivatelsk\u00e9 jm\u00e9no nebo e-mailovou adresu a my v\u00e1m za\u0161leme pokyny k vytvo\u0159en\u00ed nov\u00e9ho hesla.
|
||||
emailInstructionUsername=Zadejte sv\u00e9 u\u017eivatelsk\u00e9 jm\u00e9no a my v\u00e1m za\u0161leme pokyny k vytvo\u0159en\u00ed nov\u00e9ho hesla.
|
||||
copyCodeInstruction=Zkop\u00edrujte tento k\u00f3d a vlo\u017ete jej do sv\u00e9 aplikace\:
|
||||
pageExpiredTitle=Vypr\u0161ela platnost str\u00e1nky
|
||||
pageExpiredMsg1=Pro restart procesu p\u0159ihl\u00e1\u0161en\u00ed
|
||||
pageExpiredMsg2=Pokra\u010dovat v procesu p\u0159ihl\u00e1\u0161en\u00ed
|
||||
personalInfo=Osobn\u00ed \u00fadaje\:
|
||||
role_admin=Administr\u00e1tor realmu
|
||||
role_realm-admin=Administr\u00e1tor realmu
|
||||
role_create-realm=Vytvo\u0159it realm
|
||||
role_create-client=Vytvo\u0159it klienta
|
||||
role_view-realm=Zobrazit realm
|
||||
role_view-users=Zobrazit u\u017eivatele
|
||||
role_view-applications=Zobrazit aplikace
|
||||
role_view-clients=Zobrazit klienty
|
||||
role_view-events=Zobrazit ud\u00e1losti
|
||||
role_view-identity-providers=Zobrazit poskytovatele identity
|
||||
role_manage-realm=Spravovat realm
|
||||
role_manage-users=Spravovat u\u017eivatele
|
||||
role_manage-applications=Spravovat aplikace
|
||||
role_manage-identity-providers=Spravovat poskytovatele identity
|
||||
role_manage-clients=Spravovat klienty
|
||||
role_manage-events=Spravovat ud\u00e1losti
|
||||
role_view-profile=Zobrazit profil
|
||||
role_manage-account=Spravovat \u00fa\u010det
|
||||
role_manage-account-links=Spravovat odkazy na \u00fa\u010det
|
||||
role_read-token=\u010c\u00edst token
|
||||
role_offline-access=P\u0159\u00edstup offline
|
||||
client_account=\u00da\u010det
|
||||
client_account-console=U\u017eivatelsk\u00e1 konzola
|
||||
client_realm-management=Spr\u00e1va realmu
|
||||
client_broker=Broker
|
||||
requiredFields=Vy\u017eadovan\u00e9 polo\u017eky
|
||||
invalidUserMessage=Neplatn\u00e9 jm\u00e9no nebo heslo.
|
||||
invalidUsernameMessage=Neplatn\u00e9 jm\u00e9no.
|
||||
invalidUsernameOrEmailMessage=Neplatn\u00e9 jm\u00e9no nebo e-mail.
|
||||
invalidPasswordMessage=Neplatn\u00e9 heslo.
|
||||
invalidEmailMessage=Neplatn\u00fd e-mail.
|
||||
accountDisabledMessage=\u00da\u010det je neplatn\u00fd, kontaktujte administr\u00e1tora.
|
||||
accountTemporarilyDisabledMessage=\u00da\u010det je do\u010dasn\u011b deaktivov\u00e1n, kontaktujte administr\u00e1tora nebo zkuste pozd\u011bji.
|
||||
expiredCodeMessage=Platnost p\u0159ihl\u00e1\u0161en\u00ed vypr\u0161ela. P\u0159ihlaste se znovu.
|
||||
expiredActionMessage=Akce vypr\u0161ela. Pokra\u010dujte p\u0159ihl\u00e1\u0161en\u00edm.
|
||||
expiredActionTokenNoSessionMessage=Akce vypr\u0161ela.
|
||||
expiredActionTokenSessionExistsMessage=Akce vypr\u0161ela. Za\u010dn\u011bte znovu
|
||||
sessionLimitExceeded=P\u0159\u00edli\u0161 mnoho nav\u00e1zan\u00fdch spojen\u00ed
|
||||
missingFirstNameMessage=Zadejte pros\u00edm jm\u00e9no.
|
||||
missingLastNameMessage=Zadejte pros\u00edm p\u0159\u00edjmen\u00ed.
|
||||
missingEmailMessage=Zadejte pros\u00edm e-mail.
|
||||
missingUsernameMessage=Zadejte pros\u00edm u\u017eivatelsk\u00e9 jm\u00e9no.
|
||||
missingPasswordMessage=Zadejte pros\u00edm heslo.
|
||||
missingTotpMessage=Zadejte pros\u00edm k\u00f3d ov\u011b\u0159ovatele.
|
||||
missingTotpDeviceNameMessage=Zadejte pros\u00edm jm\u00e9no za\u0159\u00edzen\u00ed.
|
||||
notMatchPasswordMessage=Hesla se neshoduj\u00ed.
|
||||
error-invalid-value=Nespr\u00e1vn\u00e1 hodnota.
|
||||
error-invalid-blank=Zadejte pros\u00edm hodnotu.
|
||||
error-empty=Zadejte pros\u00edm hodnotu.
|
||||
error-invalid-length=D\u00e9lka mus\u00ed b\u00fdt mezi {1} a {2}.
|
||||
error-invalid-length-too-short=Minim\u00e1ln\u00ed d\u00e9lka je {1}.
|
||||
error-invalid-length-too-long=Maxim\u00e1ln\u00ed d\u00e9lka je {2}.
|
||||
error-invalid-email=Nespr\u00e1vn\u00e1 e-mailov\u00e1 adresa.
|
||||
error-invalid-number=Nespr\u00e1vn\u00e9 \u010d\u00edslo.
|
||||
error-number-out-of-range=\u010c\u00edslo mus\u00ed b\u00fdt mezi {1} a {2}.
|
||||
error-number-out-of-range-too-small=Minim\u00e1ln\u00ed hodnota \u010d\u00edsla je {1}.
|
||||
error-number-out-of-range-too-big=Maxim\u00e1ln\u00ed hodnota \u010d\u00edsla je {2}.
|
||||
error-pattern-no-match=Nespr\u00e1vn\u00e1 hodnota.
|
||||
error-invalid-uri=Nespr\u00e1vn\u00e1 URL adresa.
|
||||
error-invalid-uri-scheme=Nespr\u00e1vn\u00e9 URL sch\u00e9ma.
|
||||
error-invalid-uri-fragment=Nespr\u00e1vn\u00fd fragment URL.
|
||||
error-user-attribute-required=Zadejte pros\u00edm tuto polo\u017eku.
|
||||
error-invalid-date=Nespr\u00e1vn\u00e9 datum.
|
||||
error-user-attribute-read-only=Tato polo\u017eka je jen ke \u010dten\u00ed.
|
||||
error-username-invalid-character=Hodnota obsahuje nevalidn\u00ed znak.
|
||||
error-person-name-invalid-character=Hodnota obsahuje nevalidn\u00ed znak.
|
||||
error-reset-otp-missing-id=Vyberte pros\u00edm OTP konfiguraci.
|
||||
invalidPasswordExistingMessage=Neplatn\u00e9 existuj\u00edc\u00ed heslo.
|
||||
invalidPasswordBlacklistedMessage=Neplatn\u00e9 heslo\: heslo je na \u010dern\u00e9 listin\u011b.
|
||||
invalidPasswordConfirmMessage=Potvrzen\u00ed hesla se neshoduje.
|
||||
invalidTotpMessage=Neplatn\u00fd k\u00f3d ov\u011b\u0159ov\u00e1n\u00ed.
|
||||
usernameExistsMessage=U\u017eivatelsk\u00e9 jm\u00e9no ji\u017e existuje.
|
||||
emailExistsMessage=E-mail ji\u017e existuje.
|
||||
federatedIdentityExistsMessage=U\u017eivatel s {0} {1} ji\u017e existuje. P\u0159ihlaste se ke spr\u00e1v\u011b \u00fa\u010dtu a propojte \u00fa\u010det.
|
||||
federatedIdentityUnavailableMessage=U\u017eivatel {0} p\u0159ihl\u00e1\u0161en\u00fd poskytovatelem identit {1} neexistuje. Kontaktujte pros\u00edm administr\u00e1tora.
|
||||
federatedIdentityUnmatchedEssentialClaimMessage=Token identity vydan\u00fd poskytovatelem identity neodpov\u00edd\u00e1 nakonfigurovan\u00e9mu essential claim. Kontaktujte pros\u00edm administr\u00e1tora.
|
||||
confirmLinkIdpTitle=\u00da\u010det ji\u017e existuje
|
||||
federatedIdentityConfirmLinkMessage=U\u017eivatel s {0} {1} ji\u017e existuje. Jak chcete pokra\u010dovat?
|
||||
federatedIdentityConfirmReauthenticateMessage=Ov\u011b\u0159te jako {0} k propojen\u00ed \u00fa\u010dtu {1}
|
||||
nestedFirstBrokerFlowMessage={0} u\u017eivatel {1} nen\u00ed propojen s \u017e\u00e1dn\u00fdm zn\u00e1m\u00fdm u\u017eivatelem.
|
||||
confirmLinkIdpReviewProfile=Zkontrolujte profil
|
||||
confirmLinkIdpContinue=P\u0159idat do existuj\u00edc\u00edho \u00fa\u010dtu
|
||||
configureTotpMessage=Chcete-li aktivovat \u00fa\u010det, mus\u00edte nastavit slu\u017ebu Mobile Authenticator.
|
||||
configureBackupCodesMessage=Pro aktivaci sv\u00e9ho \u00fa\u010dtu mus\u00edte nakonfigurovat z\u00e1lo\u017en\u00ed k\u00f3dy.
|
||||
updateProfileMessage=Pro aktivaci \u00fa\u010dtu mus\u00edte aktualizovat sv\u016fj u\u017eivatelsk\u00fd profil.
|
||||
updatePasswordMessage=Pro aktivaci \u00fa\u010dtu mus\u00edte prov\u00e9st aktualizaci hesla.
|
||||
updateEmailMessage=Pro aktivaci \u00fa\u010dtu mus\u00edte aktualizovat svou e-mailovou adresu.
|
||||
resetPasswordMessage=Je t\u0159eba zm\u011bnit heslo.
|
||||
verifyEmailMessage=Pro aktivaci \u00fa\u010dtu mus\u00edte ov\u011b\u0159it va\u0161i e-mailovou adresu.
|
||||
linkIdpMessage=Pot\u0159ebujete-li ov\u011b\u0159it va\u0161i e-mailovou adresu, propojte sv\u016fj \u00fa\u010det s {0}.
|
||||
emailSentMessage=M\u011bli byste brzy obdr\u017eet e-mail s dal\u0161\u00edmi pokyny.
|
||||
emailSendErrorMessage=Nepoda\u0159ilo se odeslat e-mail, zkuste to pros\u00edm pozd\u011bji.
|
||||
accountUpdatedMessage=V\u00e1\u0161 \u00fa\u010det byl aktualizov\u00e1n.
|
||||
accountPasswordUpdatedMessage=Va\u0161e heslo bylo aktualizov\u00e1no.
|
||||
delegationCompleteHeader=P\u0159ihl\u00e1\u0161en\u00ed \u00fasp\u011b\u0161n\u00e9
|
||||
delegationCompleteMessage=M\u016f\u017eete zav\u0159\u00edt toto okno prohl\u00ed\u017ee\u010de a vr\u00e1tit se do aplikace.
|
||||
delegationFailedHeader=P\u0159ihl\u00e1\u0161en\u00ed selhalo
|
||||
delegationFailedMessage=M\u016f\u017eete zav\u0159\u00edt toto okno prohl\u00ed\u017ee\u010de a vr\u00e1tit se do aplikace a zkusit se znovu p\u0159ihl\u00e1sit.
|
||||
noAccessMessage=\u017d\u00e1dn\u00fd p\u0159\u00edstup
|
||||
invalidPasswordMinLengthMessage=Neplatn\u00e9 heslo\: minim\u00e1ln\u00ed d\u00e9lka {0}.
|
||||
invalidPasswordMaxLengthMessage=Neplatn\u00e9 heslo\: maxim\u00e1ln\u00ed d\u00e9lka {0}.
|
||||
invalidPasswordMinDigitsMessage=Neplatn\u00e9 heslo\: mus\u00ed obsahovat nejm\u00e9n\u011b {0} \u010d\u00edslic.
|
||||
invalidPasswordMinLowerCaseCharsMessage=Neplatn\u00e9 heslo\: mus\u00ed obsahovat minim\u00e1ln\u011b {0} mal\u00e9 znaky.
|
||||
invalidPasswordMinUpperCaseCharsMessage=Neplatn\u00e9 heslo\: mus\u00ed obsahovat nejm\u00e9n\u011b {0} velk\u00e1 p\u00edsmena.
|
||||
invalidPasswordMinSpecialCharsMessage=Neplatn\u00e9 heslo\: mus\u00ed obsahovat nejm\u00e9n\u011b {0} speci\u00e1ln\u00ed znaky.
|
||||
invalidPasswordNotUsernameMessage=Neplatn\u00e9 heslo\: nesm\u00ed b\u00fdt toto\u017en\u00e9 s u\u017eivatelsk\u00fdm jm\u00e9nem.
|
||||
invalidPasswordNotEmailMessage=Neplatn\u00e9 heslo\: nesm\u00ed b\u00fdt toto\u017en\u00e9 s e-mailovou adresou.
|
||||
invalidPasswordRegexPatternMessage=Neplatn\u00e9 heslo\: neshoduje se vzorem regul\u00e9rn\u00edho v\u00fdrazu.
|
||||
invalidPasswordHistoryMessage=Neplatn\u00e9 heslo\: Nesm\u00ed se rovnat \u017e\u00e1dn\u00e9mu z posledn\u00edch {0} hesel.
|
||||
invalidPasswordGenericMessage=Neplatn\u00e9 heslo\: nov\u00e9 heslo neodpov\u00edd\u00e1 pravidl\u016fm hesla.
|
||||
failedToProcessResponseMessage=Nepoda\u0159ilo se zpracovat odpov\u011b\u010f
|
||||
httpsRequiredMessage=Po\u017eadov\u00e1no HTTPS
|
||||
realmNotEnabledMessage=Realm nen\u00ed povolen
|
||||
invalidRequestMessage=Neplatn\u00e1 \u017e\u00e1dost
|
||||
successLogout=Odhl\u00e1\u0161en\u00ed bylo \u00fasp\u011b\u0161n\u00e9
|
||||
failedLogout=Odhl\u00e1\u0161en\u00ed se nezda\u0159ilo
|
||||
unknownLoginRequesterMessage=Nezn\u00e1m\u00fd \u017eadatel o p\u0159ihl\u00e1\u0161en\u00ed
|
||||
loginRequesterNotEnabledMessage=\u017dadatel o p\u0159ihl\u00e1\u0161en\u00ed nen\u00ed povolen
|
||||
bearerOnlyMessage=Aplikace bearer-only nemohou iniciovat p\u0159ihla\u0161ov\u00e1n\u00ed pomoc\u00ed prohl\u00ed\u017ee\u010de
|
||||
standardFlowDisabledMessage=Klient nesm\u00ed iniciovat p\u0159ihla\u0161ov\u00e1n\u00ed prohl\u00ed\u017ee\u010de s dan\u00fdm typem odpov\u011bdi. Standardn\u00ed tok je pro klienta zak\u00e1z\u00e1n.
|
||||
implicitFlowDisabledMessage=Klient nesm\u00ed iniciovat p\u0159ihla\u0161ov\u00e1n\u00ed prohl\u00ed\u017ee\u010de s dan\u00fdm typem odpov\u011bdi. Implicitn\u00ed tok je pro klienta zak\u00e1z\u00e1n.
|
||||
invalidRedirectUriMessage=Neplatn\u00e1 adresa p\u0159esm\u011brov\u00e1n\u00ed
|
||||
unsupportedNameIdFormatMessage=Nepodporovan\u00fd NameIDFormat
|
||||
invalidRequesterMessage=Neplatn\u00fd \u017eadatel
|
||||
registrationNotAllowedMessage=Registrace nen\u00ed povolena
|
||||
resetCredentialNotAllowedMessage=Reset Credential nen\u00ed povoleno
|
||||
permissionNotApprovedMessage=Opr\u00e1vn\u011bn\u00ed nebylo schv\u00e1leno.
|
||||
noRelayStateInResponseMessage=Chyb\u00ed relay state v odpov\u011bdi od poskytovatele identity.
|
||||
insufficientPermissionMessage=Nedostate\u010dn\u00e1 opr\u00e1vn\u011bn\u00ed k propojen\u00ed identit.
|
||||
couldNotProceedWithAuthenticationRequestMessage=Nemohu pokra\u010dovat s \u017e\u00e1dost\u00ed o ov\u011b\u0159en\u00ed poskytovateli identity.
|
||||
couldNotObtainTokenMessage=Nelze z\u00edskat token od poskytovatele identity.
|
||||
unexpectedErrorRetrievingTokenMessage=Neo\u010dek\u00e1van\u00e1 chyba p\u0159i na\u010d\u00edt\u00e1n\u00ed tokenu od poskytovatele identity.
|
||||
unexpectedErrorHandlingResponseMessage=Neo\u010dek\u00e1van\u00e1 chyba p\u0159i zpracov\u00e1n\u00ed odpov\u011bdi od poskytovatele identity.
|
||||
identityProviderAuthenticationFailedMessage=Ov\u011b\u0159en\u00ed selhalo. Nelze ov\u011b\u0159it s poskytovatelem identity.
|
||||
couldNotSendAuthenticationRequestMessage=Nelze odeslat \u017e\u00e1dost o ov\u011b\u0159en\u00ed poskytovateli identity.
|
||||
unexpectedErrorHandlingRequestMessage=Neo\u010dek\u00e1van\u00e1 chyba p\u0159i zpracov\u00e1n\u00ed po\u017eadavku na ov\u011b\u0159en\u00ed poskytovateli identity.
|
||||
invalidAccessCodeMessage=Neplatn\u00fd p\u0159\u00edstupov\u00fd k\u00f3d.
|
||||
sessionNotActiveMessage=Session nen\u00ed aktivn\u00ed.
|
||||
invalidCodeMessage=Do\u0161lo k chyb\u011b, p\u0159ihlaste se znovu prost\u0159ednictv\u00edm sv\u00e9 aplikace.
|
||||
cookieNotFoundMessage=Soubor cookie nenalezen. Ujist\u011bte se pros\u00edm, \u017ee m\u00e1te v prohl\u00ed\u017ee\u010di povolen\u00e9 cookies.
|
||||
insufficientLevelOfAuthentication=Nebylo dosa\u017eeno po\u017eadovan\u00e9 \u00farovn\u011b autentizace.
|
||||
identityProviderUnexpectedErrorMessage=Neo\u010dek\u00e1van\u00e1 chyba p\u0159i ov\u011b\u0159ov\u00e1n\u00ed s poskytovatelem identity
|
||||
identityProviderMissingStateMessage=V odpov\u011bdi od poskytovatele identit chyb\u00ed parametr state.
|
||||
identityProviderMissingCodeOrErrorMessage=V odpov\u011bdi poskytovatele identit chyb\u00ed parametr code nebo error.
|
||||
identityProviderInvalidResponseMessage=Nevalidn\u00ed odpov\u011b\u010f od poskytovatele identity.
|
||||
identityProviderInvalidSignatureMessage=Nevalidn\u00ed podpis v odpov\u011bdi od poskytovatele identity.
|
||||
identityProviderNotFoundMessage=Nelze naj\u00edt poskytovatele identity s identifik\u00e1torem.
|
||||
identityProviderLinkSuccess=\u00dasp\u011b\u0161n\u011b jste ov\u011b\u0159ili sv\u016fj e-mail. Vra\u0165te se pros\u00edm zp\u011bt do p\u016fvodn\u00edho prohl\u00ed\u017ee\u010de a pokra\u010dujte tam s p\u0159ihla\u0161ovac\u00edmi \u00fadaji.
|
||||
staleCodeMessage=Tato str\u00e1nka ji\u017e nen\u00ed platn\u00e1. Vra\u0165te se zp\u011bt do aplikace a p\u0159ihlaste se znovu
|
||||
realmSupportsNoCredentialsMessage=Realm nepodporuje \u017e\u00e1dn\u00fd typ pov\u011b\u0159en\u00ed.
|
||||
credentialSetupRequired=Nen\u00ed mo\u017en\u00e9 se p\u0159ihl\u00e1sit, je vy\u017eadov\u00e1na konfigurace p\u0159\u00edstupov\u00fdch \u00fadaj\u016f.
|
||||
identityProviderNotUniqueMessage=Realm podporuje v\u00edce poskytovatel\u016f identity. Nelze ur\u010dit, s jak\u00fdm zprost\u0159edkovatelem identity se m\u00e1 ov\u011b\u0159it.
|
||||
emailVerifiedMessage=Va\u0161e e-mailov\u00e1 adresa byla ov\u011b\u0159ena.
|
||||
emailVerifiedAlreadyMessage=Va\u0161e e-mailov\u00e1 adresa ji\u017e byla ov\u011b\u0159ena.
|
||||
staleEmailVerificationLink=Odkaz, na kter\u00fd jste klikli, je star\u00fd odkaz a ji\u017e nen\u00ed platn\u00fd. Mo\u017en\u00e1 jste ji\u017e ov\u011b\u0159ili sv\u016fj e-mail?
|
||||
identityProviderAlreadyLinkedMessage=Federovan\u00e1 identita vr\u00e1cen\u00e1 {0} je ji\u017e propojena s jin\u00fdm u\u017eivatelem.
|
||||
confirmAccountLinking=Potvr\u010fte propojen\u00ed \u00fa\u010dtu {0} poskytovatele identity {1} s va\u0161\u00edm \u00fa\u010dtem.
|
||||
confirmEmailAddressVerification=Potvr\u010fte platnost e-mailov\u00e9 adresy {0}.
|
||||
confirmExecutionOfActions=Prove\u010fte n\u00e1sleduj\u00edc\u00ed akce
|
||||
backToApplication=« Zp\u011bt na aplikaci
|
||||
missingParameterMessage=Chyb\u011bj\u00edc\u00ed parametry\: {0}
|
||||
clientNotFoundMessage=Klient nebyl nalezen.
|
||||
clientDisabledMessage=Klient byl zneplatn\u011bn.
|
||||
invalidParameterMessage=Neplatn\u00fd parametr\: {0}
|
||||
alreadyLoggedIn=Jste ji\u017e p\u0159ihl\u00e1\u0161eni.
|
||||
differentUserAuthenticated=Jste ji\u017e v t\u00e9to relaci ov\u011b\u0159eni jako jin\u00fd u\u017eivatel '' {0} ''. Nejd\u0159\u00edve se odhlaste.
|
||||
brokerLinkingSessionExpired=Po\u017eadovan\u00e9 propojen\u00ed \u00fa\u010dtu broker\u016f, ale aktu\u00e1ln\u00ed relace ji\u017e nen\u00ed platn\u00e1.
|
||||
proceedWithAction=» Klikn\u011bte zde pro pokra\u010dov\u00e1n\u00ed
|
||||
acrNotFulfilled=Nebyly napln\u011bny po\u017eadavky autentizace
|
||||
requiredAction.CONFIGURE_TOTP=Konfigurovat OTP
|
||||
requiredAction.TERMS_AND_CONDITIONS=Smluvn\u00ed podm\u00ednky
|
||||
requiredAction.UPDATE_PASSWORD=Aktualizace hesla
|
||||
requiredAction.UPDATE_PROFILE=Aktualizovat profil
|
||||
requiredAction.VERIFY_EMAIL=Ov\u011b\u0159it e-mail
|
||||
requiredAction.CONFIGURE_RECOVERY_AUTHN_CODES=Generov\u00e1n\u00ed k\u00f3d\u016f pro obnoven\u00ed
|
||||
invalidTokenRequiredActions=Po\u017eadovan\u00e9 akce obsa\u017een\u00e9 v dan\u00e9m odkazu nejsou validn\u00ed
|
||||
doX509Login=Budete p\u0159ihl\u00e1\u0161eni jako\:
|
||||
clientCertificate=Klientsk\u00fd X509 certifik\u00e1t\:
|
||||
noCertificate=[\u017d\u00e1dn\u00fd certifik\u00e1t]
|
||||
pageNotFound=Str\u00e1nka nenalezena
|
||||
internalServerError=Nastala intern\u00ed chyba serveru
|
||||
console-username=Jm\u00e9no\:
|
||||
console-password=Heslo\:
|
||||
console-otp=Jednor\u00e1zov\u00e9 heslo\:
|
||||
console-new-password=Nov\u00e9 heslo\:
|
||||
console-confirm-password=Potvrzen\u00ed hesla\:
|
||||
console-update-password=Je vy\u017eadov\u00e1na zm\u011bna hesla.
|
||||
console-verify-email=Mus\u00edte ov\u011b\u0159it svou e-mailovou adresu. Odeslali jsme e-mail na {0}, kter\u00fd obsahuje ov\u011b\u0159ovac\u00ed k\u00f3d. Zadejte pros\u00edm tento k\u00f3d do pole n\u00ed\u017ee.
|
||||
console-email-code=K\u00f3d z e-mailu\:
|
||||
console-accept-terms=Souhlasit s podm\u00ednkami? [a/n]\:
|
||||
console-accept=a
|
||||
openshift.scope.user_info=Informace o u\u017eivateli
|
||||
openshift.scope.user_check-access=Informace o p\u0159\u00edstupu u\u017eivatele
|
||||
openshift.scope.user_full=Pln\u00fd p\u0159\u00edstup
|
||||
openshift.scope.list-projects=Seznam projekt\u016f
|
||||
saml.post-form.title=P\u0159esm\u011brov\u00e1n\u00ed p\u0159ihl\u00e1\u0161en\u00ed
|
||||
saml.post-form.message=P\u0159esm\u011brov\u00e1v\u00e1m, \u010dekejte pros\u00edm.
|
||||
saml.post-form.js-disabled=JavaScript nen\u00ed povolen\u00fd. D\u016frazn\u011b doporu\u010dujeme jej povolit. Pro pokra\u010dov\u00e1n\u00ed stiskn\u011bte tla\u010d\u00edtko n\u00ed\u017ee.
|
||||
saml.artifactResolutionServiceInvalidResponse=Nepovedlo se rozpoznat SAML artefakt.
|
||||
otp-display-name=Autentiza\u010dn\u00ed Aplikace
|
||||
otp-help-text=Zadejte ov\u011b\u0159ovac\u00ed k\u00f3d z aplikace.
|
||||
otp-reset-description=Kter\u00e1 konfigurace OTP m\u00e1 b\u00fdt odstran\u011bna?
|
||||
password-display-name=Heslo
|
||||
password-help-text=P\u0159ihlaste se pomoc\u00ed hesla.
|
||||
auth-username-form-display-name=Jm\u00e9no
|
||||
auth-username-form-help-text=Za\u010dn\u011bte p\u0159ihl\u00e1\u0161en\u00ed zad\u00e1n\u00edm sv\u00e9ho u\u017eivatelsk\u00e9ho jm\u00e9na
|
||||
auth-username-password-form-display-name=Jm\u00e9no a heslo
|
||||
auth-username-password-form-help-text=P\u0159ihlaste se pomoc\u00ed jm\u00e9na a hesla.
|
||||
auth-recovery-authn-code-form-display-name=K\u00f3d pro obnovu p\u0159\u00edstupu
|
||||
auth-recovery-authn-code-form-help-text=Zadejte k\u00f3d pro obnovu p\u0159\u00edstupu z d\u0159\u00edve vygenerovan\u00e9ho seznamu.
|
||||
auth-recovery-code-info-message=Zadejte specifikovan\u00fd k\u00f3d pro obnovu.
|
||||
auth-recovery-code-prompt=K\u00f3d pro obnovu \#{0}
|
||||
auth-recovery-code-header=P\u0159ihlaste se k\u00f3dem pro obnovu p\u0159\u00edstupu
|
||||
recovery-codes-error-invalid=Nespr\u00e1vn\u00fd k\u00f3d pro obnovu p\u0159\u00edstupu
|
||||
recovery-code-config-header=K\u00f3dy pro obnovu p\u0159\u00edstupu
|
||||
recovery-code-config-warning-title=Tyto k\u00f3dy pro obnovu nebudou znovu zobrazeny, kdy\u017e tuto str\u00e1nku opust\u00edte
|
||||
recovery-code-config-warning-message=K\u00f3dy pro obnovu si vytiskn\u011bte, st\u00e1hn\u011bte nebo zkop\u00edrujte do spr\u00e1vce hesel a dr\u017ete je v bezpe\u010d\u00ed. Stornov\u00e1n\u00ed t\u00e9to konfigurace odstran\u00ed k\u00f3dy pro obnovu z va\u0161eho \u00fa\u010dtu.
|
||||
recovery-codes-print=Tisknout
|
||||
recovery-codes-download=St\u00e1hnout
|
||||
recovery-codes-copy=Kop\u00edrovat
|
||||
recovery-codes-copied=Zkop\u00edrov\u00e1no
|
||||
recovery-codes-confirmation-message=M\u00e1m tyto k\u00f3dy bezpe\u010dn\u011b ulo\u017een\u00e9
|
||||
recovery-codes-action-complete=Dokon\u010dit konfiguraci
|
||||
recovery-codes-action-cancel=Stornovat konfiguraci
|
||||
recovery-codes-download-file-header=Uchovejte tyto k\u00f3dy pro obnovu v bezpe\u010d\u00ed.
|
||||
recovery-codes-download-file-description=K\u00f3dy pro obnovu jsou hesla pro jednor\u00e1zov\u00e9 pou\u017eit\u00ed, pomoc\u00ed kter\u00fdch se m\u016f\u017eete p\u0159ihl\u00e1sit bez p\u0159\u00edstupu k autentik\u00e1toru.
|
||||
recovery-codes-download-file-date=Tyto k\u00f3dy byly generov\u00e1ny
|
||||
recovery-codes-label-default=K\u00f3dy pro obnovu
|
||||
webauthn-display-name=P\u0159\u00edstupov\u00fd kl\u00ed\u010d
|
||||
webauthn-help-text=Pou\u017eijte k p\u0159ihl\u00e1\u0161en\u00ed p\u0159\u00edstupov\u00fd kl\u00ed\u010d.
|
||||
webauthn-passwordless-display-name=P\u0159\u00edstupov\u00fd kl\u00ed\u010d
|
||||
webauthn-passwordless-help-text=Pou\u017eijte p\u0159\u00edstupov\u00fd kl\u00ed\u010d k p\u0159ihl\u00e1\u0161en\u00ed bez hesla.
|
||||
webauthn-login-title=P\u0159ihl\u00e1\u0161en\u00ed p\u0159\u00edstupov\u00fdm kl\u00ed\u010dem
|
||||
webauthn-registration-title=Registrace p\u0159\u00edstupov\u00e9ho kl\u00ed\u010de
|
||||
webauthn-available-authenticators=Dostupn\u00e9 p\u0159\u00edstupov\u00e9 kl\u00ed\u010de
|
||||
webauthn-unsupported-browser-text=WebAuthn nen\u00ed v tomto prohl\u00ed\u017ee\u010di podporov\u00e1no. Zkuste jin\u00fd prohl\u00ed\u017ee\u010d nebo kontaktujte sv\u00e9ho administr\u00e1tora.
|
||||
webauthn-doAuthenticate=P\u0159ihl\u00e1\u0161en\u00ed p\u0159\u00edstupov\u00fdm kl\u00ed\u010dem
|
||||
webauthn-createdAt-label=Vytvo\u0159eno
|
||||
webauthn-error-title=Chyba p\u0159\u00edstupov\u00e9ho kl\u00ed\u010de
|
||||
webauthn-error-registration=Selhala registrace va\u0161eho p\u0159\u00edstupov\u00e9ho kl\u00ed\u010de.<br/> {0}
|
||||
webauthn-error-api-get=Selhalo p\u0159ihl\u00e1\u0161en\u00ed pomoc\u00ed p\u0159\u00edstupov\u00e9ho kl\u00ed\u010de.<br/> {0}
|
||||
webauthn-error-different-user=Prvn\u00ed p\u0159ihl\u00e1\u0161en\u00fd u\u017eivatel nen\u00ed toto\u017en\u00fd s u\u017eivatelem p\u0159ihl\u00e1\u0161en\u00fdm pomoc\u00ed p\u0159\u00edstupov\u00e9ho kl\u00ed\u010de.
|
||||
webauthn-error-auth-verification=Nevalidn\u00ed v\u00fdsledek p\u0159ihl\u00e1\u0161en\u00ed pomoc\u00ed p\u0159\u00edstupov\u00e9ho kl\u00ed\u010de.<br/> {0}
|
||||
webauthn-error-register-verification=Nevalidn\u00ed v\u00fdsledek registrace p\u0159\u00edstupov\u00e9ho kl\u00ed\u010de.<br/> {0}
|
||||
webauthn-error-user-not-found=Nezn\u00e1m\u00fd u\u017eivatel p\u0159ihl\u00e1\u0161en pomoc\u00ed p\u0159\u00edstupov\u00e9ho kl\u00ed\u010de.
|
||||
identity-provider-redirector=Propojit s jin\u00fdm poskytovatelem identit
|
||||
identity-provider-login-label=Nebo se p\u0159ihlaste pomoc\u00ed
|
||||
idp-email-verification-display-name=Ov\u011b\u0159en\u00ed e-mailu
|
||||
idp-email-verification-help-text=Prove\u010fte sp\u00e1rov\u00e1n\u00ed \u00fa\u010dtu ov\u011b\u0159en\u00edm e-mailu.
|
||||
idp-username-password-form-display-name=Jm\u00e9no a p\u0159\u00edjmen\u00ed
|
||||
idp-username-password-form-help-text=Prove\u010fte sp\u00e1rov\u00e1n\u00ed \u00fa\u010dtu p\u0159ihl\u00e1\u0161en\u00edm.
|
||||
finalDeletionConfirmation=Pokud sv\u016fj \u00fa\u010det odstran\u00edte, nem\u016f\u017ee b\u00fdt obnoven. Pro zachov\u00e1n\u00ed \u00fa\u010dtu klikn\u011bte na tla\u010d\u00edtko Zru\u0161it.
|
||||
irreversibleAction=Tuto akci nelze vz\u00edt zp\u011bt
|
||||
deleteAccountConfirm=Potvrzen\u00ed odstran\u011bn\u00ed \u00fa\u010dtu
|
||||
deletingImplies=Odstran\u011bn\u00ed va\u0161eho \u00fa\u010dtu znamen\u00e1\:
|
||||
errasingData=Smaz\u00e1n\u00ed v\u0161ech va\u0161ich dat
|
||||
loggingOutImmediately=Okam\u017eit\u00e9 odhl\u00e1\u0161en\u00ed
|
||||
accountUnusable=Dal\u0161\u00ed pou\u017eit\u00ed aplikace s t\u00edmto \u00fa\u010dtem nebude mo\u017en\u00e9
|
||||
userDeletedSuccessfully=U\u017eivatel \u00fasp\u011b\u0161n\u011b odstran\u011bn
|
||||
access-denied=P\u0159\u00edstup odep\u0159en
|
||||
access-denied-when-idp-auth=P\u0159\u00edstup odep\u0159en p\u0159i p\u0159ihl\u00e1\u0161en\u00ed pomoc\u00ed {0}
|
||||
frontchannel-logout.title=Odhl\u00e1\u0161en\u00ed
|
||||
frontchannel-logout.message=Odhla\u0161ujete se z n\u00e1sleduj\u00edc\u00edch aplikac\u00ed
|
||||
logoutConfirmTitle=Odhla\u0161ov\u00e1n\u00ed
|
||||
logoutConfirmHeader=Chcete se odhl\u00e1sit?
|
||||
doLogout=Odhl\u00e1sit
|
||||
readOnlyUsernameMessage=Nem\u016f\u017eete aktualizovat sv\u00e9 u\u017eivatelsk\u00e9 jm\u00e9no, proto\u017ee je pouze pro \u010dten\u00ed.
|
||||
error-invalid-multivalued-size=Atribut {0} mus\u00ed m\u00edt nejm\u00e9n\u011b {1} {1,choice,0\#hodnot|1\#hodnotu|1<hodnoty|4<hodnot} a nejv\u00edce {2} {2,choice,0\#hodnot|1\#hodnotu|1<hodnoty|4<hodnot}.
|
||||
shouldBeEqual={0} by m\u011bl b\u00fdt roven {1}
|
||||
shouldBeDifferent={0} by m\u011bl b\u00fdt odli\u0161n\u00fd od {1}
|
||||
shouldMatchPattern=Vzor by m\u011bl odpov\u00eddat\: `/{0}/`
|
||||
mustBeAnInteger=Mus\u00ed b\u00fdt cel\u00e9 \u010d\u00edslo
|
||||
notAValidOption=Nen\u00ed platn\u00e1 mo\u017enost
|
||||
selectAnOption=Vyberte mo\u017enost
|
||||
remove=Odstranit
|
||||
addValue=P\u0159idat hodnotu
|
||||
languages=Jazyky
|
@ -0,0 +1,315 @@
|
||||
|
||||
doLogIn=Log ind
|
||||
doRegister=Registrer
|
||||
doRegisterSecurityKey=Registrer
|
||||
doCancel=Annuller
|
||||
doSubmit=Indsend
|
||||
doYes=Ja
|
||||
doNo=Nej
|
||||
doContinue=Forts\u00e6t
|
||||
doIgnore=Ignorer
|
||||
doAccept=Accepter
|
||||
doDecline=Afsl\u00e5
|
||||
doForgotPassword=Glemt adgangskode?
|
||||
doClickHere=Klik her
|
||||
doImpersonate=Efterlign
|
||||
kerberosNotConfigured=Kerberos er ikke konfigureret
|
||||
kerberosNotConfiguredTitle=Kerberos er ikke konfigureret
|
||||
bypassKerberosDetail=Enten er du ikke logget ind via Kerberos eller ogs\u00e5 er din browser ikke sat op til Kerberos login. Tryk forts\u00e6t for at logge ind p\u00e5 anden vis
|
||||
kerberosNotSetUp=Kerberos er ikke sat op. Du kan ikke logge ind.
|
||||
registerTitle=Registrer
|
||||
loginTitle=Log ind i {0}
|
||||
loginTitleHtml={0}
|
||||
impersonateTitle={0} Efterlign bruger
|
||||
impersonateTitleHtml=<strong>{0}</strong> Efterlign bruger
|
||||
realmChoice=Rige
|
||||
unknownUser=Ukendt bruger
|
||||
loginTotpTitle=Mobil Godkendelses Ops\u00e6tning
|
||||
loginProfileTitle=Opdater brugerinformationer
|
||||
loginTimeout=Dit login tog for lang tid. Login processen vil nu begynde forfra.
|
||||
oauthGrantTitle=Giv adgang til {0}
|
||||
oauthGrantTitleHtml={0}
|
||||
errorTitle=Vi beklager...
|
||||
errorTitleHtml=Vi <strong>beklager</strong> ...
|
||||
emailVerifyTitle=Email verificering
|
||||
emailForgotTitle=Glemt din adgangskode?
|
||||
updatePasswordTitle=Opdater adgangskode
|
||||
codeSuccessTitle=Success kode
|
||||
codeErrorTitle=Fejl kode\: {0}
|
||||
displayUnsupported=Den \u00f8nskede sk\u00e6rmtype underst\u00f8ttes ikke
|
||||
browserRequired=Brwoseren skal logges ind
|
||||
browserContinue=Browser p\u00e5kr\u00e6vet for at kunne gennemf\u00f8re login
|
||||
browserContinuePrompt=\u00c5ben browser for at forts\u00e6tte login? [j/n]\:
|
||||
browserContinueAnswer=j
|
||||
termsTitle=Vilk\u00e5r og betingelser
|
||||
termsText=
|
||||
termsPlainText=Vilk\u00e5r og betingelser mangler at blive beskrevet.
|
||||
recaptchaFailed=Ugyldig Recaptcha
|
||||
recaptchaNotConfigured=Recaptcha er p\u00e5kr\u00e6vet, men ikke konfigureret
|
||||
consentDenied=Samtykke afsl\u00e5et.
|
||||
noAccount=Ny bruger?
|
||||
username=Brugernavn
|
||||
usernameOrEmail=Brugernavn eller email
|
||||
firstName=Fornavn
|
||||
givenName=Fornavn
|
||||
fullName=Fulde navn
|
||||
lastName=Efternavn
|
||||
familyName=Efternavn
|
||||
email=Email
|
||||
password=Adgangskode
|
||||
passwordConfirm=Bekr\u00e6ft adgangskode
|
||||
passwordNew=Ny Adgangskode
|
||||
passwordNewConfirm=Bekr\u00e6ft ny adgangskode
|
||||
rememberMe=Husk mig
|
||||
authenticatorCode=Engangskode
|
||||
address=Adresse
|
||||
street=Vej
|
||||
locality=By
|
||||
region=Region
|
||||
postal_code=Postnummer
|
||||
country=Land
|
||||
emailVerified=Email verificeret
|
||||
gssDelegationCredential=GSS Delegation Credential
|
||||
profileScopeConsentText=Brugerprofil
|
||||
emailScopeConsentText=Email adresse
|
||||
addressScopeConsentText=Adresse
|
||||
phoneScopeConsentText=Telefonnummer
|
||||
offlineAccessScopeConsentText=Offline Adgang
|
||||
samlRoleListScopeConsentText=Mine roller
|
||||
loginTotpIntro=Du skal ops\u00e6tte en Engangskodegenerator for at kunne tilg\u00e5 denne konto.
|
||||
loginTotpStep1=Installer en af f\u00f8lgende applikationer p\u00e5 din mobil
|
||||
loginTotpStep2=\u00c5ben applikationen og skan stregkoden
|
||||
loginTotpStep3=Indtast engangskoden fra applikationen og tryk Indsend for at gennemf\u00f8re ops\u00e6tningen
|
||||
loginTotpManualStep2=\u00c5ben applikationen og indtast n\u00f8glen
|
||||
loginTotpManualStep3=Brug f\u00f8lgende konfigurations v\u00e6rdier hvis applikationen tillader det
|
||||
loginTotpUnableToScan=Kan du ikke skanne?
|
||||
loginTotpScanBarcode=Skan stregkode?
|
||||
loginOtpOneTime=Engangskode
|
||||
loginTotpType=Type
|
||||
loginTotpAlgorithm=Algoritme
|
||||
loginTotpDigits=Cifre
|
||||
loginTotpInterval=Interval
|
||||
loginTotpCounter=T\u00e6ller
|
||||
loginTotp.totp=Tidsbaseret
|
||||
loginTotp.hotp=T\u00e6llerbaseret
|
||||
oauthGrantRequest=Bevilger du disse adgangs privilegier?
|
||||
inResource=ind
|
||||
emailVerifyInstruction1=En email med instruktioner til, hvordan du verificerer din mail adresse er blevet sendt til dig.
|
||||
emailVerifyInstruction2=Har du ikke modtaget en verificerings kode i din inbox?
|
||||
emailVerifyInstruction3=for at gensende emailen.
|
||||
emailLinkIdpTitle=Link {0}
|
||||
emailLinkIdp1=En email med instruktioner til hvordan du linker {0} konto {1} med din {2} konto er blevet sendt til dig.
|
||||
emailLinkIdp2=Har du ikke modtaget en verificerings kode i din inbox?
|
||||
emailLinkIdp3=for at gensende emailen.
|
||||
emailLinkIdp4=Hvis du allerede har verificeret din email i en anden browser
|
||||
emailLinkIdp5=for at forts\u00e6tte.
|
||||
backToLogin=« Tilbage til log ind
|
||||
emailInstruction=Indtast dit brugernavn eller email adresse, s\u00e5 sender vi instruktioner til dig om hvordan du angiver en ny adgangskode.
|
||||
copyCodeInstruction=Kopier denne kode og inds\u00e6t den i din applikation\:
|
||||
pageExpiredTitle=Siden er udl\u00f8bet
|
||||
pageExpiredMsg1=For at genstarte login processen
|
||||
pageExpiredMsg2=For at forts\u00e6tte login processen
|
||||
personalInfo=Personlig information\:
|
||||
role_admin=Admin
|
||||
role_realm-admin=Rige Admin
|
||||
role_create-realm=Opret rige
|
||||
role_create-client=Opret klient
|
||||
role_view-realm=Se rige
|
||||
role_view-users=Se brugere
|
||||
role_view-applications=Se applikationer
|
||||
role_view-clients=Se klienter
|
||||
role_view-events=Se h\u00e6ndelser
|
||||
role_view-identity-providers=Se identitetsudbydere
|
||||
role_manage-realm=Administrer rige
|
||||
role_manage-users=Administrer brugere
|
||||
role_manage-applications=Administrer applikationer
|
||||
role_manage-identity-providers=Administrer identitetsudbydere
|
||||
role_manage-clients=Administrer klienter
|
||||
role_manage-events=Administrer h\u00e6ndelser
|
||||
role_view-profile=Se profil
|
||||
role_manage-account=Administrer konto
|
||||
role_manage-account-links=Administrer konto links
|
||||
role_read-token=Se token
|
||||
role_offline-access=Offline adgang
|
||||
client_account=Konto
|
||||
client_account-console=Kontokonsol
|
||||
client_security-admin-console=Sikkerhefds Admin Konsol
|
||||
client_admin-cli=Admin CLI
|
||||
client_realm-management=Rige administration
|
||||
client_broker=Broker
|
||||
invalidUserMessage=Ugyldig brugernavn eller adgangskode.
|
||||
invalidEmailMessage=Ugyldig email adresse.
|
||||
accountDisabledMessage=Kontoen er deaktiveret, kontakt en administrator.
|
||||
accountTemporarilyDisabledMessage=Kontoen er midlertidigt deaktiveret, kontakt en administrator eller pr\u00f8v igen senere.
|
||||
expiredCodeMessage=Log ind tog for lang tid. Pr\u00f8v igen.
|
||||
expiredActionMessage=Handlingen er udl\u00f8bet. Forts\u00e6t med log ind nu.
|
||||
expiredActionTokenNoSessionMessage=Handling udl\u00f8bet.
|
||||
expiredActionTokenSessionExistsMessage=Handlingen er udl\u00f8bet. Start venligst forfra.
|
||||
missingFirstNameMessage=Angiv fornavn.
|
||||
missingLastNameMessage=Angiv efternavn.
|
||||
missingEmailMessage=Angiv email adressse.
|
||||
missingUsernameMessage=Angiv brugernavn.
|
||||
missingPasswordMessage=Angiv password.
|
||||
missingTotpMessage=Angiv autentificerings kode.
|
||||
notMatchPasswordMessage=Passwords er ikke ens.
|
||||
invalidPasswordExistingMessage=Ugyldig eksisterende adgangskode.
|
||||
invalidPasswordBlacklistedMessage=Ugyldig adgangskode\: Adgangskoden er sortlisted.
|
||||
invalidPasswordConfirmMessage=Adgangskoderne er ikke ens
|
||||
invalidTotpMessage=Ugyldig autentificerings kode.
|
||||
usernameExistsMessage=Brugernavnet eksisterer allerede.
|
||||
emailExistsMessage=Email adressen eksisterer allerede.
|
||||
federatedIdentityExistsMessage=Bruger med {0} {1} eksisterer allerede. Log ind i konto administration for at linke kontoen.
|
||||
confirmLinkIdpTitle=Kontoen eksisterer allerede
|
||||
federatedIdentityConfirmLinkMessage=Bruger med {0} {1} eksisterer allerede. Hvordan vil du forts\u00e6tte?
|
||||
federatedIdentityConfirmReauthenticateMessage=Log ind som {0} for at linke din konto med {1}
|
||||
confirmLinkIdpReviewProfile=Se profil
|
||||
confirmLinkIdpContinue=Tilf\u00f8j til eksisterende konto
|
||||
configureTotpMessage=Du skal ops\u00e6tte en Mobile Authenticator for at kunne aktivere din konto.
|
||||
updateProfileMessage=Du skal opdatere din brugerprofil for at kunne aktivere din konto.
|
||||
updatePasswordMessage=Du skal \u00e6ndre din adgangskode for at kunne aktivere din konto.
|
||||
resetPasswordMessage=Du skal \u00e6ndre din adgangskode.
|
||||
verifyEmailMessage=Du skal verificere din email adresse for at kunne aktivere din konto.
|
||||
linkIdpMessage=Du skal verificere din email adresse for at kunne kontoen med {0}.
|
||||
emailSentMessage=Du vil snarest modtage en email med yderligere instruktioner.
|
||||
emailSendErrorMessage=Kunne ikke sende email, pr\u00f8v igen senere.
|
||||
accountUpdatedMessage=Din konto er blevet opdateret.
|
||||
accountPasswordUpdatedMessage=Din adgangskode er blevet opdateret.
|
||||
delegationCompleteHeader=Login lykkedes
|
||||
delegationCompleteMessage=Du kan nu lukke dette browser vindue og g\u00e5 tilbage til din konsol applikation.
|
||||
delegationFailedHeader=Log ind fejlede
|
||||
delegationFailedMessage=Du kan nu lukke dette browser vindue og g\u00e5 tilbage til din konsol applikation for at fors\u00f8ge at logge ind igen.
|
||||
noAccessMessage=Ingen adgang
|
||||
invalidPasswordMinLengthMessage=Ugyldig adgangskode\: minimum l\u00e6ngde {0}.
|
||||
invalidPasswordMinDigitsMessage=Ugyldig adgangskode\: skal minimum indeholde {0} tal.
|
||||
invalidPasswordMinLowerCaseCharsMessage=Ugyldig adgangskode\: skal minimum indeholde {0} sm\u00e5 bogstaver.
|
||||
invalidPasswordMinUpperCaseCharsMessage=Ugyldig adgangskode\: skal minimum indeholde {0} store bogstaver.
|
||||
invalidPasswordMinSpecialCharsMessage=Ugyldig adgangskode\: skal minimum indeholde {0} specialtegn.
|
||||
invalidPasswordNotUsernameMessage=Ugyldig adgangskode\: m\u00e5 ikke v\u00e6re identisk med brugernavnet.
|
||||
invalidPasswordRegexPatternMessage=Ugyldig adgangskode\: Ikke i stand til at matche regex m\u00f8nstre.
|
||||
invalidPasswordHistoryMessage=Ugyldig adgangskode\: m\u00e5 ikke v\u00e6re identisk med nogle af de seneste {0} adgangskoder.
|
||||
invalidPasswordGenericMessage=Ugyldig adgangskode\: ny adgangskode matcher ikke vores adgangskode politikker.
|
||||
failedToProcessResponseMessage=Ude af stand til at processere svaret
|
||||
httpsRequiredMessage=HTTPS p\u00e5kr\u00e6vet
|
||||
realmNotEnabledMessage=Riget er ikke aktiveret
|
||||
invalidRequestMessage=Ugyldig Foresp\u00f8rgsel
|
||||
failedLogout=Logud fejlede
|
||||
unknownLoginRequesterMessage=Ukendt log ind foresp\u00f8rger
|
||||
loginRequesterNotEnabledMessage=Log ind foresp\u00f8rgeren er ikke aktiveret
|
||||
bearerOnlyMessage=Bearer-only applikationer m\u00e5 ikke foretage browser login
|
||||
standardFlowDisabledMessage=Klienten m\u00e5 ikke foretage browser login med den givne response_type. Standard flowet er deaktiveret for klienten.
|
||||
implicitFlowDisabledMessage=Klienten m\u00e5 ikke foretage browser login med den givne response_type. Implicit flowet er deaktiveret for klienten.
|
||||
invalidRedirectUriMessage=Ugyldig redirect uri
|
||||
unsupportedNameIdFormatMessage=Ikke underst\u00f8ttet NameIDFormat
|
||||
invalidRequesterMessage=Ugyldig foresp\u00f8rger
|
||||
registrationNotAllowedMessage=Registrering er ikke tilladt
|
||||
resetCredentialNotAllowedMessage=Reset Credential er ikke tilladt
|
||||
permissionNotApprovedMessage=Tilladelse ikke godkendt.
|
||||
noRelayStateInResponseMessage=Ingen rel\u00e6 tilstand i svaret fra identitetsudbyderen.
|
||||
insufficientPermissionMessage=Utilstr\u00e6kkelig tilladelse for at kunne linke identiter.
|
||||
couldNotProceedWithAuthenticationRequestMessage=Kunne ikke forts\u00e6tte med godkendelsesanmodning til identitetsudbyderen.
|
||||
couldNotObtainTokenMessage=Kunne ikke opn\u00e5 token fra identitetsudbyder.
|
||||
unexpectedErrorRetrievingTokenMessage=Uventet fejl i fors\u00f8get p\u00e5 at hente token fra identitetsudbyder.
|
||||
unexpectedErrorHandlingResponseMessage=Uventet fejl i fors\u00f8get p\u00e5 at behandle svaret fra identitetsudbyder.
|
||||
identityProviderAuthenticationFailedMessage=Log ind fejlede. Kunne ikke logge ind ved identitetsudbyder.
|
||||
couldNotSendAuthenticationRequestMessage=Kunne ikke sende log ind foresp\u00f8rgsel til identitetsudbyder.
|
||||
unexpectedErrorHandlingRequestMessage=Uventet fejl under h\u00e5ndteringen af foresp\u00f8rgsel til identitetsudbyder.
|
||||
invalidAccessCodeMessage=Ugyldig adgangskode.
|
||||
sessionNotActiveMessage=Sessionen er ikke aktiv.
|
||||
invalidCodeMessage=Der opstod en fejl, log ind igen via din applikation.
|
||||
identityProviderUnexpectedErrorMessage=Uventet fejl under log ind ved identitetsudbyder
|
||||
identityProviderNotFoundMessage=Kunne ikke finde en identitetsudbyder med det angivede id.
|
||||
identityProviderLinkSuccess=Din email er nu verificeret. G\u00e5 tilbage til din oprindelige browser og forts\u00e6t log ind derfra.
|
||||
staleCodeMessage=Siden er ikke l\u00e6ngere gyldig, g\u00e5 tilbage til din applikation og login igen
|
||||
realmSupportsNoCredentialsMessage=Riget underst\u00f8tter ikke nogen legimatitionstype.
|
||||
credentialSetupRequired=Kan ikke logge ind. Legimatitionstype skal konfigureres.
|
||||
identityProviderNotUniqueMessage=Riget underst\u00f8tter flere forskellige identitetsudbydere. Kunne ikke beslutte hvilken identitetsudbyder der skulle bruges til at logge ind med.
|
||||
emailVerifiedMessage=Din email adresse er verificeret.
|
||||
staleEmailVerificationLink=Linket du har klikket p\u00e5 er et gammelt udl\u00f8bet link. M\u00e5ske har du allerede verificeret din mailadresse?
|
||||
identityProviderAlreadyLinkedMessage=Forbundsidentitet returneret af {0} er allerede linket til en anden bruger.
|
||||
confirmAccountLinking=Bekr\u00e6ft sammenkobling af konto {0} fra identitetsudbyder {1} med din konto.
|
||||
confirmEmailAddressVerification=Bekr\u00e6ft gyldigheden af email adresse {0}.
|
||||
confirmExecutionOfActions=Udf\u00f8r f\u00f8lgende handling(er)
|
||||
backToApplication=« Tilbage til applikation
|
||||
missingParameterMessage=Manglende parametre\: {0}
|
||||
clientNotFoundMessage=Klienten kunne ikke findes.
|
||||
clientDisabledMessage=Klienten er deaktiveret.
|
||||
invalidParameterMessage=Ugyldig parameter\: {0}
|
||||
alreadyLoggedIn=Du er allerede logget ind.
|
||||
differentUserAuthenticated=Du er allerede logget ind som en anden bruger ''{0}'' i denne session. Log venligst ud f\u00f8rst.
|
||||
brokerLinkingSessionExpired=Har foresp\u00f8rgt kobling mellem m\u00e6glerkonti, men den nuv\u00e6rende session er ikke l\u00e6ngere gyldig.
|
||||
proceedWithAction=» Tryk her for at forts\u00e6tte
|
||||
requiredAction.CONFIGURE_TOTP=Konfigurer OTP
|
||||
requiredAction.TERMS_AND_CONDITIONS=Vilk\u00e5r og betingelser
|
||||
requiredAction.UPDATE_PASSWORD=Opdater Adgangskode
|
||||
requiredAction.UPDATE_PROFILE=Opdater Profil
|
||||
requiredAction.VERIFY_EMAIL=Verificer email adresse
|
||||
doX509Login=Du vil blive logget ind som\:
|
||||
clientCertificate=X509 client certificate\:
|
||||
noCertificate=[No Certificate]
|
||||
pageNotFound=Siden kunne ikke findes
|
||||
internalServerError=Der opstod en intern server fejl.
|
||||
console-username=Brugernavn\:
|
||||
console-password=Adgangskode\:
|
||||
console-otp=Engangskode\:
|
||||
console-new-password=Ny Adgangskode\:
|
||||
console-confirm-password=Bekr\u00e6ft Adgangskode\:
|
||||
console-update-password=Du skal opdatere din adgangskode.
|
||||
console-verify-email=Du skal verificere din email adresse. En email er blevet sendt til {0} som indeholder en verificerings kode. Indtast koden i input feltet herunder.
|
||||
console-email-code=Email Kode\:
|
||||
console-accept-terms=Accepter Vilk\u00e5r? [j/n]\:
|
||||
console-accept=j
|
||||
auth-username-form-display-name=Brugernavn
|
||||
auth-username-form-help-text=Start log ind ved at indtaste dit brugernavn
|
||||
auth-username-password-form-display-name=Brugernavn og adgangskode
|
||||
auth-username-password-form-help-text=Log ind ved at indtaste dit brugernavn og adgangskode
|
||||
doBack=Tilbage
|
||||
doTryAgain=Pr\u00f8v igen
|
||||
doTryAnotherWay=Pr\u00f8v p\u00e5 en anden m\u00e5de
|
||||
rolesScopeConsentText=Brugerroller
|
||||
restartLoginTooltip=Start log ind forfra
|
||||
loginTotpStep3DeviceName=Angiv et udstyrsnavn for at kunne holde rede p\u00e5 udstyr med engangskode.
|
||||
loginCredential=Credential
|
||||
loginTotpDeviceName=Udstyrsnavn
|
||||
loginChooseAuthenticator=V\u00e6lg metode til log ind
|
||||
requiredFields=N\u00f8dvendige felter
|
||||
invalidUsernameMessage=Ugyldigt brugernavn.
|
||||
invalidUsernameOrEmailMessage=Ugyldigt brugernavn eller email.
|
||||
invalidPasswordMessage=Ugyldig adangskode.
|
||||
missingTotpDeviceNameMessage=Angiv venligst et udstyrsnavn.
|
||||
nestedFirstBrokerFlowMessage={0} brugeren {1} er ikke forbundet til nogen kendt bruger.
|
||||
openshift.scope.user_info=Brugerinformation
|
||||
openshift.scope.user_check-access=Brugeradgangsinformation
|
||||
openshift.scope.user_full=Fuld adgang
|
||||
openshift.scope.list-projects=Vis liste af projekter
|
||||
saml.post-form.title=Log ind Redirect
|
||||
saml.post-form.message=Redirigerer, vent venligst.
|
||||
saml.post-form.js-disabled=JavaScript er disabled. Vi anbefaler st\u00e6rkt at enbable det. Klik p\u00e5 knappen nedenfor for at forts\u00e6tte.
|
||||
otp-display-name=Engangskodegenerator
|
||||
otp-help-text=Indtast en godkendelseskode fra engangskodegeneratoren.
|
||||
password-display-name=Adgangskode
|
||||
password-help-text=Log ind ved at indtaste din adgangskode.
|
||||
webauthn-display-name=Sikkerhedsn\u00f8gle
|
||||
webauthn-help-text=Brug din sikkerhedsn\u00f8gle for at logge ind.
|
||||
webauthn-passwordless-display-name=Sikkerhedsn\u00f8gle
|
||||
webauthn-passwordless-help-text=Brug din sikkerhedsn\u00f8gle for at logge ind uden adgangskode.
|
||||
webauthn-login-title=Log ind med sikkerhedsn\u00f8gle
|
||||
webauthn-registration-title=Registrering af Sikkerhedsn\u00f8gle
|
||||
webauthn-available-authenticators=Tilg\u00e6ngelige log ind m\u00e5der
|
||||
webauthn-error-title=Sikkerhedsn\u00f8glefejl
|
||||
webauthn-error-registration=Det lykkedes ikke at registrere din sikkerhedsn\u00f8gle.
|
||||
webauthn-error-api-get=Det lykkedes ikke at logge ind med din sikkerhedsn\u00f8gle.
|
||||
webauthn-error-different-user=Den f\u00f8rste authenticatede bruger er ikke den der er authenticated med sikkerhedsn\u00f8glen.
|
||||
webauthn-error-auth-verification=Resultatet fra log ind med sikkerhedsn\u00f8gle er ugyldigt.
|
||||
webauthn-error-register-verification=Resultatet fra registrering med sikkerhedsn\u00f8glen er ugyldigt.
|
||||
webauthn-error-user-not-found=Ukendt bruger authenticated med sikkerhedsn\u00f8glen.
|
||||
identity-provider-redirector=Forbind med en anden Identitetsudbyder
|
||||
readOnlyUsernameMessage=Du kan ikke opdatere dit brugernavn da det er read-only.
|
||||
shouldBeEqual={0} b\u00f8r v\u00e6re lig med {1}
|
||||
shouldBeDifferent={0} b\u00f8r v\u00e6re forskellig fra {1}
|
||||
shouldMatchPattern=M\u00f8nsteret b\u00f8r matche\: `/{0}/`
|
||||
mustBeAnInteger=Skal v\u00e6re et heltal
|
||||
notAValidOption=Ikke en gyldig mulighed
|
||||
selectAnOption=V\u00e6lg en mulighed
|
||||
remove=Fjern
|
||||
addValue=Tilf\u00f8j v\u00e6rdi
|
||||
languages=Sprog
|
@ -0,0 +1,457 @@
|
||||
|
||||
doLogIn=Anmelden
|
||||
doRegister=Registrieren
|
||||
doRegisterSecurityKey=Registrieren
|
||||
doCancel=Abbrechen
|
||||
doSubmit=Absenden
|
||||
doBack=Zur\u00fcck
|
||||
doYes=Ja
|
||||
doNo=Nein
|
||||
doContinue=Weiter
|
||||
doIgnore=Ignorieren
|
||||
doAccept=Annehmen
|
||||
doDecline=Ablehnen
|
||||
doForgotPassword=Passwort vergessen?
|
||||
doClickHere=Hier klicken
|
||||
doImpersonate=Identit\u00e4tswechsel
|
||||
doTryAgain=Erneut versuchen
|
||||
doTryAnotherWay=Einen anderen Weg versuchen
|
||||
doConfirmDelete=L\u00f6schung best\u00e4tigen
|
||||
errorDeletingAccount=Beim L\u00f6schen des Kontos ist ein Fehler aufgetreten
|
||||
deletingAccountForbidden=Sie haben nicht gen\u00fcgend Berechtigungen, um Ihr eigenes Konto zu l\u00f6schen, wenden Sie sich an einen Administrator.
|
||||
kerberosNotConfigured=Kerberos ist nicht konfiguriert.
|
||||
kerberosNotConfiguredTitle=Kerberos nicht konfiguriert
|
||||
bypassKerberosDetail=Sie sind entweder nicht mit Kerberos angemeldet, oder Ihr Browser ist nicht f\u00fcr eine Anmeldung mit Kerberos konfiguriert. Bitte klicken Sie auf Weiter, damit Sie sich auf eine andere Art anmelden k\u00f6nnen
|
||||
kerberosNotSetUp=Kerberos ist nicht konfiguriert. Sie k\u00f6nnen sich damit nicht anmelden.
|
||||
registerTitle=Registrierung
|
||||
loginAccountTitle=Bei Ihrem Konto anmelden
|
||||
loginTitle=Anmeldung bei {0}
|
||||
loginTitleHtml={0}
|
||||
impersonateTitle={0} Identit\u00e4tswechsel
|
||||
impersonateTitleHtml=<strong>{0}</strong> Identit\u00e4tswechsel
|
||||
realmChoice=Realm
|
||||
unknownUser=Unbekannter Benutzer
|
||||
loginTotpTitle=Mehrfachauthentifizierung konfigurieren
|
||||
loginProfileTitle=Benutzerkonto Informationen aktualisieren
|
||||
loginIdpReviewProfileTitle=Benutzerkonto Informationen aktualisieren
|
||||
loginTimeout=Sie haben zu lange gebraucht, um sich anzumelden. Bitte versuchen Sie es erneut.
|
||||
reauthenticate=Zum Fortsetzen bitte erneut anmelden
|
||||
authenticateStrong=Um fortzufahren wird ein st\u00e4rkeres Authentifizierungsverfahren ben\u00f6tigt
|
||||
oauthGrantTitle=Zugang zu {0} gew\u00e4hren
|
||||
oauthGrantTitleHtml={0}
|
||||
oauthGrantInformation=Stellen Sie sicher, dass Sie {0} vertrauen k\u00f6nnen und informieren Sie sich dar\u00fcber, wie {0} mit Ihren Daten umgeht.
|
||||
oauthGrantReview=Pr\u00fcfen Sie gerne die
|
||||
oauthGrantTos=Nutzungsbedingungen.
|
||||
oauthGrantPolicy=Datenschutzrichtlinie.
|
||||
errorTitle=Es ist ein Fehler aufgetreten.
|
||||
errorTitleHtml=Es ist ein Fehler aufgetreten.
|
||||
emailVerifyTitle=E-Mail verifizieren
|
||||
emailForgotTitle=Passwort vergessen?
|
||||
updateEmailTitle=E-Mail aktualisieren
|
||||
emailUpdateConfirmationSentTitle=E-Mail Sendebest\u00e4tigung
|
||||
emailUpdateConfirmationSent=Eine Best\u00e4tigungs-E-Mail wurde an {0} versendet. Bitte folgen Sie den Anweisungen, um die Aktualisierung der E-Mail abzuschlie\u00dfen.
|
||||
emailUpdatedTitle=E-Mail aktualisiert
|
||||
emailUpdated=Die E-Mail wurde erfolgreich zu {0} aktualisiert.
|
||||
updatePasswordTitle=Passwort aktualisieren
|
||||
codeSuccessTitle=Erfolgreicher Code
|
||||
codeErrorTitle=Fehlercode\: {0}
|
||||
displayUnsupported=Angeforderter Anzeigetyp wird nicht unterst\u00fctzt
|
||||
browserRequired=Browser f\u00fcr die Anmeldung erforderlich
|
||||
browserContinue=Browser erforderlich, um die Anmeldung abzuschlie\u00dfen
|
||||
browserContinuePrompt=Browser \u00f6ffnen und Anmeldung fortsetzen? [y/n]\:
|
||||
browserContinueAnswer=y
|
||||
termsTitle=Bedingungen und Konditionen
|
||||
termsText=
|
||||
termsPlainText=Zu definierende Bedingungen und Konditionen.
|
||||
termsAcceptanceRequired=Sie m\u00fcssen unseren Bedingungen und Konditionen zustimmen.
|
||||
acceptTerms=Ich stimme den Bedingungen und Konditionen zu
|
||||
deleteCredentialTitle=L\u00f6sche {0}
|
||||
deleteCredentialMessage=Wollen Sie {0} l\u00f6schen?
|
||||
recaptchaFailed=Ung\u00fcltiges Recaptcha
|
||||
recaptchaNotConfigured=Recaptcha Eingabe ist erforderlich, jedoch noch nicht konfiguriert.
|
||||
consentDenied=Zustimmung verweigert.
|
||||
noAccount=Neuer Benutzer?
|
||||
username=Benutzername
|
||||
usernameOrEmail=Benutzername oder E-Mail
|
||||
firstName=Vorname
|
||||
givenName=Vorname
|
||||
fullName=Voller Name
|
||||
lastName=Nachname
|
||||
familyName=Nachname
|
||||
email=E-Mail
|
||||
password=Passwort
|
||||
passwordConfirm=Passwort best\u00e4tigen
|
||||
passwordNew=Neues Passwort
|
||||
passwordNewConfirm=Neues Passwort best\u00e4tigen
|
||||
hidePassword=Passwort ausblenden
|
||||
showPassword=Passwort einblenden
|
||||
rememberMe=Angemeldet bleiben
|
||||
authenticatorCode=One-time Code
|
||||
address=Adresse
|
||||
street=Stra\u00dfe
|
||||
locality=Stadt oder Ortschaft
|
||||
region=Staat, Provinz, Region
|
||||
postal_code=PLZ
|
||||
country=Land
|
||||
emailVerified=E-Mail verifiziert
|
||||
website=Website
|
||||
phoneNumber=Telefonnummer
|
||||
phoneNumberVerified=Telefonnummer verifiziert
|
||||
gender=Geschlecht
|
||||
birthday=Geburtsdatum
|
||||
zoneinfo=Zeitzone
|
||||
gssDelegationCredential=GSS delegierte Berechtigung
|
||||
logoutOtherSessions=Von anderen Ger\u00e4ten abmelden
|
||||
profileScopeConsentText=Nutzerkonto
|
||||
emailScopeConsentText=E-Mail Adresse
|
||||
addressScopeConsentText=Adresse
|
||||
phoneScopeConsentText=Telefonnummer
|
||||
offlineAccessScopeConsentText=Offline Zugriff
|
||||
samlRoleListScopeConsentText=Meine Rollen
|
||||
rolesScopeConsentText=Nutzerrollen
|
||||
restartLoginTooltip=Login neu starten
|
||||
loginTotpIntro=Sie m\u00fcssen einen One Time Passwort-Generator einrichten, um auf dieses Konto zugreifen zu k\u00f6nnen.
|
||||
loginTotpStep1=Installieren Sie eine der folgenden Applikationen auf Ihrem Smartphone\:
|
||||
loginTotpStep2=\u00d6ffnen Sie die Applikation und scannen Sie den QR-Code\:
|
||||
loginTotpStep3=Geben Sie den von der Applikation generierten One-time Code ein und klicken Sie auf Absenden.
|
||||
loginTotpStep3DeviceName=Geben Sie einen Ger\u00e4tenamen an, um die Verwaltung Ihrer OTP-Ger\u00e4te zu erleichtern.
|
||||
loginTotpManualStep2=\u00d6ffnen Sie die Applikation und geben Sie den folgenden Schl\u00fcssel ein\:
|
||||
loginTotpManualStep3=Verwenden Sie die folgenden Konfigurationswerte, falls Sie diese f\u00fcr die Applikation anpassen k\u00f6nnen\:
|
||||
loginTotpUnableToScan=Sie k\u00f6nnen den QR-Code nicht scannen?
|
||||
loginTotpScanBarcode=QR-Code scannen?
|
||||
loginCredential=Anmeldeinformation
|
||||
loginOtpOneTime=One-time code
|
||||
loginTotpType=Typ
|
||||
loginTotpAlgorithm=Algorithmus
|
||||
loginTotpDigits=Ziffern
|
||||
loginTotpInterval=Intervall
|
||||
loginTotpCounter=Z\u00e4hler
|
||||
loginTotpDeviceName=Ger\u00e4tename
|
||||
loginTotp.totp=zeitbasiert (time-based)
|
||||
loginTotp.hotp=z\u00e4hlerbasiert (counter-based)
|
||||
loginChooseAuthenticator=Login Methode ausw\u00e4hlen
|
||||
oauthGrantRequest=Wollen Sie diese Zugriffsrechte gew\u00e4hren?
|
||||
inResource=in
|
||||
oauth2DeviceVerificationTitle=Ger\u00e4te-Login
|
||||
verifyOAuth2DeviceUserCode=Geben Sie den Code von Ihrem Ger\u00e4t ein und klicken Sie auf Senden
|
||||
oauth2DeviceInvalidUserCodeMessage=Ung\u00fcltiger Code, bitte probieren Sie es erneut.
|
||||
oauth2DeviceExpiredUserCodeMessage=Der Code ist abgelaufen. Bitte versuchen Sie, Ihr Ger\u00e4t erneut zu verbinden.
|
||||
oauth2DeviceVerificationCompleteHeader=Ger\u00e4te-Login erfolgreich
|
||||
oauth2DeviceVerificationCompleteMessage=Sie k\u00f6nnen dieses Browser-Fenster schlie\u00dfen und auf Ihrem Ger\u00e4t weiterarbeiten.
|
||||
oauth2DeviceVerificationFailedHeader=Ger\u00e4te-Login fehlgeschlagen
|
||||
oauth2DeviceVerificationFailedMessage=Sie k\u00f6nnen dieses Browser-Fenster schlie\u00dfen und versuchen, Ihr Ger\u00e4t erneut zu verbinden.
|
||||
oauth2DeviceConsentDeniedMessage=Zustimmung f\u00fcr Verbindung mit dem Ger\u00e4t verweigert.
|
||||
oauth2DeviceAuthorizationGrantDisabledMessage=Der Client ist nicht berechtigt, den OAuth 2.0 Device Authorization Grant auszuf\u00fchren. Der Flow wurde f\u00fcr diesen Client deaktiviert.
|
||||
emailVerifyInstruction1=Eine E-Mail mit Anweisungen, um Ihre E-Mail-Adresse zu \u00fcberpr\u00fcfen, wurde an Ihre Adresse geschickt {0}.
|
||||
emailVerifyInstruction2=Sie haben keinen verifizierungs Code in Ihrer E-Mail erhalten?
|
||||
emailVerifyInstruction3=um eine neue E-Mail versenden zu lassen.
|
||||
emailLinkIdpTitle={0} verkn\u00fcpfen
|
||||
emailLinkIdp1=Eine E-Mail mit weiteren Anweisungen um {0} Konto {1} mit Ihrem {2} Konto zu verkn\u00fcpfen wurde an Sie versendet.
|
||||
emailLinkIdp2=Sie haben keinen Code in Ihrer E-Mail erhalten?
|
||||
emailLinkIdp3=um eine neue E-Mail versenden zu lassen.
|
||||
emailLinkIdp4=Wenn Sie die E-Mail bereits in einem anderen Browser verifiziert haben
|
||||
emailLinkIdp5=um fortzufahren.
|
||||
backToLogin=« Zur\u00fcck zur Anmeldung
|
||||
emailInstruction=Geben Sie Ihren Benutzernamen oder Ihre E-Mail Adresse ein und klicken Sie auf Absenden. Danach werden wir Ihnen eine E-Mail mit weiteren Instruktionen zusenden.
|
||||
emailInstructionUsername=Geben Sie Ihren Benutzernamen ein und klicken Sie auf Absenden. Danach werden wir Ihnen eine E-Mail mit weiteren Instruktionen zusenden.
|
||||
copyCodeInstruction=Bitte kopieren Sie den folgenden Code und f\u00fcgen ihn in die Applikation ein\:
|
||||
pageExpiredTitle=Diese Seite ist nicht mehr g\u00fcltig.
|
||||
pageExpiredMsg1=Um den Anmeldevorgang neu zu starten
|
||||
pageExpiredMsg2=Um den Anmeldevorgang fortzusetzen
|
||||
personalInfo=Pers\u00f6nliche Informationen\:
|
||||
role_admin=Admin
|
||||
role_realm-admin=Realm Admin
|
||||
role_create-realm=Realm erstellen
|
||||
role_create-client=Client erstellen
|
||||
role_view-realm=Realm ansehen
|
||||
role_view-users=Benutzer ansehen
|
||||
role_view-applications=Applikationen ansehen
|
||||
role_view-clients=Clients ansehen
|
||||
role_view-events=Events ansehen
|
||||
role_view-identity-providers=Identity Provider ansehen
|
||||
role_manage-realm=Realm verwalten
|
||||
role_manage-users=Benutzer verwalten
|
||||
role_manage-applications=Applikationen verwalten
|
||||
role_manage-identity-providers=Identity Provider verwalten
|
||||
role_manage-clients=Clients verwalten
|
||||
role_manage-events=Events verwalten
|
||||
role_view-profile=Profile ansehen
|
||||
role_manage-account=Profile verwalten
|
||||
role_manage-account-links=Profil-Links verwalten
|
||||
role_read-token=Token lesen
|
||||
role_offline-access=Offline-Zugriff
|
||||
client_account=Clientkonto
|
||||
client_account-console=Accountkonsole
|
||||
client_security-admin-console=Security Adminkonsole
|
||||
client_admin-cli=Admin CLI
|
||||
client_realm-management=Realm-Management
|
||||
client_broker=Broker
|
||||
requiredFields=Ben\u00f6tigte Felder
|
||||
invalidUserMessage=Ung\u00fcltiger Benutzername oder Passwort.
|
||||
invalidUsernameMessage=Ung\u00fcltiger Benutzername.
|
||||
invalidUsernameOrEmailMessage=Ung\u00fcltiger Benutzername oder E-Mail.
|
||||
invalidPasswordMessage=Ung\u00fcltiges Passwort.
|
||||
invalidEmailMessage=Ung\u00fcltige E-Mail-Adresse.
|
||||
accountDisabledMessage=Ihr Benutzerkonto ist gesperrt, bitte kontaktieren Sie den Admin.
|
||||
accountTemporarilyDisabledMessage=Ihr Benutzerkonto ist tempor\u00e4r gesperrt. Bitte kontaktieren Sie den Admin oder versuchen Sie es sp\u00e4ter noch einmal.
|
||||
expiredCodeMessage=Zeit\u00fcberschreitung bei der Anmeldung. Bitte melden Sie sich erneut an.
|
||||
expiredActionMessage=Die Aktion ist nicht mehr g\u00fcltig. Bitte fahren Sie nun mit der Anmeldung fort.
|
||||
expiredActionTokenNoSessionMessage=Die Aktion ist nicht mehr g\u00fcltig.
|
||||
expiredActionTokenSessionExistsMessage=Die Aktion ist nicht mehr g\u00fcltig. Bitte fangen Sie noch einmal an.
|
||||
sessionLimitExceeded=Es existieren zu viele aktive Sessions
|
||||
missingFirstNameMessage=Bitte geben Sie einen Vornamen ein.
|
||||
missingLastNameMessage=Bitte geben Sie einen Nachnamen ein.
|
||||
missingEmailMessage=Bitte geben Sie eine E-Mail-Adresse ein.
|
||||
missingUsernameMessage=Bitte geben Sie einen Benutzernamen ein.
|
||||
missingPasswordMessage=Bitte geben Sie ein Passwort ein.
|
||||
missingTotpMessage=Bitte geben Sie den One-time Code ein.
|
||||
missingTotpDeviceNameMessage=Bitte geben Sie einen Ger\u00e4tenamen ein.
|
||||
notMatchPasswordMessage=Passw\u00f6rter sind nicht identisch.
|
||||
error-invalid-value=Ung\u00fcltiger Wert.
|
||||
error-invalid-blank=Bitte geben Sie einen Wert an.
|
||||
error-empty=Bitte geben Sie einen Wert an.
|
||||
error-invalid-length=L\u00e4nge muss zwischen {1} und {2} Zeichen liegen.
|
||||
error-invalid-length-too-short=Minimale L\u00e4nge ist {1}.
|
||||
error-invalid-length-too-long=Maximale L\u00e4nge ist {2}.
|
||||
error-invalid-email=Ung\u00fcltige E-Mail-Adresse.
|
||||
error-invalid-number=Ung\u00fcltige Nummer.
|
||||
error-number-out-of-range=Nummer muss zwischen {1} und {2} liegen.
|
||||
error-number-out-of-range-too-small=Nummer muss einen minimalen Wert von {1} haben.
|
||||
error-number-out-of-range-too-big=Nummer muss einen maximalen Wert von {2} haben.
|
||||
error-pattern-no-match=Ung\u00fcltiger Wert.
|
||||
error-invalid-uri=Ung\u00fcltige URL.
|
||||
error-invalid-uri-scheme=Ung\u00fcltiges URL-Schema.
|
||||
error-invalid-uri-fragment=Ung\u00fcltiger URL-Bestandteil.
|
||||
error-user-attribute-required=Bitte f\u00fcllen Sie dieses Feld aus.
|
||||
error-invalid-date=Ung\u00fcltiges Datum.
|
||||
error-user-attribute-read-only=Dieses Feld darf nicht editiert werden.
|
||||
error-username-invalid-character=Wert enth\u00e4lt ung\u00fcltiges Zeichen.
|
||||
error-person-name-invalid-character=Wert enth\u00e4lt ung\u00fcltiges Zeichen.
|
||||
error-reset-otp-missing-id=Bitte w\u00e4hlen Sie eine OTP-Konfiguration aus.
|
||||
invalidPasswordExistingMessage=Das aktuelle Passwort ist ung\u00fcltig.
|
||||
invalidPasswordBlacklistedMessage=Ung\u00fcltiges Passwort\: Das Passwort steht auf der Blockliste (schwarzen Liste).
|
||||
invalidPasswordConfirmMessage=Die Passwortbest\u00e4tigung ist nicht identisch.
|
||||
invalidTotpMessage=Ung\u00fcltiger One-time Code.
|
||||
usernameExistsMessage=Benutzername existiert bereits.
|
||||
emailExistsMessage=E-Mail existiert bereits.
|
||||
federatedIdentityExistsMessage=Ein Benutzer mit {0} {1} existiert bereits. Bitte melden Sie sich an der Benutzerkontoverwaltung an um den Benutzer zu verkn\u00fcpfen.
|
||||
federatedIdentityUnavailableMessage=Der mit dem Identit\u00e4tsanbieter {1} authentifizierte Benutzer {0} ist nicht vorhanden. Bitte wenden Sie sich an Ihren Administrator.
|
||||
federatedIdentityUnmatchedEssentialClaimMessage=Dem vom Identit\u00e4tsanbieter ausgestellten ID-Token fehlen die passenden Claims. Bitte kontaktieren Sie Ihren Administrator.
|
||||
confirmLinkIdpTitle=Das Benutzerkonto existiert bereits.
|
||||
federatedIdentityConfirmLinkMessage=Ein Benutzer mit {0} {1} existiert bereits. Wie m\u00f6chten Sie fortfahren?
|
||||
federatedIdentityConfirmReauthenticateMessage=Anmelden um das Benutzerkonto mit {0} zu verkn\u00fcpfen
|
||||
nestedFirstBrokerFlowMessage=Der {0} Benutzer {1} ist mit keinem bekannten Benutzer verkn\u00fcpfen.
|
||||
confirmLinkIdpReviewProfile=Benutzerkonto \u00fcberpr\u00fcfen
|
||||
confirmLinkIdpContinue=Zu einem bestehenden Benutzerkonto hinzuf\u00fcgen
|
||||
configureTotpMessage=Sie m\u00fcssen eine Mehrfachauthentifizierung einrichten, um das Benutzerkonto zu aktivieren.
|
||||
configureBackupCodesMessage=Sie m\u00fcssen Backup Codes einrichten, um das Benutzerkonto zu aktivieren.
|
||||
updateProfileMessage=Sie m\u00fcssen Ihr Benutzerkonto aktualisieren, um das Benutzerkonto zu aktivieren.
|
||||
updatePasswordMessage=Sie m\u00fcssen Ihr Passwort \u00e4ndern, um das Benutzerkonto zu aktivieren.
|
||||
updateEmailMessage=Sie m\u00fcssen Ihre E-Mail-Adresse aktualisieren, um das Benutzerkonto zu aktivieren..
|
||||
resetPasswordMessage=Sie m\u00fcssen Ihr Passwort \u00e4ndern.
|
||||
verifyEmailMessage=Sie m\u00fcssen Ihre E-Mail-Adresse verifizieren, um das Benutzerkonto zu aktivieren.
|
||||
linkIdpMessage=Sie m\u00fcssen Ihre E-Mail-Adresse verifizieren, um Ihr Benutzerkonto mit {0} zu verkn\u00fcpfen.
|
||||
emailSentMessage=Sie sollten in K\u00fcrze eine E-Mail mit weiteren Instruktionen erhalten.
|
||||
emailSendErrorMessage=Die E-Mail konnte nicht versendet werden. Bitte versuchen Sie es sp\u00e4ter noch einmal.
|
||||
accountUpdatedMessage=Ihr Benutzerkonto wurde aktualisiert.
|
||||
accountPasswordUpdatedMessage=Ihr Passwort wurde aktualisiert.
|
||||
delegationCompleteHeader=Login Erfolgreich
|
||||
delegationCompleteMessage=Sie k\u00f6nnen dieses Browserfenster schlie\u00dfen und zu Ihrer Konsolenanwendung zur\u00fcckkehren.
|
||||
delegationFailedHeader=Login Fehlgeschlagen
|
||||
delegationFailedMessage=Sie k\u00f6nnen dieses Browserfenster schlie\u00dfen und zu Ihrer Konsolenanwendung zur\u00fcckkehren und versuchen, sich erneut anzumelden.
|
||||
noAccessMessage=Kein Zugriff
|
||||
invalidPasswordMinLengthMessage=Ung\u00fcltiges Passwort\: Es muss mindestens {0} Zeichen lang sein.
|
||||
invalidPasswordMaxLengthMessage=Ung\u00fcltiges Passwort\: Es darf h\u00f6chstens {0} Zeichen lang sein.
|
||||
invalidPasswordMinDigitsMessage=Ung\u00fcltiges Passwort\: Es muss mindestens {0} Zahl(en) beinhalten.
|
||||
invalidPasswordMinLowerCaseCharsMessage=Ung\u00fcltiges Passwort\: Es muss mindestens {0} Kleinbuchstaben beinhalten.
|
||||
invalidPasswordMinUpperCaseCharsMessage=Ung\u00fcltiges Passwort\: Es muss mindestens {0} Gro\u00dfbuchstaben beinhalten.
|
||||
invalidPasswordMinSpecialCharsMessage=Ung\u00fcltiges Passwort\: Es muss mindestens {0} Sonderzeichen beinhalten.
|
||||
invalidPasswordNotUsernameMessage=Ung\u00fcltiges Passwort\: Es darf nicht gleich sein wie der Benutzername.
|
||||
invalidPasswordNotEmailMessage=Ung\u00fcltiges Passwort\: darf nicht identisch mit der E-Mail-Adresse sein.
|
||||
invalidPasswordRegexPatternMessage=Ung\u00fcltiges Passwort\: Es entspricht nicht dem Regex-Muster.
|
||||
invalidPasswordHistoryMessage=Ung\u00fcltiges Passwort\: Es darf nicht einem der letzten {0} Passw\u00f6rter entsprechen.
|
||||
invalidPasswordGenericMessage=Ung\u00fcltiges Passwort\: Es verletzt die Passwort-Richtlinien.
|
||||
failedToProcessResponseMessage=Konnte Antwort nicht verarbeiten.
|
||||
httpsRequiredMessage=HTTPS erforderlich.
|
||||
realmNotEnabledMessage=Realm nicht aktiviert.
|
||||
invalidRequestMessage=Ung\u00fcltiger Request.
|
||||
successLogout=Sie sind abgemeldet.
|
||||
failedLogout=Logout fehlgeschlagen.
|
||||
unknownLoginRequesterMessage=Ung\u00fcltiger Login Requester.
|
||||
loginRequesterNotEnabledMessage=Login Requester nicht aktiviert.
|
||||
bearerOnlyMessage=Bearer-only Clients k\u00f6nnen sich nicht via Browser anmelden.
|
||||
standardFlowDisabledMessage=Client darf sich mit diesem response_type nicht via Browser anmelden. Standard Flow ist f\u00fcr diesen Client deaktiviert.
|
||||
implicitFlowDisabledMessage=Client darf sich mit diesem response_type nicht via Browser anmelden. Implicit Flow ist f\u00fcr diesen Client deaktiviert.
|
||||
invalidRedirectUriMessage=Ung\u00fcltige Redirect Uri.
|
||||
unsupportedNameIdFormatMessage=Nicht unterst\u00fctztes NameIDFormat.
|
||||
invalidRequesterMessage=Ung\u00fcltiger Requester.
|
||||
registrationNotAllowedMessage=Registrierung nicht erlaubt.
|
||||
resetCredentialNotAllowedMessage=Reset Credential nicht erlaubt.
|
||||
permissionNotApprovedMessage=Berechtigung nicht best\u00e4tigt.
|
||||
noRelayStateInResponseMessage=Kein Relay State in der Antwort von Identity Provider.
|
||||
insufficientPermissionMessage=Nicht gen\u00fcgend Rechte, um die Identit\u00e4t zu verkn\u00fcpfen.
|
||||
couldNotProceedWithAuthenticationRequestMessage=Konnte die Authentifizierungsanfrage nicht weiter verarbeiten.
|
||||
couldNotObtainTokenMessage=Konnte kein Token vom Identity Provider erhalten.
|
||||
unexpectedErrorRetrievingTokenMessage=Unerwarteter Fehler w\u00e4hrend dem Empfang des Tokens vom Identity Provider.
|
||||
unexpectedErrorHandlingResponseMessage=Unerwarteter Fehler w\u00e4hrend der Bearbeitung der Antwort vom Identity Provider.
|
||||
identityProviderAuthenticationFailedMessage=Authentifizierung fehlgeschlagen. Authentifizierung mit dem Identity Provider nicht m\u00f6glich.
|
||||
couldNotSendAuthenticationRequestMessage=Konnte Authentifizierungsanfrage nicht an den Identity Provider senden.
|
||||
unexpectedErrorHandlingRequestMessage=Unerwarteter Fehler w\u00e4hrend der Bearbeitung der Anfrage an den Identity Provider.
|
||||
invalidAccessCodeMessage=Ung\u00fcltiger Access-Code.
|
||||
sessionNotActiveMessage=Session nicht aktiv.
|
||||
invalidCodeMessage=Ung\u00fcltiger Code, bitte melden Sie sich erneut \u00fcber die Applikation an.
|
||||
cookieNotFoundMessage=Cookie konnte nicht gefunden werden. Bitte stellen Sie sicher, dass Cookies in Ihrem Browser aktiviert sind.
|
||||
insufficientLevelOfAuthentication=Die angefragte St\u00e4rke des Authentifizierungsverfahrens wurde nicht erf\u00fcllt.
|
||||
identityProviderUnexpectedErrorMessage=Unerwarteter Fehler w\u00e4hrend der Authentifizierung mit dem Identity Provider.
|
||||
identityProviderMissingStateMessage=Fehlender state-Parameter in der Antwort vom Identit\u00e4tsanbieter.
|
||||
identityProviderMissingCodeOrErrorMessage=Fehlender code- oder error-Parameter in der Antwort vom Identit\u00e4tsanbieter.
|
||||
identityProviderInvalidResponseMessage=Ung\u00fcltige Antwort vom Identity Provider.
|
||||
identityProviderInvalidSignatureMessage=Ung\u00fcltige Signatur in der Antwort vom Identity Provider.
|
||||
identityProviderNotFoundMessage=Konnte keinen Identity Provider zu der Identit\u00e4t finden.
|
||||
identityProviderLinkSuccess=Sie haben Ihre E-Mail-Adresse erfolgreich verifiziert. Bitte kehren Sie zu Ihrem urspr\u00fcnglichen Browser zur\u00fcck und fahren Sie dort mit der Anmeldung fort.
|
||||
staleCodeMessage=Diese Seite ist nicht mehr g\u00fcltig, bitte kehren Sie zu Ihrer Applikation zur\u00fck und melden Sie sich erneut an.
|
||||
realmSupportsNoCredentialsMessage=Realm unterst\u00fctzt keine Credential Typen.
|
||||
credentialSetupRequired=Anmeldung nicht m\u00f6glich, Einrichtung der Anmeldeinformationen erforderlich.
|
||||
identityProviderNotUniqueMessage=Der Realm unterst\u00fctzt mehrere Identity Provider. Es konnte kein eindeutiger Identity Provider zum Authentifizieren gew\u00e4hlt werden.
|
||||
emailVerifiedMessage=Ihre E-Mail-Adresse wurde erfolgreich verifiziert.
|
||||
emailVerifiedAlreadyMessage=Ihre E-Mail-Adresse wurde bereits verifiziert.
|
||||
staleEmailVerificationLink=Der von Ihnen angeklickte Link ist nicht mehr g\u00fcltig. Eventuell haben Sie Ihre E-Mail-Adresse bereits verifiziert.
|
||||
identityProviderAlreadyLinkedMessage=Die f\u00f6derierte Identit\u00e4t von {0} ist bereits einem anderen Benutzer zugewiesen.
|
||||
confirmAccountLinking=Best\u00e4tigen Sie den Account {0} des Identity Provider {1} mit Ihrem Account zu verkn\u00fcpfen.
|
||||
confirmEmailAddressVerification=Best\u00e4tigen Sie, dass die E-Mail-Adresse {0} g\u00fcltig ist.
|
||||
confirmExecutionOfActions=F\u00fchren Sie die folgende(n) Aktion(en) aus
|
||||
backToApplication=« Zur\u00fcck zur Applikation
|
||||
missingParameterMessage=Fehlender Parameter\: {0}
|
||||
clientNotFoundMessage=Client nicht gefunden.
|
||||
clientDisabledMessage=Client deaktiviert.
|
||||
invalidParameterMessage=Ung\u00fcltiger Parameter\: {0}
|
||||
alreadyLoggedIn=Sie sind bereits angemeldet.
|
||||
differentUserAuthenticated=Sie sind in dieser Session bereits mit einem anderen Benutzer ''{0}'' angemeldet. Bitte melden Sie sich zuerst ab.
|
||||
brokerLinkingSessionExpired=Broker Account Linking angefordert; Ihre Session ist allerdings nicht mehr g\u00fcltig.
|
||||
proceedWithAction=\u00bb Klicken Sie hier um fortzufahren
|
||||
acrNotFulfilled=Anforderungen an die Authentifizierung nicht erf\u00fcllt
|
||||
requiredAction.CONFIGURE_TOTP=Mehrfachauthentifizierung konfigurieren
|
||||
requiredAction.TERMS_AND_CONDITIONS=Bedingungen und Konditionen
|
||||
requiredAction.UPDATE_PASSWORD=Passwort aktualisieren
|
||||
requiredAction.UPDATE_PROFILE=Profil aktualisieren
|
||||
requiredAction.VERIFY_EMAIL=E-Mail-Adresse verifizieren
|
||||
requiredAction.CONFIGURE_RECOVERY_AUTHN_CODES=Wiederherstellungscodes einrichten
|
||||
requiredAction.webauthn-register-passwordless=Kennwortlose Authentifizierung einrichten
|
||||
invalidTokenRequiredActions=Die im Link angegebenen erforderlichen Aktionen sind nicht bekannt
|
||||
doX509Login=Sie werden angemeldet als\:
|
||||
clientCertificate=X509 Client Zertifikat\:
|
||||
noCertificate=[Kein Zertifikat]
|
||||
pageNotFound=Seite nicht gefunden
|
||||
internalServerError=Es ist ein interner Server-Fehler aufgetreten
|
||||
console-username=Benutzername\:
|
||||
console-password=Passwort\:
|
||||
console-otp=One Time Passwort\:
|
||||
console-new-password=Neues Passwort\:
|
||||
console-confirm-password=Passwort best\u00e4tigen\:
|
||||
console-update-password=Eine Aktualisierung Ihres Passworts ist erforderlich.
|
||||
console-verify-email=Sie m\u00fcssen Ihre E-Mail-Adresse verifizieren. Wir haben eine E-Mail an {0} gesendet, die einen Verifizierungscode enth\u00e4lt. Bitte geben Sie diesen Code in das untenstehende Eingabefeld ein.
|
||||
console-email-code=E-Mail Code\:
|
||||
console-accept-terms=Nutzungsbedingungen akzeptieren? [y/n]\:
|
||||
console-accept=y
|
||||
openshift.scope.user_info=Nutzerinformation
|
||||
openshift.scope.user_check-access=Benutzerzugriffsinformationen
|
||||
openshift.scope.user_full=Voller Zugriff
|
||||
openshift.scope.list-projects=Projekte auflisten
|
||||
saml.post-form.title=Authentifizierungsumleitung
|
||||
saml.post-form.message=Sie werden weitergeleitet, bitte warten.
|
||||
saml.post-form.js-disabled=JavaScript ist deaktiviert. Wir empfehlen dringend, es zu aktivieren. Klicken Sie auf die Schaltfl\u00e4che unten, um fortzufahren.
|
||||
saml.artifactResolutionServiceInvalidResponse=Artefakt konnte nicht aufgel\u00f6st werden.
|
||||
otp-display-name=Authenticator-Anwendung
|
||||
otp-help-text=Eingabe eines Verifizierungscodes aus der Authenticator-Anwendung.
|
||||
otp-reset-description=Welche OTP-Konfiguration soll entfernt werden?
|
||||
password-display-name=Passwort
|
||||
password-help-text=Melden Sie sich an, indem Sie Ihr Passwort eingeben.
|
||||
auth-username-form-display-name=Benutzername
|
||||
auth-username-form-help-text=Anmelden durch Eingabe des Benutzernamens
|
||||
auth-username-password-form-display-name=Benutzername und Passwort
|
||||
auth-username-password-form-help-text=Anmelden, indem Sie Ihren Benutzernamen und Ihr Passwort eingeben.
|
||||
auth-recovery-authn-code-form-display-name=Wiederherstellungscode
|
||||
auth-recovery-authn-code-form-help-text=Geben Sie einen Wiederherstellungscode aus einer zuvor erstellten Liste ein.
|
||||
auth-recovery-code-info-message=Geben Sie den angegebenen Wiederherstellungscode ein.
|
||||
auth-recovery-code-prompt=Wiederherstellungscode \#{0}
|
||||
auth-recovery-code-header=Anmeldung mit einem Wiederherstellungscode
|
||||
recovery-codes-error-invalid=Ung\u00fcltiger Wiederherstellungscode
|
||||
recovery-code-config-header=Wiederherstellungscode
|
||||
recovery-code-config-warning-title=Diese Wiederherstellungscodes werden nach Verlassen dieser Seite nicht mehr angezeigt
|
||||
recovery-code-config-warning-message=Drucken Sie sie aus, laden Sie sie herunter oder kopieren Sie sie in einen Passwort-Manager und speichern Sie sie. Wenn Sie diese Einrichtung abbrechen, werden die Wiederherstellungscodes von Ihrem Konto entfernt.
|
||||
recovery-codes-print=Drucken
|
||||
recovery-codes-download=Herunterladen
|
||||
recovery-codes-copy=Kopieren
|
||||
recovery-codes-copied=Kopiert
|
||||
recovery-codes-confirmation-message=Ich habe diese Codes an einem sicheren Ort gespeichert
|
||||
recovery-codes-action-complete=Fertigstellen
|
||||
recovery-codes-action-cancel=Abbrechen
|
||||
recovery-codes-download-file-header=Bewahren Sie diese Wiederherstellungscodes an einem sicheren Ort auf.
|
||||
recovery-codes-download-file-description=Wiederherstellungscodes sind einmalig verwendbare Passw\u00f6rter, mit denen Sie sich bei Ihrem Konto anmelden k\u00f6nnen, wenn Sie keinen Zugriff auf Ihren Authentifikator haben.
|
||||
recovery-codes-download-file-date=Diese Codes wurden generiert am
|
||||
recovery-codes-label-default=Wiederherstellungscodes
|
||||
webauthn-display-name=Passkey
|
||||
webauthn-help-text=Verwenden Sie Ihren Passkey zur Anmeldung.
|
||||
webauthn-passwordless-display-name=Passkey
|
||||
webauthn-passwordless-help-text=Verwenden Sie Ihren Passkey zur kennwortlosen Anmeldung.
|
||||
webauthn-login-title=Anmeldung mit Passkey
|
||||
webauthn-registration-title=Passkey registrieren
|
||||
webauthn-available-authenticators=Verf\u00fcgbare Passkeys
|
||||
webauthn-unsupported-browser-text=WebAuthn wird von diesem Browser nicht unterst\u00fctzt. Versuchen Sie es mit einem anderen oder wenden Sie sich an Ihren Administrator.
|
||||
webauthn-doAuthenticate=Anmelden mit Passkey
|
||||
webauthn-createdAt-label=Angelegt
|
||||
webauthn-error-title=Passkey Fehler
|
||||
webauthn-error-registration=Fehler beim Registrieren Ihres Passkeys.<br/> {0}
|
||||
webauthn-error-api-get=Fehler beim Authentifizieren mit dem Passkey.<br/> {0}
|
||||
webauthn-error-different-user=Der erste authentifizierte Benutzer ist nicht derjenige, der durch den Passkey authentifiziert wurde.
|
||||
webauthn-error-auth-verification=Das Ergebnis der Passkey-Authentifizierung ist ung\u00fcltig.<br/> {0}
|
||||
webauthn-error-register-verification=Das Ergebnis der Passkey-Registrierung ist ung\u00fcltig.<br/> {0}
|
||||
webauthn-error-user-not-found=Unbekannter Benutzer, der mit dem Passkey authentifiziert wurde.
|
||||
identity-provider-redirector=Mit einem anderen Indentit\u00e4tsprovider verbinden
|
||||
identity-provider-login-label=Oder anmelden mit
|
||||
idp-email-verification-display-name=E-Mail Verifizierung
|
||||
idp-email-verification-help-text=Best\u00e4tigen Sie Ihr Benutzerkonto \u00fcber den Empfang einer E-Mail
|
||||
idp-username-password-form-display-name=Passwort Verifizierung
|
||||
idp-username-password-form-help-text=Best\u00e4tigen Sie Ihr Benutzerkonto mit Benutzername und Passwort
|
||||
finalDeletionConfirmation=Wenn Sie Ihr Konto l\u00f6schen, kann es nicht wiederhergestellt werden. Um Ihr Konto zu behalten, klicken Sie auf Abbrechen.
|
||||
irreversibleAction=Diese Aktion ist unwiderruflich
|
||||
deleteAccountConfirm=L\u00f6schung des Kontos best\u00e4tigen
|
||||
deletingImplies=Die L\u00f6schung Ihres Kontos bedeutet\:
|
||||
errasingData=L\u00f6schen aller Ihrer Daten
|
||||
loggingOutImmediately=Sofortige Abmeldung
|
||||
accountUnusable=Eine sp\u00e4tere Nutzung der Anwendung ist mit diesem Konto nicht mehr m\u00f6glich
|
||||
userDeletedSuccessfully=Nutzer erfolgreich gel\u00f6scht
|
||||
access-denied=Zugriff verweigert
|
||||
access-denied-when-idp-auth=Zugriff verweigert wenn \u00fcber {0} authentifiziert
|
||||
frontchannel-logout.title=Abmelden
|
||||
frontchannel-logout.message=Sie melden sich von folgenden Anwendungen ab
|
||||
logoutConfirmTitle=Abmelden
|
||||
logoutConfirmHeader=Wollen Sie sich abmelden?
|
||||
doLogout=Abmelden
|
||||
readOnlyUsernameMessage=Sie k\u00f6nnen Ihren Benutzernamen nicht \u00e4ndern, da er schreibgesch\u00fctzt ist.
|
||||
error-invalid-multivalued-size=Attribut {0} muss mindestens {1} und h\u00f6chstens {2} Werte haben.
|
||||
webauthn-registration-init-label=Passkey (Standard Bezeichnung)
|
||||
nfc=NFC
|
||||
identityProviderLogoutFailure=Fehler bei Logout mit SAML Identit\u00e4tsanbieter
|
||||
webauthn-registration-init-label-prompt=Bitte geben Sie die Bezeichnung Ihres registrierten Passkeys ein
|
||||
internal=Intern
|
||||
unknown=Unbekannt
|
||||
usb=USB
|
||||
bluetooth=Bluetooth
|
||||
organizationScopeConsentText=Organisation
|
||||
totpAppFreeOTPName=FreeOTP
|
||||
totpAppGoogleName=Google Authenticator
|
||||
totpAppMicrosoftAuthenticatorName=Microsoft Authenticator
|
||||
confirmOverrideIdpTitle=Es besteht bereits eine Verk\u00fcpfung mit einem Identit\u00e4tsanbieter
|
||||
federatedIdentityConfirmOverrideMessage=Sie versuchen, Ihr Benutzerkonto {0} mit dem {1} Benutzerkonto {2} zu verkn\u00fcpfen. Ihr Benutzerkonto ist jedoch bereits mit einem anderen {3} Benutzerkonto {4} verkn\u00fcpft. K\u00f6nnen Sie best\u00e4tigen, ob Sie die bestehende Verkn\u00fcpfung durch das neue Benutzerkonto ersetzen m\u00f6chten?
|
||||
confirmOverrideIdpContinue=Ja, die Verkn\u00fcpfung mit dem neuen Benutzerkonto ersetzen.
|
||||
invalidPasswordNotContainsUsernameMessage=Ung\u00fcltiges Passwort\: darf nicht den Benutzernamen enthalten.
|
||||
shouldBeEqual={0} sollte gleich {1} sein
|
||||
shouldBeDifferent={0} sollte sich von {1} unterscheiden
|
||||
shouldMatchPattern=Muster sollte \u00fcbereinstimmen\: `/{0}/`
|
||||
mustBeAnInteger=Muss eine ganze Zahl sein
|
||||
notAValidOption=Keine g\u00fcltige Option
|
||||
selectAnOption=W\u00e4hlen Sie eine Option
|
||||
remove=Entfernen
|
||||
addValue=Wert hinzuf\u00fcgen
|
||||
languages=Sprachen
|
@ -0,0 +1,436 @@
|
||||
|
||||
doLogIn=\u0395\u03af\u03c3\u03bf\u03b4\u03bf\u03c2
|
||||
doRegister=\u0395\u03b3\u03b3\u03c1\u03b1\u03c6\u03ae
|
||||
doRegisterSecurityKey=\u0395\u03b3\u03b3\u03c1\u03b1\u03c6\u03ae
|
||||
doCancel=\u0391\u03ba\u03cd\u03c1\u03c9\u03c3\u03b7
|
||||
doSubmit=\u0395\u03c6\u03b1\u03c1\u03bc\u03bf\u03b3\u03ae
|
||||
doBack=\u0395\u03c0\u03b9\u03c3\u03c4\u03c1\u03bf\u03c6\u03ae
|
||||
doYes=\u039d\u03b1\u03b9
|
||||
doNo=\u038c\u03c7\u03b9
|
||||
doContinue=\u03a3\u03c5\u03bd\u03ad\u03c7\u03b5\u03b9\u03b1
|
||||
doIgnore=\u0391\u03b3\u03bd\u03cc\u03b7\u03c3\u03b7
|
||||
doAccept=\u0391\u03c0\u03bf\u03b4\u03bf\u03c7\u03ae
|
||||
doDecline=\u0391\u03c0\u03cc\u03c1\u03c1\u03b9\u03c8\u03b7
|
||||
doForgotPassword=\u039e\u03b5\u03c7\u03ac\u03c3\u03b1\u03c4\u03b5 \u03c4\u03bf \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc;
|
||||
doClickHere=\u03a0\u03b1\u03c4\u03ae\u03c3\u03c4\u03b5 \u0395\u03b4\u03ce
|
||||
doImpersonate=\u03a0\u03c1\u03bf\u03c3\u03c0\u03bf\u03af\u03b7\u03c3\u03b7
|
||||
doTryAgain=\u0394\u03bf\u03ba\u03b9\u03bc\u03ae \u039e\u03b1\u03bd\u03ac
|
||||
doTryAnotherWay=\u0394\u03bf\u03ba\u03b9\u03bc\u03ae \u03bc\u03b5 \u03ac\u03bb\u03bb\u03b7 \u03bc\u03ad\u03b8\u03bf\u03b4\u03bf
|
||||
doConfirmDelete=\u0395\u03c0\u03b9\u03b2\u03b5\u03b2\u03b1\u03af\u03c9\u03c3\u03b7 \u03b4\u03b9\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae\u03c2
|
||||
errorDeletingAccount=\u03a3\u03c6\u03ac\u03bb\u03bc\u03b1 \u03ba\u03b1\u03c4\u03ac \u03c4\u03b7 \u03b4\u03b9\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae \u03c4\u03bf\u03c5 \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03bf\u03cd
|
||||
deletingAccountForbidden=\u0394\u03b5\u03bd \u03ad\u03c7\u03b5\u03c4\u03b5 \u03c4\u03bf \u03b4\u03b9\u03ba\u03b1\u03af\u03c9\u03bc\u03b1 \u03bd\u03b1 \u03b4\u03b9\u03b1\u03b3\u03c1\u03ac\u03c8\u03b5\u03c4\u03b5 \u03c4\u03bf\u03bd \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03cc \u03c3\u03b1\u03c2, \u03b5\u03c0\u03b9\u03ba\u03bf\u03b9\u03bd\u03c9\u03bd\u03ae\u03c3\u03c4\u03b5 \u03bc\u03b5 \u03c4\u03bf\u03bd \u03b4\u03b9\u03b1\u03c7\u03b5\u03b9\u03c1\u03b9\u03c3\u03c4\u03ae.
|
||||
kerberosNotConfigured=\u03a4\u03bf Kerberos \u0394\u03b5\u03bd \u0388\u03c7\u03b5\u03b9 \u03a1\u03c5\u03b8\u03bc\u03b9\u03c3\u03c4\u03b5\u03af
|
||||
kerberosNotConfiguredTitle=\u03a4\u03bf Kerberos \u0394\u03b5\u03bd \u0388\u03c7\u03b5\u03b9 \u03a1\u03c5\u03b8\u03bc\u03b9\u03c3\u03c4\u03b5\u03af
|
||||
bypassKerberosDetail=\u0395\u03af\u03c4\u03b5 \u03b4\u03b5\u03bd \u03ad\u03c7\u03b5\u03c4\u03b5 \u03c3\u03c5\u03bd\u03b4\u03b5\u03b8\u03b5\u03af \u03bc\u03ad\u03c3\u03c9 Kerberos \u03ae \u03bf \u03c0\u03b5\u03c1\u03b9\u03b7\u03b3\u03b7\u03c4\u03ae\u03c2 \u03c3\u03b1\u03c2 \u03b4\u03b5\u03bd \u03ad\u03c7\u03b5\u03b9 \u03c1\u03c5\u03b8\u03bc\u03b9\u03c3\u03c4\u03b5\u03af \u03b3\u03b9\u03b1 \u03b5\u03af\u03c3\u03bf\u03b4\u03bf \u03bc\u03b5 Kerberos. \u03a0\u03b1\u03c4\u03ae\u03c3\u03c4\u03b5 \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03c3\u03c5\u03bd\u03b5\u03c7\u03af\u03c3\u03b5\u03c4\u03b5 \u03c4\u03b7\u03bd \u03b5\u03af\u03c3\u03bf\u03b4\u03bf \u03bc\u03b5 \u03ac\u03bb\u03bb\u03b5\u03c2 \u03bc\u03b5\u03b8\u03cc\u03b4\u03bf\u03c5\u03c2
|
||||
kerberosNotSetUp=\u03a4\u03bf Kerberos \u03b4\u03b5\u03bd \u03ad\u03c7\u03b5\u03b9 \u03c1\u03c5\u03b8\u03bc\u03b9\u03c3\u03c4\u03b5\u03af. \u0394\u03b5\u03bd \u03bc\u03c0\u03bf\u03c1\u03b5\u03af\u03c4\u03b5 \u03bd\u03b1 \u03b5\u03b9\u03c3\u03ad\u03bb\u03b8\u03b5\u03c4\u03b5.
|
||||
registerTitle=\u0395\u03b3\u03b3\u03c1\u03b1\u03c6\u03ae
|
||||
loginAccountTitle=\u0395\u03af\u03c3\u03bf\u03b4\u03bf\u03c2 \u03c3\u03c4\u03bf \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03cc \u03c3\u03b1\u03c2
|
||||
loginTitle=\u0395\u03af\u03c3\u03bf\u03b4\u03bf\u03c2 \u03c3\u03c4\u03bf {0}
|
||||
loginTitleHtml={0}
|
||||
impersonateTitle={0} \u03a0\u03c1\u03bf\u03c3\u03c0\u03bf\u03af\u03b7\u03c3\u03b7 \u03a7\u03c1\u03ae\u03c3\u03c4\u03b7
|
||||
impersonateTitleHtml=<strong>{0}</strong> \u03a0\u03c1\u03bf\u03c3\u03c0\u03bf\u03af\u03b7\u03c3\u03b7 \u03a7\u03c1\u03ae\u03c3\u03c4\u03b7
|
||||
realmChoice=\u03a0\u03b5\u03c1\u03b9\u03bf\u03c7\u03ae
|
||||
unknownUser=\u0386\u03b3\u03bd\u03c9\u03c3\u03c4\u03bf\u03c2 \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7\u03c2
|
||||
loginTotpTitle=\u03a1\u03cd\u03b8\u03bc\u03b9\u03c3\u03b7 Authenticator \u039a\u03b9\u03bd\u03b7\u03c4\u03bf\u03cd
|
||||
loginProfileTitle=\u0395\u03bd\u03b7\u03bc\u03ad\u03c1\u03c9\u03c3\u03b7 \u03a0\u03bb\u03b7\u03c1\u03bf\u03c6\u03bf\u03c1\u03b9\u03ce\u03bd \u039b\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03bf\u03cd
|
||||
loginIdpReviewProfileTitle=\u0395\u03bd\u03b7\u03bc\u03ad\u03c1\u03c9\u03c3\u03b7 \u03a0\u03bb\u03b7\u03c1\u03bf\u03c6\u03bf\u03c1\u03b9\u03ce\u03bd \u039b\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03bf\u03cd
|
||||
loginTimeout=\u0397 \u03c0\u03c1\u03bf\u03c3\u03c0\u03ac\u03b8\u03b5\u03b9\u03b1 \u03b5\u03b9\u03c3\u03cc\u03b4\u03bf\u03c5 \u03c3\u03b1\u03c2 \u03ad\u03bb\u03b7\u03be\u03b5. \u0395\u03af\u03c3\u03bf\u03b4\u03bf\u03c2 \u03b1\u03c0\u03cc \u03c4\u03b7\u03bd \u03b1\u03c1\u03c7\u03ae.
|
||||
reauthenticate=\u0393\u03b9\u03b1 \u03bd\u03b1 \u03c3\u03c5\u03bd\u03b5\u03c7\u03af\u03c3\u03b5\u03c4\u03b5 \u03c0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03b3\u03b9\u03b1 \u03b1\u03c5\u03b8\u03b5\u03bd\u03c4\u03b9\u03ba\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7 \u03be\u03b1\u03bd\u03ac
|
||||
oauthGrantTitle=\u0394\u03ce\u03c3\u03c4\u03b5 \u03a0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7 \u03c3\u03c4\u03bf {0}
|
||||
oauthGrantTitleHtml={0}
|
||||
oauthGrantInformation=\u0392\u03b5\u03b2\u03b1\u03b9\u03c9\u03b8\u03b5\u03af\u03c4\u03b5 \u03cc\u03c4\u03b9 \u03b5\u03bc\u03c0\u03b9\u03c3\u03c4\u03b5\u03cd\u03b5\u03c3\u03c4\u03b5 \u03c4\u03bf {0} \u03bc\u03b1\u03b8\u03b1\u03af\u03bd\u03bf\u03bd\u03c4\u03b1\u03c2 \u03c0\u03c9\u03c2 \u03c4\u03bf {0} \u03b8\u03b1 \u03c7\u03b5\u03b9\u03c1\u03af\u03b6\u03b5\u03c4\u03b1\u03b9 \u03c4\u03b1 \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03b1 \u03c3\u03b1\u03c2.
|
||||
oauthGrantReview=\u039c\u03c0\u03bf\u03c1\u03b5\u03af\u03c4\u03b5 \u03bd\u03b1 \u03b5\u03bb\u03ad\u03b3\u03be\u03b5\u03c4\u03b5 \u03c4\u03b1
|
||||
oauthGrantTos=\u03cc\u03c1\u03bf\u03b9 \u03c4\u03b7\u03c2 \u03c5\u03c0\u03b7\u03c1\u03b5\u03c3\u03af\u03b1\u03c2.
|
||||
oauthGrantPolicy=\u03c0\u03bf\u03bb\u03b9\u03c4\u03b9\u03ba\u03ae \u03b9\u03b4\u03b9\u03c9\u03c4\u03b9\u03ba\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2.
|
||||
errorTitle=\u0396\u03b7\u03c4\u03ac\u03bc\u03b5 \u03c3\u03c5\u03b3\u03bd\u03ce\u03bc\u03b7...
|
||||
errorTitleHtml=\u0396\u03b7\u03c4\u03ac\u03bc\u03b5 <strong>\u03c3\u03c5\u03b3\u03bd\u03ce\u03bc\u03b7</strong> ...
|
||||
emailVerifyTitle=\u03a0\u03b9\u03c3\u03c4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7 Email
|
||||
emailForgotTitle=\u039e\u03b5\u03c7\u03ac\u03c3\u03b1\u03c4\u03b5 \u03c4\u03bf \u039a\u03c9\u03b4\u03b9\u03ba\u03cc;
|
||||
updateEmailTitle=\u0395\u03bd\u03b7\u03bc\u03ad\u03c1\u03c9\u03c3\u03b7 email
|
||||
emailUpdateConfirmationSentTitle=\u03a3\u03c4\u03ac\u03bb\u03b8\u03b7\u03ba\u03b5 email \u03b5\u03c0\u03b9\u03b2\u03b5\u03b2\u03b1\u03af\u03c9\u03c3\u03b7\u03c2
|
||||
emailUpdateConfirmationSent=\u0388\u03bd\u03b1 email \u03b5\u03c0\u03b9\u03b2\u03b5\u03b2\u03b1\u03af\u03c9\u03c3\u03b7\u03c2 \u03c3\u03c4\u03ac\u03bb\u03b8\u03b7\u03ba\u03b5 \u03c3\u03c4\u03bf {0}. \u0391\u03ba\u03bf\u03bb\u03bf\u03c5\u03b8\u03ae\u03c3\u03c4\u03b5 \u03c4\u03b9\u03c2 \u03bf\u03b4\u03b7\u03b3\u03af\u03b5\u03c2 \u03b5\u03ba\u03b5\u03af, \u03ce\u03c3\u03c4\u03b5 \u03bd\u03b1 \u03bf\u03bb\u03bf\u03ba\u03bb\u03b7\u03c1\u03ce\u03c3\u03b5\u03c4\u03b5 \u03c4\u03b7\u03bd \u03b5\u03bd\u03b7\u03bc\u03ad\u03c1\u03c9\u03c3\u03b7 \u03c4\u03bf\u03c5 email.
|
||||
emailUpdatedTitle=\u0395\u03bd\u03b7\u03bc\u03ad\u03c1\u03c9\u03c3\u03b7 email
|
||||
emailUpdated=\u03a4\u03bf email \u03c4\u03bf\u03c5 \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03bf\u03cd \u03ac\u03bb\u03bb\u03b1\u03be\u03b5 \u03b5\u03c0\u03b9\u03c4\u03c5\u03c7\u03ce\u03c2 \u03c3\u03b5 {0}.
|
||||
updatePasswordTitle=\u0395\u03bd\u03b7\u03bc\u03ad\u03c1\u03c9\u03c3\u03b7 \u03ba\u03c9\u03b4\u03b9\u03ba\u03bf\u03cd
|
||||
codeSuccessTitle=\u0395\u03c0\u03b9\u03c4\u03c5\u03c7\u03ae\u03c2 \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc\u03c2
|
||||
codeErrorTitle=\u0391\u03c1\u03b9\u03b8\u03bc\u03cc\u03c2 \u03c3\u03c6\u03ac\u03bb\u03bc\u03b1\u03c4\u03bf\u03c2\: {0}
|
||||
displayUnsupported=\u039c\u03b7 \u03c5\u03c0\u03bf\u03c3\u03c4\u03b7\u03c1\u03b9\u03b6\u03cc\u03bc\u03b5\u03bd\u03bf\u03c2 \u03c4\u03cd\u03c0\u03bf\u03c2 \u03bf\u03b8\u03cc\u03bd\u03b7\u03c2
|
||||
browserRequired=\u0391\u03c0\u03b1\u03b9\u03c4\u03b5\u03af\u03c4\u03b1\u03b9 browser \u03b3\u03b9\u03b1 \u03c4\u03b7\u03bd \u03b5\u03af\u03c3\u03bf\u03b4\u03bf
|
||||
browserContinue=\u0391\u03c0\u03b1\u03b9\u03c4\u03b5\u03af\u03c4\u03b1\u03b9 browser \u03b3\u03b9\u03b1 \u03c4\u03b7\u03bd \u03bf\u03bb\u03bf\u03ba\u03bb\u03ae\u03c1\u03c9\u03c3\u03b7 \u03c4\u03b7\u03c2 \u03b5\u03b9\u03c3\u03cc\u03b4\u03bf\u03c5
|
||||
browserContinuePrompt=\u0395\u03ba\u03ba\u03af\u03bd\u03b7\u03c3\u03b7 browser \u03ba\u03b1\u03b9 \u03c3\u03c5\u03bd\u03ad\u03c7\u03b5\u03b9\u03b1 \u03c3\u03c4\u03b7\u03bd \u03b5\u03af\u03c3\u03bf\u03b4\u03bf [\u03bd/\u03bf]\:
|
||||
browserContinueAnswer=\u03bd
|
||||
usb=USB
|
||||
nfc=NFC
|
||||
bluetooth=Bluetooth
|
||||
internal=\u0395\u03c3\u03c9\u03c4\u03b5\u03c1\u03b9\u03ba\u03cc
|
||||
unknown=\u0386\u03b3\u03bd\u03c9\u03c3\u03c4\u03bf
|
||||
termsTitle=\u038c\u03c1\u03bf\u03b9 \u03ba\u03b1\u03b9 \u03a3\u03c5\u03bd\u03b8\u03ae\u03ba\u03b5\u03c2
|
||||
termsText=
|
||||
termsPlainText=\u0394\u03b5\u03bd \u03ad\u03c7\u03bf\u03c5\u03bd \u03bf\u03c1\u03b9\u03c3\u03c4\u03b5\u03af \u038c\u03c1\u03bf\u03b9 \u03ba\u03b1\u03b9 \u03a3\u03c5\u03bd\u03b8\u03ae\u03ba\u03b5\u03c2.
|
||||
recaptchaFailed=\u0386\u03ba\u03c5\u03c1\u03bf Recaptcha
|
||||
recaptchaNotConfigured=\u0391\u03c0\u03b1\u03b9\u03c4\u03b5\u03af\u03c4\u03b1\u03b9 Recaptcha, \u03b1\u03bb\u03bb\u03ac \u03b4\u03b5\u03bd \u03ad\u03c7\u03b5\u03b9 \u03c1\u03c5\u03b8\u03bc\u03b9\u03c3\u03c4\u03b5\u03af
|
||||
consentDenied=\u0386\u03c1\u03bd\u03b7\u03c3\u03b7 \u03a3\u03c5\u03bd\u03b1\u03af\u03bd\u03b5\u03c3\u03b7\u03c2.
|
||||
noAccount=\u039d\u03ad\u03bf\u03c2 \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7\u03c2;
|
||||
username=\u038c\u03bd\u03bf\u03bc\u03b1 \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7
|
||||
usernameOrEmail=\u038c\u03bd\u03bf\u03bc\u03b1 \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7 \u03ae email
|
||||
firstName=\u038c\u03bd\u03bf\u03bc\u03b1
|
||||
givenName=\u038c\u03bd\u03bf\u03bc\u03b1
|
||||
fullName=\u039f\u03bd\u03bf\u03bc\u03b1\u03c4\u03b5\u03c0\u03ce\u03bd\u03c5\u03bc\u03bf
|
||||
lastName=\u0395\u03c0\u03ce\u03bd\u03c5\u03bc\u03bf
|
||||
familyName=\u0395\u03c0\u03ce\u03bd\u03c5\u03bc\u03bf
|
||||
email=Email
|
||||
password=\u039a\u03c9\u03b4\u03b9\u03ba\u03cc\u03c2 \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7\u03c2
|
||||
passwordConfirm=\u0395\u03c0\u03b9\u03b2\u03b5\u03b2\u03b1\u03af\u03c9\u03c3\u03b7 \u03ba\u03c9\u03b4\u03b9\u03ba\u03bf\u03cd
|
||||
passwordNew=\u039d\u03ad\u03bf\u03c2 \u039a\u03c9\u03b4\u03b9\u03ba\u03cc\u03c2 \u03a0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7\u03c2
|
||||
passwordNewConfirm=\u0395\u03c0\u03b9\u03b2\u03b5\u03b2\u03b1\u03af\u03c9\u03c3\u03b7 \u039d\u03ad\u03bf\u03c5 \u039a\u03c9\u03b4\u03b9\u03ba\u03bf\u03cd
|
||||
rememberMe=\u039d\u03b1 \u03bc\u03b5 \u03b8\u03c5\u03bc\u03ac\u03c3\u03b1\u03b9
|
||||
authenticatorCode=\u039a\u03c9\u03b4\u03b9\u03ba\u03cc\u03c2 \u03bc\u03af\u03b1\u03c2-\u03c7\u03c1\u03ae\u03c3\u03b7\u03c2
|
||||
address=\u0394\u03b9\u03b5\u03cd\u03b8\u03c5\u03bd\u03c3\u03b7
|
||||
street=\u039f\u03b4\u03cc\u03c2
|
||||
locality=\u03a0\u03cc\u03bb\u03b7 \u03ae \u0394\u03ae\u03bc\u03bf\u03c2
|
||||
region=\u039d\u03bf\u03bc\u03cc\u03c2 \u03ae \u03a0\u03b5\u03c1\u03b9\u03c6\u03ad\u03c1\u03b5\u03b9\u03b1
|
||||
postal_code=\u03a4\u03b1\u03c7\u03c5\u03b4\u03c1\u03bf\u03bc\u03b9\u03ba\u03cc\u03c2 \u039a\u03ce\u03b4\u03b9\u03ba\u03b1\u03c2
|
||||
country=\u03a7\u03ce\u03c1\u03b1
|
||||
emailVerified=\u0395\u03c0\u03b9\u03b2\u03b5\u03b2\u03b1\u03b9\u03c9\u03bc\u03ad\u03bd\u03bf Email
|
||||
website=\u0399\u03c3\u03c4\u03bf\u03c3\u03b5\u03bb\u03af\u03b4\u03b1
|
||||
phoneNumber=\u03a4\u03b7\u03bb\u03ad\u03c6\u03c9\u03bd\u03bf
|
||||
phoneNumberVerified=\u0395\u03c0\u03b9\u03b2\u03b5\u03b2\u03b1\u03b9\u03c9\u03bc\u03ad\u03bd\u03bf \u03c4\u03b7\u03bb\u03ad\u03c6\u03c9\u03bd\u03bf
|
||||
gender=\u03a6\u03cd\u03bb\u03bf
|
||||
birthday=\u0397\u03bc\u03b5\u03c1\u03bf\u03bc\u03b7\u03bd\u03af\u03b1 \u03b3\u03ad\u03bd\u03bd\u03b7\u03c3\u03b7\u03c2
|
||||
zoneinfo=\u0396\u03ce\u03bd\u03b7 \u03ce\u03c1\u03b1\u03c2
|
||||
gssDelegationCredential=GSS \u03b4\u03b9\u03b1\u03c0\u03b9\u03c3\u03c4\u03b5\u03c5\u03c4\u03ae\u03c1\u03b9\u03b1 \u03b5\u03be\u03bf\u03c5\u03c3\u03b9\u03bf\u03b4\u03cc\u03c4\u03b7\u03c3\u03b7\u03c2
|
||||
logoutOtherSessions=\u0388\u03be\u03bf\u03b4\u03bf\u03c2 \u03b1\u03c0\u03cc \u03ac\u03bb\u03bb\u03b5\u03c2 \u03c3\u03c5\u03c3\u03ba\u03b5\u03c5\u03ad\u03c2
|
||||
profileScopeConsentText=\u03a0\u03c1\u03bf\u03c6\u03af\u03bb \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7
|
||||
emailScopeConsentText=\u0394\u03b9\u03b5\u03cd\u03b8\u03c5\u03bd\u03c3\u03b7 email
|
||||
addressScopeConsentText=\u0394\u03b9\u03b5\u03cd\u03b8\u03c5\u03bd\u03c3\u03b7
|
||||
phoneScopeConsentText=\u03a4\u03b7\u03bb\u03ad\u03c6\u03c9\u03bd\u03bf
|
||||
offlineAccessScopeConsentText=\u03a0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7 \u03b5\u03ba\u03c4\u03cc\u03c2-\u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7\u03c2
|
||||
samlRoleListScopeConsentText=\u039f\u03b9 \u03a1\u03cc\u03bb\u03bf\u03b9 \u039c\u03bf\u03c5
|
||||
rolesScopeConsentText=\u03a1\u03cc\u03bb\u03bf\u03b9 \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7
|
||||
restartLoginTooltip=\u0395\u03c0\u03b1\u03bd\u03b5\u03ba\u03ba\u03af\u03bd\u03b7\u03c3\u03b7 \u0395\u03b9\u03c3\u03cc\u03b4\u03bf\u03c5
|
||||
loginTotpIntro=\u03a0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03bf\u03c1\u03af\u03c3\u03b5\u03c4\u03b5 \u03bc\u03b9\u03b1 \u03b3\u03b5\u03bd\u03bd\u03ae\u03c4\u03c1\u03b9\u03b1 \u039a\u03c9\u03b4\u03b9\u03ba\u03ce\u03bd \u039c\u03af\u03b1\u03c2 \u03a7\u03c1\u03ae\u03c3\u03b7\u03c2 \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03ad\u03c7\u03b5\u03c4\u03b5 \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7 \u03c3\u03c4\u03bf \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03cc
|
||||
loginTotpStep1=\u0395\u03b3\u03ba\u03b1\u03c4\u03b1\u03c3\u03c4\u03ae\u03c3\u03c4\u03b5 \u03bc\u03af\u03b1 \u03b1\u03c0\u03cc \u03c4\u03b9\u03c2 \u03b1\u03ba\u03cc\u03bb\u03bf\u03c5\u03b8\u03b5\u03c2 \u03b5\u03c6\u03b1\u03c1\u03bc\u03bf\u03b3\u03ad\u03c2 \u03c3\u03c4\u03bf \u03ba\u03b9\u03bd\u03b7\u03c4\u03cc \u03c3\u03b1\u03c2\:
|
||||
loginTotpStep2=\u0391\u03bd\u03bf\u03af\u03be\u03c4\u03b5 \u03c4\u03b7\u03bd \u03b5\u03c6\u03b1\u03c1\u03bc\u03bf\u03b3\u03ae \u03ba\u03b1\u03b9 \u03c3\u03b1\u03c1\u03ce\u03c3\u03c4\u03b5 \u03c4\u03bf \u039a\u03ce\u03b4\u03b9\u03ba\u03b1 QR\:
|
||||
loginTotpStep3=\u0395\u03b9\u03c3\u03ac\u03b3\u03b5\u03c4\u03b5 \u03c4\u03bf \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc \u03bc\u03af\u03b1\u03c2-\u03c7\u03c1\u03ae\u03c3\u03b7\u03c2 \u03cc\u03c0\u03c9\u03c2 \u03c0\u03b1\u03c1\u03ad\u03c7\u03b5\u03c4\u03b1\u03b9 \u03b1\u03c0\u03cc \u03c4\u03b7\u03bd \u03b5\u03c6\u03b1\u03c1\u03bc\u03bf\u03b3\u03ae \u03ba\u03b1\u03b9 \u03c0\u03b1\u03c4\u03ae\u03c3\u03c4\u03b5 \u03c4\u03bf \u03a5\u03c0\u03bf\u03b2\u03bf\u03bb\u03ae \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03bf\u03bb\u03bf\u03ba\u03bb\u03b7\u03c1\u03ce\u03c3\u03b5\u03c4\u03b5.
|
||||
loginTotpStep3DeviceName=\u03a0\u03b1\u03c1\u03ad\u03c7\u03b5\u03c4\u03b5 \u03ad\u03bd\u03b1 \u038c\u03bd\u03bf\u03bc\u03b1 \u03a3\u03c5\u03c3\u03ba\u03b5\u03c5\u03ae\u03c2 \u03b3\u03b9\u03b1 \u03b5\u03c5\u03ba\u03bf\u03bb\u03af\u03b1 \u03b4\u03b9\u03b1\u03c7\u03b5\u03af\u03c1\u03b9\u03c3\u03b7\u03c2 \u03c4\u03c9\u03bd \u03c3\u03c5\u03c3\u03ba\u03b5\u03c5\u03ce\u03bd OTP.
|
||||
loginTotpManualStep2=\u0391\u03bd\u03bf\u03af\u03be\u03c4\u03b5 \u03c4\u03b7\u03bd \u03b5\u03c6\u03b1\u03c1\u03bc\u03bf\u03b3\u03ae \u03ba\u03b1\u03b9 \u03b5\u03b9\u03c3\u03ac\u03b3\u03b5\u03c4\u03b5 \u03c4\u03bf \u03bc\u03c5\u03c3\u03c4\u03b9\u03ba\u03cc \u03ba\u03bb\u03b5\u03b9\u03b4\u03af\:
|
||||
loginTotpManualStep3=\u03a7\u03c1\u03b7\u03c3\u03b9\u03bc\u03bf\u03c0\u03bf\u03b9\u03b5\u03af\u03c3\u03c4\u03b5 \u03c4\u03b9\u03c2 \u03c0\u03b1\u03c1\u03b1\u03ba\u03ac\u03c4\u03c9 \u03c4\u03b9\u03bc\u03ad\u03c2 \u03c1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03c9\u03bd \u03b1\u03bd \u03b7 \u03b5\u03c6\u03b1\u03c1\u03bc\u03bf\u03b3\u03ae \u03c4\u03bf \u03c5\u03c0\u03bf\u03c3\u03c4\u03b7\u03c1\u03af\u03b6\u03b5\u03b9\:
|
||||
loginTotpUnableToScan=\u03a0\u03c1\u03cc\u03b2\u03bb\u03b7\u03bc\u03b1 \u03c3\u03c4\u03b7 \u03c3\u03ac\u03c1\u03c9\u03c3\u03b7;
|
||||
loginTotpScanBarcode=\u03a3\u03ac\u03c1\u03c9\u03c3\u03b7 \u03c4\u03bf\u03c5 QR;
|
||||
loginCredential=\u0394\u03b9\u03b1\u03c0\u03b9\u03c3\u03c4\u03b5\u03c5\u03c4\u03ae\u03c1\u03b9\u03b1
|
||||
loginOtpOneTime=\u039a\u03c9\u03b4\u03b9\u03ba\u03cc\u03c2 \u03bc\u03af\u03b1\u03c2-\u03c7\u03c1\u03ae\u03c3\u03b7\u03c2
|
||||
loginTotpType=\u03a4\u03cd\u03c0\u03bf\u03c2
|
||||
loginTotpAlgorithm=\u0391\u03bb\u03b3\u03cc\u03c1\u03b9\u03b8\u03bc\u03bf\u03c2
|
||||
loginTotpDigits=\u03a8\u03b7\u03c6\u03af\u03b1
|
||||
loginTotpInterval=\u0394\u03b9\u03ac\u03c3\u03c4\u03b7\u03bc\u03b1
|
||||
loginTotpCounter=\u039c\u03b5\u03c4\u03c1\u03b7\u03c4\u03ae\u03c2
|
||||
loginTotpDeviceName=\u038c\u03bd\u03bf\u03bc\u03b1 \u03a3\u03c5\u03c3\u03ba\u03b5\u03c5\u03ae\u03c2
|
||||
loginTotp.totp=\u03a7\u03c1\u03bf\u03bd\u03b9\u03ba\u03cc\u03c2
|
||||
loginTotp.hotp=\u03a3\u03b5\u03b9\u03c1\u03b9\u03b1\u03ba\u03cc\u03c2
|
||||
totpAppFreeOTPName=FreeOTP
|
||||
totpAppGoogleName=Google Authenticator
|
||||
totpAppMicrosoftAuthenticatorName=Microsoft Authenticator
|
||||
loginChooseAuthenticator=\u0395\u03c0\u03b9\u03bb\u03ad\u03be\u03c4\u03b5 \u03bc\u03ad\u03b8\u03bf\u03b4\u03bf \u03b5\u03b9\u03c3\u03cc\u03b4\u03bf\u03c5
|
||||
oauthGrantRequest=\u03a0\u03b1\u03c1\u03b1\u03c7\u03c9\u03c1\u03b5\u03af\u03c4\u03b5 \u03b1\u03c5\u03c4\u03ac \u03c4\u03b1 \u03b4\u03b9\u03ba\u03b1\u03b9\u03ce\u03bc\u03b1\u03c4\u03b1 \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7\u03c2;
|
||||
inResource=\u03c3\u03b5
|
||||
oauth2DeviceVerificationTitle=\u03a3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7 \u03a3\u03c5\u03c3\u03ba\u03b5\u03c5\u03ae\u03c2
|
||||
verifyOAuth2DeviceUserCode=\u0395\u03b9\u03c3\u03ac\u03b3\u03b5\u03c4\u03b5 \u03c4\u03bf\u03bd \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc \u03c0\u03bf\u03c5 \u03c0\u03b1\u03c1\u03ad\u03c7\u03b5\u03c4\u03b1\u03b9 \u03b1\u03c0\u03cc \u03c4\u03b7\u03bd \u03c3\u03c5\u03c3\u03ba\u03b5\u03c5\u03ae \u03ba\u03b1\u03b9 \u03c0\u03b1\u03c4\u03ae\u03c3\u03c4\u03b5 \u03a5\u03c0\u03bf\u03b2\u03bf\u03bb\u03ae
|
||||
oauth2DeviceInvalidUserCodeMessage=\u0386\u03ba\u03c5\u03c1\u03bf\u03c2 \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc\u03c2, \u03c0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03c0\u03c1\u03bf\u03c3\u03c0\u03b1\u03b8\u03ae\u03c3\u03c4\u03b5 \u03be\u03b1\u03bd\u03ac.
|
||||
oauth2DeviceExpiredUserCodeMessage=\u039f \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc\u03c2 \u03ad\u03c7\u03b5\u03b9 \u03bb\u03ae\u03be\u03b5\u03b9. \u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03c0\u03b7\u03b3\u03b1\u03af\u03bd\u03b5\u03c4\u03b5 \u03c0\u03af\u03c3\u03c9 \u03c3\u03c4\u03b7 \u03c3\u03c5\u03c3\u03ba\u03b5\u03c5\u03ae \u03c3\u03b1\u03c2 \u03ba\u03b1\u03b9 \u03c0\u03c1\u03bf\u03c3\u03c0\u03b1\u03b8\u03ae\u03c3\u03c4\u03b5 \u03bd\u03b1 \u03c3\u03c5\u03bd\u03b4\u03b5\u03b8\u03b5\u03af\u03c4\u03b5 \u03be\u03b1\u03bd\u03ac.
|
||||
oauth2DeviceVerificationCompleteHeader=\u0395\u03c0\u03b9\u03c4\u03c5\u03c7\u03ae\u03c2 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7 \u03c3\u03c5\u03c3\u03ba\u03b5\u03c5\u03ae\u03c2
|
||||
oauth2DeviceVerificationCompleteMessage=\u039c\u03c0\u03bf\u03c1\u03b5\u03af\u03c4\u03b5 \u03bd\u03b1 \u03ba\u03bb\u03b5\u03af\u03c3\u03b5\u03c4\u03b5 \u03c4\u03bf \u03c0\u03b1\u03c1\u03ac\u03b8\u03c5\u03c1\u03bf \u03c4\u03bf\u03c5 browser \u03ba\u03b1\u03b9 \u03bd\u03b1 \u03b5\u03c0\u03b9\u03c3\u03c4\u03c1\u03ad\u03c8\u03b5\u03c4\u03b5 \u03c3\u03c4\u03b7 \u03c3\u03c5\u03c3\u03ba\u03b5\u03c5\u03ae \u03c3\u03b1\u03c2.
|
||||
oauth2DeviceVerificationFailedHeader=\u0397 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7 \u03c4\u03b7\u03c2 \u03c3\u03c5\u03c3\u03ba\u03b5\u03c5\u03ae\u03c2 \u03b1\u03c0\u03ad\u03c4\u03c5\u03c7\u03b5
|
||||
oauth2DeviceVerificationFailedMessage=\u039c\u03c0\u03bf\u03c1\u03b5\u03af\u03c4\u03b5 \u03bd\u03b1 \u03ba\u03bb\u03b5\u03af\u03c3\u03b5\u03c4\u03b5 \u03b1\u03c5\u03c4\u03cc\u03bd \u03c4\u03bf\u03bd \u03c0\u03b5\u03c1\u03b9\u03b7\u03b3\u03b7\u03c4\u03ae \u03ba\u03b1\u03b9 \u03bd\u03b1 \u03c0\u03ac\u03c4\u03b5 \u03c0\u03af\u03c3\u03c9 \u03c3\u03c4\u03b7 \u03c3\u03c5\u03c3\u03ba\u03b5\u03c5\u03ae \u03c3\u03b1\u03c2 \u03ba\u03b1\u03b9 \u03bd\u03b1 \u03c0\u03c1\u03c3\u03c0\u03b1\u03b8\u03ae\u03c3\u03b5\u03c4\u03b5 \u03bd\u03b1 \u03c3\u03c5\u03bd\u03b4\u03b5\u03b8\u03b5\u03af\u03c4\u03b5 \u03be\u03b1\u03bd\u03ac.
|
||||
oauth2DeviceConsentDeniedMessage=\u0394\u03b5\u03bd \u03b4\u03ce\u03b8\u03b7\u03ba\u03b5 \u03c3\u03c5\u03b3\u03ba\u03b1\u03c4\u03ac\u03b8\u03b5\u03c3\u03b7 \u03b3\u03b9\u03b1 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7 \u03c3\u03c4\u03b7 \u03c3\u03c5\u03c3\u03ba\u03b5\u03c5\u03ae.
|
||||
oauth2DeviceAuthorizationGrantDisabledMessage=\u039f \u03c0\u03b5\u03bb\u03ac\u03c4\u03b7\u03c2 \u03b4\u03b5\u03bd \u03b5\u03c0\u03b9\u03c4\u03c1\u03ad\u03c0\u03b5\u03c4\u03b1\u03b9 \u03bd\u03b1 \u03be\u03b5\u03ba\u03b9\u03bd\u03ae\u03c3\u03b5\u03b9 \u03c4\u03bf OAuth 2.0 \u03b3\u03b9\u03b1 \u03c4\u03b7 \u03c7\u03bf\u03c1\u03ae\u03b3\u03b7\u03c3\u03b7 \u03b5\u03be\u03bf\u03c5\u03c3\u03b9\u03bf\u03b4\u03cc\u03c4\u03b7\u03c3\u03b7\u03c2 \u03c4\u03b7\u03c2 \u03c3\u03c5\u03c3\u03ba\u03b5\u03c5\u03ae\u03c2. \u0391\u03c5\u03c4\u03ae \u03b7 \u03c1\u03bf\u03ae \u03b5\u03af\u03bd\u03b1\u03b9 \u03b1\u03c0\u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03b7\u03bc\u03ad\u03bd\u03b7 \u03b3\u03b9\u03b1 \u03c4\u03bf\u03bd \u03c0\u03b5\u03bb\u03ac\u03c4\u03b7.
|
||||
emailVerifyInstruction1=\u03a3\u03b1\u03c2 \u03c3\u03c4\u03ac\u03bb\u03b8\u03b7\u03ba\u03b5 \u03ad\u03bd\u03b1 email \u03bc\u03b5 \u03bf\u03b4\u03b7\u03b3\u03af\u03b5\u03c2 \u03b3\u03b9\u03b1 \u03c4\u03bf \u03c0\u03c9\u03c2 \u03bd\u03b1 \u03b5\u03c0\u03b9\u03b2\u03b5\u03b2\u03b1\u03b9\u03ce\u03c3\u03b5\u03c4\u03b5 \u03c4\u03b7 \u03b4\u03b9\u03b5\u03cd\u03b8\u03c5\u03bd\u03c3\u03b7 \u03c3\u03b1\u03c2 {0}.
|
||||
emailVerifyInstruction2=\u0394\u03b5\u03bd \u03ad\u03c7\u03b5\u03c4\u03b5 \u03bb\u03ac\u03b2\u03b5\u03b9 \u03ad\u03bd\u03b1\u03bd \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc \u03b5\u03c0\u03b1\u03bb\u03ae\u03b8\u03b5\u03c5\u03c3\u03b7\u03c2 \u03c3\u03c4\u03bf email \u03c3\u03b1\u03c2;
|
||||
emailVerifyInstruction3=\u03bd\u03b1 \u03be\u03b1\u03bd\u03b1\u03c3\u03c4\u03b1\u03bb\u03b5\u03af \u03c4\u03bf email.
|
||||
emailLinkIdpTitle=\u03a3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7 {0}
|
||||
emailLinkIdp1=\u03a3\u03c4\u03ac\u03bb\u03b8\u03b7\u03ba\u03b5 \u03ad\u03bd\u03b1 email \u03bc\u03b5 \u03bf\u03b4\u03b7\u03b3\u03af\u03b5\u03c2 \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03c3\u03c5\u03bd\u03b4\u03ad\u03c3\u03b5\u03c4\u03b5 \u03c4\u03bf {0} \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03cc {1} \u03bc\u03b5 \u03c4\u03bf {2} \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03cc.
|
||||
emailLinkIdp2=\u0394\u03b5\u03bd \u03ad\u03c7\u03b5\u03c4\u03b5 \u03bb\u03ac\u03b2\u03b5\u03b9 \u03ad\u03bd\u03b1\u03bd \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc \u03b5\u03c0\u03b1\u03bb\u03ae\u03b8\u03b5\u03c5\u03c3\u03b7\u03c2 \u03c3\u03c4\u03bf email \u03c3\u03b1\u03c2;
|
||||
emailLinkIdp3=\u03bd\u03b1 \u03be\u03b1\u03bd\u03b1\u03c3\u03c4\u03b1\u03bb\u03b5\u03af \u03c4\u03bf email.
|
||||
emailLinkIdp4=\u0391\u03bd \u03ad\u03c7\u03b5\u03c4\u03b5 \u03ae\u03b4\u03b7 \u03b5\u03c0\u03b1\u03bb\u03c5\u03b8\u03b5\u03cd\u03c3\u03b5\u03b9 \u03c4\u03bf email \u03c3\u03b5 \u03ad\u03bd\u03b1\u03bd \u03b4\u03b9\u03b1\u03c6\u03bf\u03c1\u03b5\u03c4\u03b9\u03ba\u03cc \u03c0\u03b5\u03c1\u03b9\u03b7\u03b3\u03b7\u03c4\u03ae
|
||||
emailLinkIdp5=\u03b3\u03b9\u03b1 \u03c3\u03c5\u03bd\u03ad\u03c7\u03b5\u03b9\u03b1.
|
||||
backToLogin=« \u0395\u03c0\u03b9\u03c3\u03c4\u03c1\u03bf\u03c6\u03ae \u03c3\u03c4\u03b7\u03bd \u0395\u03af\u03c3\u03bf\u03b4\u03bf
|
||||
emailInstruction=\u0395\u03b9\u03c3\u03ac\u03b3\u03b5\u03c4\u03b5 \u03c4\u03bf \u03cc\u03bd\u03bf\u03bc\u03b1 \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7 \u03ae \u03c4\u03b7 \u03b4\u03b9\u03b5\u03cd\u03b8\u03c5\u03bd\u03c3\u03b7 email \u03ba\u03b1\u03b9 \u03b8\u03b1 \u03c3\u03b1\u03c2 \u03c3\u03c4\u03b1\u03bb\u03bf\u03cd\u03bd \u03bf\u03b4\u03b7\u03b3\u03af\u03b5\u03c2 \u03b3\u03b9\u03b1 \u03c4\u03bf \u03c0\u03c9\u03c2 \u03bd\u03b1 \u03b4\u03b7\u03bc\u03b9\u03bf\u03c5\u03c1\u03b3\u03ae\u03c3\u03b5\u03c4\u03b5 \u03ad\u03bd\u03b1 \u03bd\u03ad\u03bf \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc.
|
||||
emailInstructionUsername=\u0395\u03b9\u03c3\u03ac\u03b3\u03b5\u03c4\u03b5 \u03c4\u03bf \u03cc\u03bd\u03bf\u03bc\u03b1 \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7 \u03ba\u03b1\u03b9 \u03b8\u03b1 \u03c3\u03b1\u03c2 \u03c3\u03c4\u03b1\u03bb\u03bf\u03cd\u03bd \u03bf\u03b4\u03b7\u03b3\u03af\u03b5\u03c2 \u03b3\u03b9\u03b1 \u03c4\u03bf \u03c0\u03c9\u03c2 \u03bd\u03b1 \u03b4\u03b7\u03bc\u03b9\u03bf\u03c5\u03c1\u03b3\u03ae\u03c3\u03b5\u03c4\u03b5 \u03ad\u03bd\u03b1 \u03bd\u03ad\u03bf \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc.
|
||||
copyCodeInstruction=\u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03b1\u03bd\u03c4\u03b9\u03b3\u03c1\u03ac\u03c8\u03c4\u03b5 \u03b1\u03c5\u03c4\u03cc \u03c4\u03bf \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc \u03c3\u03c4\u03b7\u03bd \u03b5\u03c6\u03b1\u03c1\u03bc\u03bf\u03b3\u03ae \u03c3\u03b1\u03c2\:
|
||||
pageExpiredTitle=\u0397 \u03c3\u03b5\u03bb\u03af\u03b4\u03b1 \u03ad\u03bb\u03b7\u03be\u03b5
|
||||
pageExpiredMsg1=\u0393\u03b9\u03b1 \u03b5\u03c0\u03b1\u03bd\u03b5\u03ba\u03ba\u03af\u03bd\u03b7\u03c3\u03b7 \u03c4\u03b7\u03c2 \u03b5\u03b9\u03c3\u03cc\u03b4\u03bf\u03c5
|
||||
pageExpiredMsg2=\u0393\u03b9\u03b1 \u03c3\u03c5\u03bd\u03ad\u03c7\u03b5\u03b9\u03b1 \u03c4\u03b7\u03c2 \u03b5\u03b9\u03c3\u03cc\u03b4\u03bf\u03c5
|
||||
personalInfo=\u03a0\u03c1\u03bf\u03c3\u03c9\u03c0\u03b9\u03ba\u03ac \u03a3\u03c4\u03bf\u03b9\u03c7\u03b5\u03af\u03b1\:
|
||||
role_admin=\u0394\u03b9\u03b1\u03c7\u03b5\u03b9\u03c1\u03b9\u03c3\u03c4\u03ae\u03c2
|
||||
role_realm-admin=\u0394\u03b9\u03b1\u03c7\u03b5\u03b9\u03c1\u03b9\u03c3\u03c4\u03ae \u03a4\u03cc\u03c0\u03bf\u03c5
|
||||
role_create-realm=\u0394\u03b7\u03bc\u03b9\u03bf\u03c5\u03c1\u03b3\u03af\u03b1 \u03c4\u03bf\u03bc\u03ad\u03b1
|
||||
role_create-client=\u0394\u03b7\u03bc\u03b9\u03bf\u03c5\u03c1\u03b3\u03af\u03b1 \u03c0\u03b5\u03bb\u03ac\u03c4\u03b7
|
||||
role_view-realm=\u0395\u03bc\u03c6\u03ac\u03bd\u03b9\u03c3\u03b7 \u03c4\u03bf\u03bc\u03ad\u03b1
|
||||
role_view-users=\u0395\u03bc\u03c6\u03ac\u03bd\u03b9\u03c3\u03b7 \u03c7\u03c1\u03b7\u03c3\u03c4\u03ce\u03bd
|
||||
role_view-applications=\u0395\u03bc\u03c6\u03ac\u03bd\u03b9\u03c3\u03b7 \u03b5\u03c6\u03b1\u03c1\u03bc\u03bf\u03b3\u03ce\u03bd
|
||||
role_view-clients=\u0395\u03bc\u03c6\u03ac\u03bd\u03b9\u03c3\u03b7 \u03c0\u03b5\u03bb\u03b1\u03c4\u03ce\u03bd
|
||||
role_view-events=\u0395\u03bc\u03c6\u03ac\u03bd\u03b9\u03c3\u03b7 \u03c3\u03c5\u03bc\u03b2\u03ac\u03bd\u03c4\u03c9\u03bd
|
||||
role_view-identity-providers=\u0395\u03bc\u03c6\u03ac\u03bd\u03b9\u03c3\u03b7 \u03c0\u03b1\u03c1\u03cc\u03c7\u03c9\u03bd \u03c4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2
|
||||
role_manage-realm=\u0394\u03b9\u03b1\u03c7\u03b5\u03af\u03c1\u03b9\u03c3\u03b7 \u03c4\u03bf\u03bc\u03ad\u03b1
|
||||
role_manage-users=\u0394\u03b9\u03b1\u03c7\u03b5\u03af\u03c1\u03b9\u03c3\u03b7 \u03c7\u03c1\u03b7\u03c3\u03c4\u03ce\u03bd
|
||||
role_manage-applications=\u0394\u03b9\u03b1\u03c7\u03b5\u03af\u03c1\u03b9\u03c3\u03b7 \u03b5\u03c6\u03b1\u03c1\u03bc\u03bf\u03b3\u03ce\u03bd
|
||||
role_manage-identity-providers=\u0394\u03b9\u03b1\u03c7\u03b5\u03af\u03c1\u03b9\u03c3\u03b7 \u03c0\u03b1\u03c1\u03cc\u03c7\u03c9\u03bd \u03c4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2
|
||||
role_manage-clients=\u0394\u03b9\u03b1\u03c7\u03b5\u03af\u03c1\u03b9\u03c3\u03b7 \u03c0\u03b5\u03bb\u03b1\u03c4\u03ce\u03bd
|
||||
role_manage-events=\u0394\u03b9\u03b1\u03c7\u03b5\u03af\u03c1\u03b9\u03c3\u03b7 \u03c3\u03c5\u03bc\u03b2\u03ac\u03bd\u03c4\u03c9\u03bd
|
||||
role_view-profile=\u0395\u03bc\u03c6\u03ac\u03bd\u03b9\u03c3\u03b7 \u03c0\u03c1\u03bf\u03c6\u03af\u03bb
|
||||
role_manage-account=\u0394\u03b9\u03b1\u03c7\u03b5\u03af\u03c1\u03b9\u03c3\u03b7 \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03bf\u03cd
|
||||
role_manage-account-links=\u0394\u03b9\u03b1\u03c7\u03b5\u03af\u03c1\u03b9\u03c3\u03b7 \u03c3\u03c5\u03bd\u03b4\u03ad\u03c3\u03b5\u03c9\u03bd \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03bf\u03cd
|
||||
role_read-token=\u0391\u03bd\u03ac\u03b3\u03bd\u03c9\u03c3\u03b7 \u03b4\u03b9\u03b1\u03ba\u03c1\u03b9\u03c4\u03b9\u03ba\u03bf\u03cd
|
||||
role_offline-access=\u03a0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7 \u03b5\u03ba\u03c4\u03cc\u03c2-\u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7\u03c2
|
||||
client_account=\u039b\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03cc\u03c2
|
||||
client_account-console=\u039a\u03bf\u03bd\u03c3\u03cc\u03bb\u03b1 \u039b\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03bf\u03cd
|
||||
client_security-admin-console=\u039a\u03bf\u03bd\u03c3\u03cc\u03bb\u03b1 \u0394\u03b9\u03b1\u03c7\u03b5\u03b9\u03c1\u03b9\u03c3\u03c4\u03ae \u0391\u03c3\u03c6\u03ac\u03bb\u03b5\u03b9\u03b1\u03c2
|
||||
client_admin-cli=CLI \u0394\u03b9\u03b1\u03c7\u03b5\u03af\u03c1\u03b9\u03c3\u03b7\u03c2
|
||||
client_realm-management=\u0394\u03b9\u03b1\u03c7\u03b5\u03af\u03c1\u03b9\u03c3\u03b7 \u03a4\u03bf\u03bc\u03ad\u03b1
|
||||
client_broker=\u039c\u03b5\u03c3\u03bf\u03bb\u03b1\u03b2\u03b7\u03c4\u03ae\u03c2
|
||||
requiredFields=\u0391\u03c0\u03b1\u03b9\u03c4\u03bf\u03cd\u03bc\u03b5\u03bd\u03b1 \u03c0\u03b5\u03b4\u03af\u03b1
|
||||
invalidUserMessage=\u039c\u03b7 \u03ad\u03b3\u03ba\u03c5\u03c1\u03bf \u03cc\u03bd\u03bf\u03bc\u03b1 \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7 \u03ae \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc\u03c2 \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7\u03c2.
|
||||
invalidUsernameMessage=\u039c\u03b7 \u03ad\u03b3\u03ba\u03c5\u03c1\u03bf \u03cc\u03bd\u03bf\u03bc\u03b1 \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7.
|
||||
invalidUsernameOrEmailMessage=\u039c\u03b7 \u03ad\u03b3\u03ba\u03c5\u03c1\u03bf \u03cc\u03bd\u03bf\u03bc\u03b1 \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7 \u03ae email.
|
||||
invalidPasswordMessage=\u039c\u03b7 \u03ad\u03b3\u03ba\u03c5\u03c1\u03bf\u03c2 \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc\u03c2 \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7\u03c2.
|
||||
invalidEmailMessage=\u039c\u03b7 \u03ad\u03b3\u03ba\u03c5\u03c1\u03b7 \u03b4\u03b9\u03b5\u03cd\u03b8\u03c5\u03bd\u03c3\u03b7 email.
|
||||
accountDisabledMessage=\u039f \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03cc\u03c2 \u03ad\u03c7\u03b5\u03b9 \u03b1\u03c0\u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03b7\u03b8\u03b5\u03af, \u03b5\u03c0\u03b9\u03ba\u03bf\u03b9\u03bd\u03c9\u03bd\u03ae\u03c3\u03c4\u03b5 \u03bc\u03b5 \u03c4\u03bf \u03b4\u03b9\u03b1\u03c7\u03b5\u03b9\u03c1\u03b9\u03c3\u03c4\u03ae.
|
||||
accountTemporarilyDisabledMessage=\u039f \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03cc\u03c2 \u03ad\u03c7\u03b5\u03b9 \u03b1\u03c0\u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03b7\u03b8\u03b5\u03af \u03c0\u03c1\u03bf\u03c3\u03c9\u03c1\u03b9\u03bd\u03ac, \u03b5\u03c0\u03b9\u03ba\u03bf\u03b9\u03bd\u03c9\u03bd\u03ae\u03c3\u03c4\u03b5 \u03bc\u03b5 \u03c4\u03bf \u03b4\u03b9\u03b1\u03c7\u03b5\u03b9\u03c1\u03b9\u03c3\u03c4\u03ae \u03ae \u03b4\u03bf\u03ba\u03b9\u03bc\u03ac\u03c3\u03c4\u03b5 \u03b1\u03c1\u03b3\u03cc\u03c4\u03b5\u03c1\u03b1.
|
||||
expiredCodeMessage=\u039b\u03ae\u03be\u03b7 \u03c7\u03c1\u03cc\u03bd\u03bf\u03c5 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7\u03c2. \u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03c3\u03c5\u03bd\u03b4\u03b5\u03b8\u03b5\u03af\u03c4\u03b5 \u03be\u03b1\u03bd\u03ac.
|
||||
expiredActionMessage=\u0397 \u03b5\u03bd\u03ad\u03c1\u03b3\u03b5\u03b9\u03b1 \u03ad\u03bb\u03b7\u03be\u03b5. \u03a0\u03c1\u03bf\u03c7\u03c9\u03c1\u03b5\u03af\u03c3\u03c4\u03b5 \u03c4\u03ce\u03c1\u03b1 \u03bc\u03b5 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7.
|
||||
expiredActionTokenNoSessionMessage=\u0397 \u03b5\u03bd\u03ad\u03c1\u03b3\u03b5\u03b9\u03b1 \u03ad\u03bb\u03b7\u03be\u03b5.
|
||||
expiredActionTokenSessionExistsMessage=\u0397 \u03b5\u03bd\u03ad\u03c1\u03b3\u03b5\u03b9\u03b1 \u03ad\u03bb\u03b5\u03b9\u03be\u03b5. \u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03b1\u03c1\u03c7\u03af\u03c3\u03c4\u03b5 \u03be\u03b1\u03bd\u03ac.
|
||||
sessionLimitExceeded=\u03a0\u03ac\u03c1\u03b1 \u03c0\u03bf\u03bb\u03bb\u03ad\u03c2 \u03c3\u03c5\u03bd\u03b5\u03b4\u03c1\u03af\u03b5\u03c2
|
||||
missingFirstNameMessage=\u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03bf\u03c1\u03af\u03c3\u03c4\u03b5 \u03ad\u03bd\u03b1 \u03cc\u03bd\u03bf\u03bc\u03b1.
|
||||
missingLastNameMessage=\u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03bf\u03c1\u03af\u03c3\u03c4\u03b5 \u03b5\u03c0\u03ce\u03bd\u03c5\u03bc\u03bf.
|
||||
missingEmailMessage=\u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03bf\u03c1\u03af\u03c3\u03c4\u03b5 email.
|
||||
missingUsernameMessage=\u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03bf\u03c1\u03af\u03c3\u03c4\u03b5 \u03cc\u03bd\u03bf\u03bc\u03b1 \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7.
|
||||
missingPasswordMessage=\u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03bf\u03c1\u03af\u03c3\u03c4\u03b5 \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7\u03c2.
|
||||
missingTotpMessage=\u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03b5\u03b9\u03c3\u03ac\u03b3\u03b5\u03c4\u03b5 \u03ad\u03bd\u03b1 \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc \u03b1\u03c0\u03cc \u03b5\u03c6\u03b1\u03c1\u03bc\u03bf\u03b3\u03ae \u03c4\u03b1\u03c5\u03c4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7\u03c2.
|
||||
missingTotpDeviceNameMessage=\u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03bf\u03c1\u03af\u03c3\u03c4\u03b5 \u03cc\u03bd\u03bf\u03bc\u03b1 \u03c3\u03c5\u03c3\u03ba\u03b5\u03c5\u03ae\u03c2.
|
||||
notMatchPasswordMessage=\u039f\u03b9 \u03ba\u03c9\u03b4\u03b9\u03ba\u03bf\u03af \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7\u03c2 \u03b4\u03b5 \u03c4\u03b1\u03b9\u03c1\u03b9\u03ac\u03b6\u03bf\u03c5\u03bd.
|
||||
error-invalid-value=\u039c\u03b7 \u03ad\u03b3\u03ba\u03c5\u03c1\u03b7 \u03c4\u03b9\u03bc\u03ae.
|
||||
error-invalid-blank=\u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03bf\u03c1\u03af\u03c3\u03c4\u03b5 \u03c4\u03b9\u03bc\u03ae.
|
||||
error-empty=\u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03bf\u03c1\u03af\u03c3\u03c4\u03b5 \u03c4\u03b9\u03bc\u03ae.
|
||||
error-invalid-length=\u03a4\u03bf \u03bc\u03ae\u03ba\u03bf\u03c2 \u03c0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03b5\u03af\u03bd\u03b1\u03b9 \u03bc\u03b5\u03c4\u03b1\u03be\u03cd {1} \u03ba\u03b1\u03b9 {2}.
|
||||
error-invalid-length-too-short=\u0395\u03bb\u03ac\u03c7\u03b9\u03c3\u03c4\u03bf \u03bc\u03ae\u03ba\u03bf\u03c2 {1}.
|
||||
error-invalid-length-too-long=\u039c\u03ad\u03b3\u03b9\u03c3\u03c4\u03bf \u03bc\u03ae\u03ba\u03bf\u03c2 {2}.
|
||||
error-invalid-email=\u039c\u03b7 \u03ad\u03b3\u03ba\u03c5\u03c1\u03b7 \u03b4\u03b9\u03b5\u03cd\u03b8\u03c5\u03bd\u03c3\u03b7 email.
|
||||
error-invalid-number=\u039c\u03b7 \u03ad\u03b3\u03ba\u03c5\u03c1\u03bf\u03c2 \u03b1\u03c1\u03b9\u03b8\u03bc\u03cc\u03c2.
|
||||
error-number-out-of-range=\u039f \u03b1\u03c1\u03b9\u03b8\u03bc\u03cc\u03c2 \u03c0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03b5\u03af\u03bd\u03b1\u03b9 \u03bc\u03b5\u03c4\u03b1\u03be\u03cd {1} \u03ba\u03b1\u03b9 {2}.
|
||||
error-number-out-of-range-too-small=\u039f \u03b1\u03c1\u03b9\u03b8\u03bc\u03cc\u03c2 \u03c0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03ad\u03c7\u03b5\u03b9 \u03b5\u03bb\u03ac\u03c7\u03b9\u03c3\u03c4\u03b7 \u03c4\u03b9\u03bc\u03ae {1}.
|
||||
error-number-out-of-range-too-big=\u039f \u03b1\u03c1\u03b9\u03b8\u03bc\u03cc\u03c2 \u03c0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03ad\u03c7\u03b5\u03b9 \u03bc\u03ad\u03b3\u03b9\u03c3\u03c4\u03b7 \u03c4\u03b9\u03bc\u03ae {1}.
|
||||
error-pattern-no-match=\u039c\u03b7 \u03ad\u03b3\u03ba\u03c5\u03c1\u03b7 \u03c4\u03b9\u03bc\u03ae.
|
||||
error-invalid-uri=\u039c\u03b7 \u03ad\u03b3\u03ba\u03c5\u03c1\u03bf URL.
|
||||
error-invalid-uri-scheme=\u039c\u03b7 \u03ad\u03b3\u03ba\u03c5\u03c1\u03bf \u03c3\u03c7\u03ae\u03bc\u03b1 URL.
|
||||
error-invalid-uri-fragment=\u039c\u03b7 \u03ad\u03b3\u03ba\u03c5\u03c1\u03bf \u03ba\u03bf\u03bc\u03bc\u03ac\u03c4\u03b9 URL.
|
||||
error-user-attribute-required=\u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03bf\u03c1\u03af\u03c3\u03c4\u03b5 \u03b1\u03c5\u03c4\u03cc \u03c4\u03bf \u03c0\u03b5\u03b4\u03af\u03bf.
|
||||
error-invalid-date=\u039c\u03b7 \u03ad\u03b3\u03ba\u03c5\u03c1\u03b7 \u03b7\u03bc\u03b5\u03c1\u03bf\u03bc\u03b7\u03bd\u03af\u03b1.
|
||||
error-user-attribute-read-only=\u0391\u03c5\u03c4\u03cc \u03c4\u03bf \u03c0\u03b5\u03b4\u03af\u03bf \u03b5\u03af\u03bd\u03b1\u03b9 \u03b3\u03b9\u03b1 \u03b1\u03bd\u03ac\u03b3\u03bd\u03c9\u03c3\u03b7 \u03bc\u03cc\u03bd\u03bf.
|
||||
error-username-invalid-character=\u0397 \u03c4\u03b9\u03bc\u03ae \u03c0\u03b5\u03c1\u03b9\u03ad\u03c7\u03b5\u03b9 \u03bc\u03b7 \u03ad\u03b3\u03ba\u03c5\u03c1\u03bf\u03c5\u03c2 \u03c7\u03b1\u03c1\u03b1\u03ba\u03c4\u03ae\u03c1\u03b5\u03c2.
|
||||
error-person-name-invalid-character=\u0397 \u03c4\u03b9\u03bc\u03ae \u03c0\u03b5\u03c1\u03b9\u03ad\u03c7\u03b5\u03b9 \u03bc\u03b7 \u03ad\u03b3\u03ba\u03c5\u03c1\u03bf \u03c7\u03b1\u03c1\u03b1\u03ba\u03c4\u03ae\u03c1\u03b1.
|
||||
invalidPasswordExistingMessage=\u039c\u03b7 \u03ad\u03b3\u03ba\u03c5\u03c1\u03bf\u03c2 \u03c5\u03c0\u03ac\u03c1\u03c7\u03bf\u03bd\u03c4\u03b1\u03c2 \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc\u03c2 \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7\u03c2.
|
||||
invalidPasswordBlacklistedMessage=\u039c\u03b7 \u03ad\u03b3\u03ba\u03c5\u03c1\u03bf\u03c2 \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc\u03c2 \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7\u03c2\: \u03bf \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc\u03c2 \u03b5\u03af\u03bd\u03b1\u03b9 \u03b1\u03c0\u03b1\u03b3\u03bf\u03c1\u03b5\u03c5\u03bc\u03ad\u03bd\u03bf\u03c2.
|
||||
invalidPasswordConfirmMessage=\u0397 \u03b5\u03c0\u03b9\u03b2\u03b5\u03b2\u03b1\u03af\u03c9\u03c3\u03b7 \u03c4\u03bf\u03c5 \u03ba\u03c9\u03b4\u03b9\u03ba\u03bf\u03cd \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7\u03c2 \u03b4\u03b5 \u03c4\u03b1\u03b9\u03c1\u03b9\u03ac\u03b6\u03b5\u03b9.
|
||||
invalidTotpMessage=\u039c\u03b7 \u03ad\u03b3\u03ba\u03c5\u03c1\u03bf\u03c2 \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc\u03c2 \u03bc\u03af\u03b1\u03c2 \u03c7\u03c1\u03ae\u03c3\u03b7\u03c2.
|
||||
usernameExistsMessage=\u03a4\u03bf \u03cc\u03bd\u03bf\u03bc\u03b1 \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7 \u03c5\u03c0\u03ac\u03c1\u03c7\u03b5\u03b9 \u03ae\u03b4\u03b7.
|
||||
emailExistsMessage=\u03a4\u03bf email \u03c5\u03c0\u03ac\u03c1\u03c7\u03b5\u03b9 \u03ae\u03b4\u03b7.
|
||||
federatedIdentityExistsMessage=\u039f \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7\u03c2 \u03bc\u03b5 {0} {1} \u03c5\u03c0\u03ac\u03c1\u03c7\u03b5\u03b9 \u03ae\u03b4\u03b7. \u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03c3\u03c5\u03bd\u03b4\u03b5\u03b8\u03b5\u03af\u03c4\u03b5 \u03c3\u03c4\u03b7 \u03b4\u03b9\u03b1\u03c7\u03b5\u03af\u03c1\u03b9\u03c3\u03b7 \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03bf\u03cd \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03c3\u03c5\u03bd\u03b4\u03ad\u03c3\u03b5\u03c4\u03b5 \u03c4\u03bf \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03cc.
|
||||
federatedIdentityUnavailableMessage=\u0394\u03b5\u03bd \u03c5\u03c0\u03ac\u03c1\u03c7\u03b5\u03b9 \u03bf \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7\u03c2 {0} \u03c0\u03bf\u03c5 \u03c3\u03c5\u03bd\u03b4\u03ad\u03b8\u03b7\u03ba\u03b5 \u03bc\u03b5 \u03c4\u03bf \u03c0\u03ac\u03c1\u03bf\u03c7\u03bf \u03c4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2 {1} . \u0395\u03c0\u03b9\u03ba\u03bf\u03b9\u03bd\u03c9\u03bd\u03ae\u03c3\u03c4\u03b5 \u03bc\u03b5 \u03c4\u03bf \u03b4\u03b9\u03b1\u03c7\u03b5\u03b9\u03c1\u03b9\u03c3\u03c4\u03ae.
|
||||
confirmLinkIdpTitle=\u039f \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03cc\u03c2 \u03c5\u03c0\u03ac\u03c1\u03c7\u03b5\u03b9 \u03ae\u03b4\u03b7
|
||||
federatedIdentityConfirmLinkMessage=\u039f \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7\u03c2 {0} {1} \u03c5\u03c0\u03ac\u03c1\u03c7\u03b5\u03b9 \u03ae\u03b4\u03b7. \u03a3\u03af\u03b3\u03bf\u03c5\u03c1\u03b1 \u03bd\u03b1 \u03c3\u03c5\u03bd\u03b5\u03c7\u03af\u03c3\u03c9;
|
||||
federatedIdentityConfirmReauthenticateMessage=\u0391\u03c5\u03b8\u03b5\u03bd\u03c4\u03b9\u03ba\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7 \u03b3\u03b9\u03b1 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7 \u03c4\u03bf\u03c5 \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03bf\u03cd \u03c3\u03b1\u03c2 \u03bc\u03b5 \u03c4\u03bf {0}
|
||||
nestedFirstBrokerFlowMessage=\u039f {0} \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7\u03c2 {1} \u03b4\u03b5\u03bd \u03ad\u03c7\u03b5\u03b9 \u03c3\u03c5\u03bd\u03b4\u03b5\u03b8\u03b5\u03af \u03bc\u03b5 \u03ba\u03ac\u03c0\u03bf\u03b9\u03bf \u03b3\u03bd\u03c9\u03c3\u03c4\u03cc \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7.
|
||||
confirmLinkIdpReviewProfile=\u0395\u03be\u03ad\u03c4\u03b1\u03c3\u03b7 \u03c0\u03c1\u03bf\u03c6\u03af\u03bb
|
||||
confirmLinkIdpContinue=\u03a0\u03c1\u03bf\u03c3\u03b8\u03ae\u03ba\u03b7 \u03c3\u03b5 \u03c5\u03c0\u03ac\u03c1\u03c7\u03c9\u03bd \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03cc
|
||||
configureTotpMessage=\u03a1\u03c5\u03b8\u03bc\u03af\u03c3\u03c4\u03b5 \u03bc\u03b9\u03b1 \u0395\u03c6\u03b1\u03c1\u03bc\u03bf\u03b3\u03ae \u03a4\u03b1\u03c5\u03c4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7\u03c2 \u03c3\u03c4\u03bf \u03ba\u03b9\u03bd\u03b7\u03c4\u03cc \u03c3\u03b1\u03c2 \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03ae\u03c3\u03b5\u03c4\u03b5 \u03c4\u03bf \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03cc.
|
||||
configureBackupCodesMessage=\u03a0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03bf\u03c1\u03af\u03c3\u03b5\u03c4\u03b5 \u039a\u03c9\u03b4\u03b9\u03ba\u03bf\u03cd\u03c2 \u0391\u03c3\u03c6\u03b1\u03bb\u03b5\u03af\u03b1\u03c2 \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03ae\u03c3\u03b5\u03c4\u03b5 \u03c4\u03bf \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03cc \u03c3\u03b1\u03c2.
|
||||
updateProfileMessage=\u03a0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03b5\u03bd\u03b7\u03bc\u03b5\u03c1\u03ce\u03c3\u03b5\u03c4\u03b5 \u03c4\u03bf \u03c0\u03c1\u03bf\u03c6\u03af\u03bb \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7 \u03c3\u03b1\u03c2 \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03ae\u03c3\u03b5\u03c4\u03b5 \u03c4\u03bf \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03cc \u03c3\u03b1\u03c2.
|
||||
updatePasswordMessage=\u03a0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03b1\u03bb\u03bb\u03ac\u03be\u03b5\u03c4\u03b5 \u03c4\u03bf \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7\u03c2 \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03ae\u03c3\u03b5\u03c4\u03b5 \u03c4\u03bf \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03cc \u03c3\u03b1\u03c2.
|
||||
updateEmailMessage=\u03a0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03b5\u03bd\u03b7\u03bc\u03b5\u03c1\u03ce\u03c3\u03b5\u03c4\u03b5 \u03c4\u03bf email \u03c3\u03b1\u03c2 \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03ae\u03c3\u03b5\u03c4\u03b5 \u03c4\u03bf \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03cc\u03c2 \u03c3\u03b1\u03c2.
|
||||
resetPasswordMessage=\u03a0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03b1\u03bb\u03bb\u03ac\u03be\u03b5\u03c4\u03b5 \u03c4\u03bf \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7\u03c2 \u03c3\u03b1\u03c2.
|
||||
verifyEmailMessage=\u03a0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03b5\u03c0\u03b9\u03b2\u03b5\u03b2\u03b1\u03b9\u03ce\u03c3\u03b5\u03c4\u03b5 \u03c4\u03bf email \u03c3\u03b1\u03c2 \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03ae\u03c3\u03b5\u03c4\u03b5 \u03c4\u03bf \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03cc \u03c3\u03b1\u03c2.
|
||||
linkIdpMessage=\u03a0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03b5\u03c0\u03b9\u03b2\u03b5\u03b2\u03b1\u03b9\u03ce\u03c3\u03b5\u03c4\u03b5 \u03c4\u03bf email \u03c3\u03b1\u03c2 \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03c3\u03c5\u03bd\u03b4\u03ad\u03c3\u03b5\u03c4\u03b5 \u03c4\u03bf \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03cc \u03c3\u03b1\u03c2 \u03bc\u03b5 \u03c4\u03bf {0}.
|
||||
emailSentMessage=\u0398\u03b1 \u03bb\u03ac\u03b2\u03b5\u03c4\u03b5 \u03ad\u03bd\u03b1 email \u03c3\u03cd\u03bd\u03c4\u03bf\u03bc\u03b1 \u03bc\u03b5 \u03b5\u03c0\u03b9\u03c0\u03bb\u03ad\u03c9\u03bd \u03c0\u03bb\u03b7\u03c1\u03bf\u03c6\u03bf\u03c1\u03af\u03b5\u03c2.
|
||||
emailSendErrorMessage=\u0391\u03c0\u03bf\u03c4\u03c5\u03c7\u03af\u03b1 \u03b1\u03c0\u03bf\u03c3\u03c4\u03bf\u03bb\u03ae\u03c2 email, \u03c0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03b4\u03bf\u03ba\u03b9\u03bc\u03ac\u03c3\u03c4\u03b5 \u03b1\u03c1\u03b3\u03cc\u03c4\u03b5\u03c1\u03b1.
|
||||
accountUpdatedMessage=\u039f \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03cc\u03c2 \u03c3\u03b1\u03c2 \u03ad\u03c7\u03b5\u03b9 \u03b5\u03bd\u03b7\u03bc\u03b5\u03c1\u03c9\u03b8\u03b5\u03af.
|
||||
accountPasswordUpdatedMessage=\u039f \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc\u03c2 \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7\u03c2 \u03b5\u03bd\u03b7\u03bc\u03b5\u03c1\u03ce\u03b8\u03b7\u03ba\u03b5.
|
||||
delegationCompleteHeader=\u0395\u03c0\u03b9\u03c4\u03c5\u03c7\u03ae\u03c2 \u0395\u03af\u03c3\u03bf\u03b4\u03bf\u03c2
|
||||
delegationCompleteMessage=\u039c\u03c0\u03bf\u03c1\u03b5\u03af\u03c4\u03b5 \u03bd\u03b1 \u03ba\u03bb\u03b5\u03af\u03c3\u03c4\u03b5 \u03b1\u03c5\u03c4\u03cc \u03c4\u03bf \u03c0\u03b1\u03c1\u03ac\u03b8\u03c5\u03c1\u03bf \u03c4\u03bf\u03c5 browser \u03ba\u03b1\u03b9 \u03bd\u03b1 \u03b5\u03c0\u03b9\u03c3\u03c4\u03c1\u03ad\u03c8\u03b5\u03c4\u03b5 \u03c3\u03c4\u03b7\u03bd \u03b5\u03c6\u03b1\u03c1\u03bc\u03bf\u03b3\u03ae \u03ba\u03bf\u03bd\u03c3\u03cc\u03bb\u03b1\u03c2.
|
||||
delegationFailedHeader=\u0391\u03c0\u03bf\u03c4\u03c5\u03c7\u03af\u03b1 \u0395\u03b9\u03c3\u03cc\u03b4\u03bf\u03c5
|
||||
delegationFailedMessage=\u039c\u03c0\u03bf\u03c1\u03b5\u03af\u03c4\u03b5 \u03bd\u03b1 \u03ba\u03bb\u03b5\u03af\u03c3\u03b5\u03c4\u03b5 \u03b1\u03c5\u03c4\u03cc \u03c4\u03bf \u03c0\u03b1\u03c1\u03ac\u03b8\u03c5\u03c1\u03bf \u03ba\u03b1\u03b9 \u03bd\u03b1 \u03b5\u03c0\u03b9\u03c3\u03c4\u03c1\u03ad\u03c8\u03b5\u03c4\u03b5 \u03c3\u03c4\u03b7\u03bd \u03b5\u03c6\u03b1\u03c1\u03bc\u03bf\u03b3\u03ae \u03ba\u03bf\u03bd\u03c3\u03cc\u03bb\u03b1\u03c2 \u03c3\u03b1\u03c2 \u03ba\u03b1\u03b9 \u03bd\u03b1 \u03b4\u03bf\u03ba\u03b9\u03bc\u03ac\u03c3\u03b5\u03c4\u03b5 \u03bd\u03b1 \u03bc\u03c0\u03b5\u03af\u03c4\u03b5 \u03be\u03b1\u03bd\u03ac.
|
||||
noAccessMessage=\u039a\u03b1\u03bc\u03af\u03b1 \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7
|
||||
invalidPasswordMinLengthMessage=\u039c\u03b7 \u03ad\u03b3\u03ba\u03c5\u03c1\u03bf\u03c2 \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc\u03c2 \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7\u03c2\: \u03b5\u03bb\u03ac\u03c7\u03b9\u03c3\u03c4\u03bf \u03bc\u03ae\u03ba\u03bf\u03c2 {0}.
|
||||
invalidPasswordMaxLengthMessage=\u039c\u03b7 \u03ad\u03b3\u03ba\u03c5\u03c1\u03bf\u03c2 \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc\u03c2 \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7\u03c2\: \u03bc\u03ad\u03b3\u03b9\u03c3\u03c4\u03bf \u03bc\u03ae\u03ba\u03bf\u03c2 {0}.
|
||||
invalidPasswordMinDigitsMessage=\u039c\u03b7 \u03ad\u03b3\u03ba\u03c5\u03c1\u03bf\u03c2 \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc\u03c2 \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7\u03c2\: \u03c0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03c0\u03b5\u03c1\u03b9\u03ad\u03c7\u03b5\u03b9 \u03c4\u03bf\u03c5\u03bb\u03ac\u03c7\u03b9\u03c3\u03c4\u03bf\u03bd {0} \u03c8\u03b7\u03c6\u03af\u03b1.
|
||||
invalidPasswordMinLowerCaseCharsMessage=\u039c\u03b7 \u03ad\u03b3\u03ba\u03c5\u03c1\u03bf\u03c2 \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc\u03c2 \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7\u03c2\: \u03c0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03c0\u03b5\u03c1\u03b9\u03ad\u03c7\u03b5\u03b9 \u03c4\u03bf\u03c5\u03bb\u03ac\u03c7\u03b9\u03c3\u03c4\u03bf\u03bd {0} \u03c0\u03b5\u03b6\u03bf\u03cd\u03c2 \u03c7\u03b1\u03c1\u03b1\u03ba\u03c4\u03ae\u03c1\u03b5\u03c2.
|
||||
invalidPasswordMinUpperCaseCharsMessage=\u039c\u03b7 \u03ad\u03b3\u03ba\u03c5\u03c1\u03bf\u03c2 \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc\u03c2 \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7\u03c2\: \u03c0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03c0\u03b5\u03c1\u03b9\u03ad\u03c7\u03b5\u03b9 \u03c4\u03bf\u03c5\u03bb\u03ac\u03c7\u03b9\u03c3\u03c4\u03bf\u03bd {0} \u03ba\u03b5\u03c6\u03b1\u03bb\u03b1\u03af\u03bf\u03c5\u03c2 \u03c7\u03b1\u03c1\u03b1\u03ba\u03c4\u03ae\u03c1\u03b5\u03c2.
|
||||
invalidPasswordMinSpecialCharsMessage=\u039c\u03b7 \u03ad\u03b3\u03ba\u03c5\u03c1\u03bf\u03c2 \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc\u03c2 \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7\u03c2\: \u03c0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03c0\u03b5\u03c1\u03b9\u03ad\u03c7\u03b5\u03b9 \u03c4\u03bf\u03c5\u03bb\u03ac\u03c7\u03b9\u03c3\u03c4\u03bf\u03bd {0} \u03b5\u03b9\u03b4\u03b9\u03ba\u03bf\u03cd\u03c2 \u03c7\u03b1\u03c1\u03b1\u03ba\u03c4\u03ae\u03c1\u03b5\u03c2.
|
||||
invalidPasswordNotUsernameMessage=\u039c\u03b7 \u03ad\u03b3\u03ba\u03c5\u03c1\u03bf\u03c2 \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc\u03c2 \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7\u03c2\: \u03c0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03bc\u03b7\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03af\u03c3\u03bf \u03bc\u03b5 \u03c4\u03bf \u03cc\u03bd\u03bf\u03bc\u03b1 \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7.
|
||||
invalidPasswordNotEmailMessage=\u039c\u03b7 \u03ad\u03b3\u03ba\u03c5\u03c1\u03bf\u03c2 \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc\u03c2 \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7\u03c2\: \u03c0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03bc\u03b7\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03af\u03c3\u03bf \u03bc\u03b5 \u03c4\u03bf email.
|
||||
invalidPasswordRegexPatternMessage=\u039c\u03b7 \u03ad\u03b3\u03ba\u03c5\u03c1\u03bf\u03c2 \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc\u03c2 \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7\u03c2\: \u03b4\u03b5 \u03c4\u03b1\u03b9\u03c1\u03b9\u03ac\u03b6\u03b5\u03b9 \u03bc\u03b5 \u03c4\u03b1 \u03bc\u03bf\u03c4\u03af\u03b2\u03b1 regex.
|
||||
invalidPasswordHistoryMessage=\u039c\u03b7 \u03ad\u03b3\u03ba\u03c5\u03c1\u03bf\u03c2 \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc\u03c2 \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7\u03c2\: \u03b4\u03b5 \u03c0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03b5\u03af\u03bd\u03b1\u03b9 \u03c4\u03bf \u03af\u03b4\u03b9\u03bf \u03bc\u03b5 \u03c4\u03bf\u03c5\u03c2 \u03c4\u03b5\u03bb\u03b5\u03c5\u03c4\u03b1\u03af\u03bf\u03c5\u03c2 {0} \u03ba\u03c9\u03b4\u03b9\u03ba\u03bf\u03cd\u03c2.
|
||||
invalidPasswordGenericMessage=\u039c\u03b7 \u03ad\u03b3\u03ba\u03c5\u03c1\u03bf\u03c2 \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc\u03c2 \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7\u03c2\: \u03bf \u03bd\u03ad\u03bf\u03c2 \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc\u03c2 \u03b4\u03b5 \u03c3\u03c5\u03bc\u03c6\u03c9\u03bd\u03b5\u03af \u03bc\u03b5 \u03c4\u03b9\u03c2 \u03c0\u03bf\u03bb\u03b9\u03c4\u03b9\u03ba\u03ad\u03c2 \u03ba\u03c9\u03b4\u03b9\u03ba\u03ce\u03bd.
|
||||
failedToProcessResponseMessage=\u0391\u03b4\u03c5\u03bd\u03b1\u03bc\u03af\u03b1 \u03b5\u03c0\u03b5\u03be\u03b5\u03c1\u03b3\u03b1\u03c3\u03af\u03b1\u03c2 \u03c4\u03b7\u03c2 \u03b1\u03c0\u03ac\u03bd\u03c4\u03b7\u03c3\u03b7\u03c2
|
||||
httpsRequiredMessage=\u0391\u03c0\u03b1\u03b9\u03c4\u03b5\u03af\u03c4\u03b1\u03b9 HTTPS
|
||||
realmNotEnabledMessage=\u039f \u03c4\u03bf\u03bc\u03ad\u03b1\u03c2 \u03b4\u03b5\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03b5\u03bd\u03b5\u03c1\u03b3\u03cc\u03c2
|
||||
invalidRequestMessage=\u039c\u03b7 \u0388\u03b3\u03ba\u03c5\u03c1\u03b7 \u0391\u03af\u03c4\u03b7\u03c3\u03b7
|
||||
successLogout=\u0388\u03c7\u03b5\u03c4\u03b5 \u03b1\u03c0\u03bf\u03c3\u03c5\u03bd\u03b4\u03b5\u03b8\u03b5\u03af
|
||||
failedLogout=\u0391\u03c0\u03bf\u03c4\u03c5\u03c7\u03af\u03b1 \u03b1\u03c0\u03bf\u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7\u03c2
|
||||
unknownLoginRequesterMessage=\u0386\u03b3\u03bd\u03c9\u03c3\u03c4\u03bf\u03c2 \u03b1\u03b9\u03c4\u03ce\u03bd \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7\u03c2
|
||||
loginRequesterNotEnabledMessage=\u0394\u03b5\u03bd \u03ad\u03c7\u03b5\u03b9 \u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03b7\u03b8\u03b5\u03af \u03bf \u03b1\u03b9\u03c4\u03ce\u03bd \u03a3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7\u03c2
|
||||
bearerOnlyMessage=\u0395\u03c6\u03b1\u03c1\u03bc\u03bf\u03b3\u03ad\u03c2 \u03c4\u03cd\u03c0\u03bf\u03c5 Bearer-only \u03b4\u03b5\u03bd \u03b5\u03c0\u03b9\u03c4\u03c1\u03ad\u03c0\u03bf\u03bd\u03c4\u03b1\u03b9 \u03bd\u03b1 \u03b5\u03ba\u03ba\u03b9\u03bd\u03ae\u03c3\u03bf\u03c5\u03bd \u03b5\u03af\u03c3\u03bf\u03b4\u03bf \u03bc\u03ad\u03c3\u03c9 browser
|
||||
standardFlowDisabledMessage=\u039f \u03c0\u03b5\u03bb\u03ac\u03c4\u03b7\u03c2 \u03b4\u03b5\u03bd \u03b5\u03c0\u03b9\u03c4\u03c1\u03ad\u03c0\u03b5\u03c4\u03b1\u03b9 \u03bd\u03b1 \u03be\u03b5\u03ba\u03b9\u03bd\u03ac \u03b5\u03af\u03c3\u03bf\u03b4\u03bf \u03bc\u03ad\u03c3\u03c9 browser \u03bc\u03b5 \u03c4\u03bf \u03b4\u03bf\u03b8\u03ad\u03bd response_type. \u0397 \u03c0\u03c1\u03cc\u03c4\u03c5\u03c0\u03b7 \u03c1\u03bf\u03ae \u03ad\u03c7\u03b5\u03b9 \u03b1\u03c0\u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03b7\u03b8\u03b5\u03af \u03b3\u03b9\u03b1 \u03b1\u03c5\u03c4\u03cc \u03c4\u03bf \u03c0\u03b5\u03bb\u03ac\u03c4\u03b7.
|
||||
implicitFlowDisabledMessage=\u039f \u03c0\u03b5\u03bb\u03ac\u03c4\u03b7\u03c2 \u03b4\u03b5\u03bd \u03b5\u03c0\u03b9\u03c4\u03c1\u03ad\u03c0\u03b5\u03c4\u03b1\u03b9 \u03bd\u03b1 \u03be\u03b5\u03ba\u03b9\u03bd\u03ac \u03b5\u03af\u03c3\u03bf\u03b4\u03bf \u03bc\u03ad\u03c3\u03c9 browser \u03bc\u03b5 \u03c4\u03bf \u03b4\u03bf\u03b8\u03ad\u03bd response_type. \u0397 \u03ad\u03bc\u03bc\u03b5\u03c3\u03b7 \u03c1\u03bf\u03ae \u03ad\u03c7\u03b5\u03b9 \u03b1\u03c0\u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03b7\u03b8\u03b5\u03af \u03b3\u03b9\u03b1 \u03b1\u03c5\u03c4\u03cc \u03c4\u03bf \u03c0\u03b5\u03bb\u03ac\u03c4\u03b7.
|
||||
invalidRedirectUriMessage=\u039c\u03b7 \u03ad\u03b3\u03ba\u03c5\u03c1\u03bf redirect uri
|
||||
unsupportedNameIdFormatMessage=\u039c\u03b7 \u03c5\u03c0\u03bf\u03c3\u03c4\u03b7\u03c1\u03b9\u03b6\u03cc\u03bc\u03b5\u03bd\u03b7 NamedIDFormat
|
||||
invalidRequesterMessage=\u039c\u03b7 \u03ad\u03b3\u03ba\u03c5\u03c1\u03bf\u03c2 \u03b1\u03b9\u03c4\u03ce\u03bd
|
||||
registrationNotAllowedMessage=\u0397 \u03b5\u03b3\u03b3\u03c1\u03b1\u03c6\u03ae \u03b4\u03b5\u03bd \u03b5\u03c0\u03b9\u03c4\u03c1\u03ad\u03c0\u03b5\u03c4\u03b1\u03b9
|
||||
resetCredentialNotAllowedMessage=\u0397 \u0395\u03c0\u03b1\u03bd\u03b1\u03c6\u03bf\u03c1\u03ac \u0394\u03b9\u03b1\u03c0\u03b9\u03c3\u03c4\u03b5\u03c5\u03c4\u03b7\u03c1\u03af\u03c9\u03bd \u03b4\u03b5\u03bd \u03b5\u03c0\u03b9\u03c4\u03c1\u03ad\u03c0\u03b5\u03c4\u03b1\u03b9
|
||||
permissionNotApprovedMessage=\u0397 \u03ac\u03b4\u03b5\u03b9\u03b1 \u03b4\u03b5\u03bd \u03b5\u03b3\u03ba\u03c1\u03af\u03b8\u03b7\u03ba\u03b5.
|
||||
noRelayStateInResponseMessage=\u0394\u03b5\u03bd \u03c5\u03c0\u03ac\u03c1\u03c7\u03b5\u03b9 \u03ba\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03b7 \u03bc\u03b5\u03c4\u03b1\u03b2\u03af\u03b2\u03b1\u03c3\u03b7\u03c2 \u03c3\u03c4\u03b7\u03bd \u03b1\u03c0\u03ac\u03bd\u03c4\u03b7\u03c3\u03b7 \u03b1\u03c0\u03cc \u03c4\u03bf \u03c0\u03ac\u03c1\u03bf\u03c7\u03bf \u03c4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2.
|
||||
insufficientPermissionMessage=\u0394\u03b5\u03bd \u03b5\u03c0\u03b1\u03c1\u03ba\u03bf\u03cd\u03bd \u03c4\u03b1 \u03b4\u03b9\u03ba\u03b1\u03b9\u03ce\u03bc\u03b1\u03c4\u03b1 \u03b3\u03b9\u03b1 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7 \u03c4\u03c9\u03bd \u03c4\u03b1\u03c5\u03c4\u03bf\u03c4\u03ae\u03c4\u03c9\u03bd.
|
||||
couldNotProceedWithAuthenticationRequestMessage=\u0391\u03b4\u03c5\u03bd\u03b1\u03bc\u03af\u03b1 \u03bf\u03bb\u03bf\u03ba\u03bb\u03ae\u03c1\u03c9\u03c3\u03b7\u03c2 \u03c4\u03bf\u03c5 \u03b5\u03bb\u03ad\u03b3\u03c7\u03bf\u03c5 \u03c4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2 \u03c3\u03c4\u03bf \u03c0\u03ac\u03c1\u03bf\u03c7\u03bf \u03c4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2.
|
||||
couldNotObtainTokenMessage=\u0391\u03b4\u03c5\u03bd\u03b1\u03bc\u03af\u03b1 \u03b1\u03c0\u03cc\u03ba\u03c4\u03b7\u03c3\u03b7\u03c2 \u03b4\u03b9\u03b1\u03ba\u03c1\u03b9\u03c4\u03b9\u03ba\u03bf\u03cd \u03b1\u03c0\u03cc \u03c4\u03bf \u03c0\u03ac\u03c1\u03bf\u03c7\u03bf \u03c4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2.
|
||||
unexpectedErrorRetrievingTokenMessage=\u0391\u03c0\u03c1\u03cc\u03c3\u03bc\u03b5\u03bd\u03bf \u03c3\u03c6\u03ac\u03bb\u03bc\u03b1 \u03ba\u03b1\u03c4\u03ac \u03c4\u03b7\u03bd \u03b1\u03c0\u03cc\u03ba\u03c4\u03b7\u03c3\u03b7 \u03b4\u03b9\u03b1\u03ba\u03c1\u03b9\u03c4\u03b9\u03ba\u03bf\u03cd \u03b1\u03c0\u03cc \u03c4\u03bf \u03c0\u03ac\u03c1\u03bf\u03c7\u03bf \u03c4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2.
|
||||
unexpectedErrorHandlingResponseMessage=\u0391\u03c0\u03c1\u03cc\u03c3\u03bc\u03b5\u03bd\u03bf \u03c3\u03c6\u03ac\u03bb\u03bc\u03b1 \u03ba\u03b1\u03c4\u03ac \u03c4\u03bf \u03c7\u03b5\u03b9\u03c1\u03b9\u03c3\u03bc\u03cc \u03c4\u03b7\u03c2 \u03b1\u03c0\u03ac\u03bd\u03c4\u03b7\u03c3\u03b7\u03c2 \u03b1\u03c0\u03cc \u03c4\u03bf \u03c0\u03ac\u03c1\u03bf\u03c7\u03bf \u03c4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2.
|
||||
identityProviderAuthenticationFailedMessage=\u0397 \u03c4\u03b1\u03c5\u03c4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7 \u03b1\u03c0\u03ad\u03c4\u03c5\u03c7\u03b5. \u0391\u03b4\u03c5\u03bd\u03b1\u03bc\u03af\u03b1 \u03b5\u03bb\u03ad\u03b3\u03c7\u03bf\u03c5 \u03c4\u03b7\u03c2 \u03c4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2 \u03bc\u03b5 \u03c4\u03bf \u03c0\u03ac\u03c1\u03bf\u03c7\u03bf \u03c4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2.
|
||||
couldNotSendAuthenticationRequestMessage=\u0391\u03b4\u03c5\u03bd\u03b1\u03bc\u03af\u03b1 \u03b1\u03c0\u03bf\u03c3\u03c4\u03bf\u03bb\u03ae\u03c2 \u03c4\u03bf\u03c5 \u03b1\u03b9\u03c4\u03ae\u03bc\u03b1\u03c4\u03bf\u03c2 \u03b5\u03bb\u03ad\u03b3\u03c7\u03bf\u03c5 \u03c4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2 \u03c3\u03c4\u03bf \u03c0\u03ac\u03c1\u03bf\u03c7\u03bf \u03c4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2.
|
||||
unexpectedErrorHandlingRequestMessage=\u0391\u03c0\u03c1\u03cc\u03c3\u03bc\u03b5\u03bd\u03bf \u03c3\u03c6\u03ac\u03bb\u03bc\u03b1 \u03ba\u03b1\u03c4\u03ac \u03c4\u03bf \u03c7\u03b5\u03b9\u03c1\u03b9\u03c3\u03bc\u03cc \u03c4\u03bf\u03c5 \u03b1\u03b9\u03c4\u03ae\u03bc\u03b1\u03c4\u03bf\u03c2 \u03c4\u03b1\u03c5\u03c4\u03bf\u03c0\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7\u03c2 \u03c3\u03c4\u03bf \u03c0\u03ac\u03c1\u03bf\u03c7\u03bf \u03c4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2.
|
||||
invalidAccessCodeMessage=\u039c\u03b7 \u03ad\u03b3\u03ba\u03c5\u03c1\u03bf\u03c2 \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc\u03c2 \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7\u03c2.
|
||||
sessionNotActiveMessage=\u0397 \u03c3\u03c5\u03bd\u03b5\u03b4\u03c1\u03af\u03b1 \u03b4\u03b5\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03b5\u03bd\u03b5\u03c1\u03b3\u03ae.
|
||||
invalidCodeMessage=\u03a3\u03c5\u03bd\u03ad\u03b2\u03b7 \u03ad\u03bd\u03b1 \u03c3\u03c6\u03ac\u03bb\u03bc\u03b1, \u03c0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03b3\u03b9\u03b1 \u03b5\u03c0\u03b1\u03bd\u03b1\u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7 \u03bc\u03ad\u03c3\u03c9 \u03c4\u03b7\u03c2 \u03b5\u03c6\u03b1\u03c1\u03bc\u03bf\u03b3\u03ae\u03c2 \u03c3\u03b1\u03c2.
|
||||
cookieNotFoundMessage=\u0394\u03b5 \u03b2\u03c1\u03ad\u03b8\u03b7\u03ba\u03b5 \u03c4\u03bf cookie. \u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03b2\u03b5\u03b2\u03b1\u03b9\u03c9\u03b8\u03b5\u03af\u03c4\u03b5 \u03cc\u03c4\u03b9 \u03c4\u03b1 cookies \u03b5\u03af\u03bd\u03b1\u03b9 \u03b5\u03bd\u03b5\u03c1\u03b3\u03ac \u03c3\u03c4\u03bf browser \u03c3\u03b1\u03c2.
|
||||
insufficientLevelOfAuthentication=\u0394\u03b5\u03bd \u03b9\u03ba\u03b1\u03bd\u03bf\u03c0\u03bf\u03b9\u03ae\u03b8\u03b7\u03ba\u03b5 \u03c4\u03bf \u03b5\u03c0\u03af\u03c0\u03b5\u03b4\u03bf \u03c4\u03b1\u03c5\u03c4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7\u03c2 \u03c0\u03bf\u03c5 \u03b6\u03b7\u03c4\u03ae\u03b8\u03b7\u03ba\u03b5.
|
||||
identityProviderUnexpectedErrorMessage=\u0391\u03c0\u03c1\u03cc\u03c3\u03bc\u03b5\u03bd\u03bf \u03c3\u03c6\u03ac\u03bb\u03bc\u03b1 \u03ba\u03b1\u03c4\u03ac \u03c4\u03b7 \u03c4\u03b1\u03c5\u03c4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7 \u03bc\u03b5 \u03c4\u03bf \u03c0\u03ac\u03c1\u03bf\u03c7\u03bf \u03c4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2
|
||||
identityProviderMissingStateMessage=\u039b\u03b5\u03af\u03c0\u03b5\u03b9 \u03b7 \u03c0\u03b1\u03c1\u03ac\u03bc\u03b5\u03c4\u03c1\u03bf\u03c2 state \u03b1\u03c0\u03cc \u03c4\u03b7\u03bd \u03b1\u03c0\u03ac\u03bd\u03c4\u03b7\u03c3\u03b7 \u03c4\u03bf\u03c5 \u03c0\u03b1\u03c1\u03cc\u03c7\u03bf\u03c5 \u03c4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2.
|
||||
identityProviderInvalidResponseMessage=\u039c\u03b7 \u03ad\u03b3\u03ba\u03c5\u03c1\u03b7 \u03b1\u03c0\u03ac\u03bd\u03c4\u03b7\u03c3\u03b7 \u03b1\u03c0\u03cc \u03c4\u03bf \u03c0\u03ac\u03c1\u03bf\u03c7\u03bf \u03c4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2.
|
||||
identityProviderInvalidSignatureMessage=\u039c\u03b7 \u03ad\u03b3\u03ba\u03c5\u03c1\u03b7 \u03c5\u03c0\u03bf\u03b3\u03c1\u03b1\u03c6\u03ae \u03c3\u03c4\u03b7\u03bd \u03b1\u03c0\u03ac\u03bd\u03c4\u03b7\u03c3\u03b7 \u03b1\u03c0\u03cc \u03c4\u03bf \u03c0\u03ac\u03c1\u03bf\u03c7\u03bf \u03c4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2.
|
||||
identityProviderNotFoundMessage=\u0391\u03b4\u03c5\u03bd\u03b1\u03bc\u03af\u03b1 \u03b5\u03cd\u03c1\u03b5\u03c3\u03b7\u03c2 \u03b5\u03bd\u03cc\u03c2 \u03c0\u03b1\u03c1\u03cc\u03c7\u03bf\u03c5 \u03c4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2 \u03bc\u03b5 \u03c4\u03bf \u03b1\u03bd\u03b1\u03b3\u03bd\u03c9\u03c1\u03b9\u03c3\u03c4\u03b9\u03ba\u03cc.
|
||||
identityProviderLinkSuccess=\u0395\u03c0\u03b9\u03b2\u03b5\u03b2\u03b1\u03b9\u03ce\u03c3\u03b1\u03c4\u03b5 \u03c4\u03bf email \u03c3\u03b1\u03c2 \u03b5\u03c0\u03b9\u03c4\u03c5\u03c7\u03ce\u03c2. \u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03b5\u03c0\u03b9\u03c3\u03c4\u03c1\u03ad\u03c8\u03c4\u03b5 \u03c3\u03c4\u03bf \u03b1\u03c1\u03c7\u03b9\u03ba\u03cc browser \u03ba\u03b1\u03b9 \u03c3\u03c5\u03bd\u03b5\u03c7\u03af\u03c3\u03c4\u03b5 \u03b5\u03ba\u03b5\u03af \u03c4\u03b7\u03bd \u03b5\u03af\u03c3\u03bf\u03b4\u03bf.
|
||||
staleCodeMessage=\u0391\u03c5\u03c4\u03ae \u03b7 \u03c3\u03b5\u03bb\u03af\u03b4\u03b1 \u03b4\u03b5\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03c0\u03b9\u03b1 \u03ad\u03b3\u03ba\u03c5\u03c1\u03b7, \u03c0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03b5\u03c0\u03b9\u03c3\u03c4\u03c1\u03ad\u03c8\u03c4\u03b5 \u03c3\u03c4\u03b7\u03bd \u03b5\u03c6\u03b1\u03c1\u03bc\u03bf\u03b3\u03ae \u03c3\u03b1\u03c2 \u03ba\u03b1\u03b9 \u03c3\u03c5\u03bd\u03b4\u03b5\u03b8\u03b5\u03af\u03c4\u03b5 \u03be\u03b1\u03bd\u03ac
|
||||
realmSupportsNoCredentialsMessage=\u039f \u03c4\u03bf\u03bc\u03ad\u03b1\u03c2 \u03b4\u03b5\u03bd \u03c5\u03c0\u03bf\u03c3\u03c4\u03b7\u03c1\u03af\u03b6\u03b5\u03b9 \u03ba\u03b1\u03bd\u03ad\u03bd\u03b1 \u03c4\u03cd\u03c0\u03bf \u03b4\u03b9\u03b1\u03c0\u03b9\u03c3\u03c4\u03b5\u03c5\u03c4\u03b7\u03c1\u03af\u03c9\u03bd.
|
||||
credentialSetupRequired=\u0391\u03b4\u03c5\u03bd\u03b1\u03bc\u03af\u03b1 \u03b5\u03b9\u03c3\u03cc\u03b4\u03bf\u03c5, \u03b1\u03c0\u03b1\u03b9\u03c4\u03b5\u03af\u03c4\u03b1\u03b9 \u03c1\u03cd\u03b8\u03bc\u03b9\u03c3\u03b7 \u03c4\u03c9\u03bd \u03b4\u03b9\u03b1\u03c0\u03b9\u03c3\u03c4\u03b5\u03c5\u03c4\u03b7\u03c1\u03af\u03c9\u03bd.
|
||||
identityProviderNotUniqueMessage=\u039f \u03c4\u03bf\u03bc\u03ad\u03b1\u03c2 \u03c5\u03c0\u03bf\u03c3\u03c4\u03b7\u03c1\u03af\u03b6\u03b5\u03b9 \u03c0\u03bf\u03bb\u03bb\u03b1\u03c0\u03bb\u03bf\u03cd\u03c2 \u03c0\u03b1\u03c1\u03cc\u03c7\u03bf\u03c5\u03c2 \u03c4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2. \u0391\u03b4\u03c5\u03bd\u03b1\u03bc\u03af\u03b1 \u03b5\u03c0\u03b9\u03bb\u03bf\u03b3\u03ae\u03c2 \u03c4\u03bf\u03c5 \u03c0\u03b1\u03c1\u03cc\u03c7\u03bf\u03c5 \u03c4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2 \u03c0\u03bf\u03c5 \u03b8\u03b1 \u03c7\u03c1\u03b7\u03c3\u03b9\u03bc\u03bf\u03c0\u03bf\u03b9\u03b7\u03b8\u03b5\u03af \u03b3\u03b9\u03b1 \u03c4\u03b7 \u03c4\u03b1\u03c5\u03c4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7.
|
||||
emailVerifiedMessage=\u0397 \u03b4\u03b9\u03b5\u03cd\u03b8\u03c5\u03bd\u03c3\u03b7 email \u03c3\u03b1\u03c2 \u03ad\u03c7\u03b5\u03b9 \u03b5\u03c0\u03b9\u03b2\u03b5\u03b2\u03b1\u03b9\u03c9\u03b8\u03b5\u03af.
|
||||
staleEmailVerificationLink=\u039f \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03bc\u03cc\u03c2 \u03c0\u03bf\u03c5 \u03c0\u03b1\u03c4\u03ae\u03c3\u03b1\u03c4\u03b5 \u03b5\u03af\u03bd\u03b1\u03b9 \u03c0\u03b1\u03bb\u03b9\u03cc\u03c2 \u03ba\u03b1\u03b9 \u03b4\u03b5\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03ad\u03b3\u03ba\u03c5\u03c1\u03bf\u03c2 \u03c0\u03b9\u03b1. \u038a\u03c3\u03c9\u03c2 \u03ad\u03c7\u03b5\u03c4\u03b5 \u03ae\u03b4\u03b7 \u03b5\u03c0\u03b9\u03b2\u03b5\u03b2\u03b1\u03b9\u03ce\u03c3\u03b5\u03b9 \u03c4\u03bf email \u03c3\u03b1\u03c2.
|
||||
identityProviderAlreadyLinkedMessage=\u0397 \u03bf\u03bc\u03cc\u03c3\u03c0\u03bf\u03bd\u03b4\u03b7 \u03c4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1 \u03c0\u03bf\u03c5 \u03b5\u03c0\u03b9\u03c3\u03c4\u03c1\u03ad\u03c6\u03b5\u03b9 \u03c4\u03bf {0} \u03b5\u03af\u03bd\u03b1\u03b9 \u03ae\u03b4\u03b7 \u03c3\u03c5\u03bd\u03b4\u03b5\u03b4\u03b5\u03bc\u03ad\u03bd\u03b7 \u03bc\u03b5 \u03ad\u03bd\u03b1 \u03ac\u03bb\u03bb\u03bf \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7.
|
||||
confirmAccountLinking=\u0395\u03c0\u03b9\u03b2\u03b5\u03b2\u03b1\u03b9\u03ce\u03c3\u03c4\u03b5 \u03c4\u03b7 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7 \u03c4\u03bf\u03c5 \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03bf\u03cd {0} \u03c3\u03c4\u03bf \u03c0\u03ac\u03c1\u03bf\u03c7\u03bf \u03c4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2 {1} \u03bc\u03b5 \u03c4\u03bf \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03cc \u03c3\u03b1\u03c2.
|
||||
confirmEmailAddressVerification=\u0395\u03c0\u03b9\u03b2\u03b5\u03b2\u03b1\u03b9\u03ce\u03c3\u03c4\u03b5 \u03c4\u03b7\u03bd \u03b5\u03b3\u03ba\u03c5\u03c1\u03cc\u03c4\u03b7\u03c4\u03b1 \u03c4\u03b7\u03c2 \u03b4\u03b9\u03b5\u03cd\u03b8\u03c5\u03bd\u03c3\u03b7\u03c2 email {0}.
|
||||
confirmExecutionOfActions=\u03a0\u03c1\u03b1\u03b3\u03bc\u03b1\u03c4\u03bf\u03c0\u03bf\u03b9\u03ae\u03c3\u03c4\u03b5 \u03c4\u03b7\u03bd \u03b1\u03ba\u03cc\u03bb\u03bf\u03c5\u03b8\u03b7 \u03b5\u03bd\u03ad\u03c1\u03b3\u03b5\u03b9\u03b1(\u03b5\u03c2)
|
||||
backToApplication=« \u0395\u03c0\u03b9\u03c3\u03c4\u03c1\u03bf\u03c6\u03ae \u03c3\u03c4\u03b7\u03bd \u0395\u03c6\u03b1\u03c1\u03bc\u03bf\u03b3\u03ae
|
||||
missingParameterMessage=\u039b\u03b5\u03af\u03c0\u03bf\u03c5\u03bd \u03bf\u03b9 \u03c0\u03b1\u03c1\u03ac\u03bc\u03b5\u03c4\u03c1\u03bf\u03b9\: {0}
|
||||
clientNotFoundMessage=\u039f \u03c0\u03b5\u03bb\u03ac\u03c4\u03b7\u03c2 \u03b4\u03b5 \u03b2\u03c1\u03ad\u03b8\u03b7\u03ba\u03b5.
|
||||
clientDisabledMessage=\u039f \u03c0\u03b5\u03bb\u03ac\u03c4\u03b7\u03c2 \u03b1\u03c0\u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03ae\u03b8\u03b7\u03ba\u03b5.
|
||||
invalidParameterMessage=\u039c\u03b7 \u03ad\u03b3\u03ba\u03c5\u03c1\u03b7 \u03c0\u03b1\u03c1\u03ac\u03bc\u03b5\u03c4\u03c1\u03bf\u03c2\: {0}
|
||||
alreadyLoggedIn=\u0388\u03c7\u03b5\u03c4\u03b5 \u03ae\u03b4\u03b7 \u03c3\u03c5\u03bd\u03b4\u03b5\u03b8\u03b5\u03af.
|
||||
differentUserAuthenticated=\u0388\u03c7\u03b5\u03c4\u03b5 \u03ae\u03b4\u03b7 \u03c4\u03b1\u03c5\u03c4\u03bf\u03c0\u03bf\u03b9\u03b7\u03b8\u03b5\u03af \u03c3\u03b5 \u03b1\u03c5\u03c4\u03ae \u03c4\u03b7 \u03c3\u03c5\u03bd\u03b5\u03b4\u03c1\u03af\u03b1 \u03c9\u03c2 \u03bf \u03ac\u03bb\u03bb\u03bf\u03c2 \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7\u03c2 ''{0}''. \u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03c0\u03c1\u03ce\u03c4\u03b1 \u03bd\u03b1 \u03b1\u03c0\u03bf\u03c3\u03c5\u03bd\u03b4\u03b5\u03b8\u03b5\u03af\u03c4\u03b5.
|
||||
brokerLinkingSessionExpired=\u0391\u03b9\u03c4\u03ae\u03b8\u03b7\u03ba\u03b5 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7 \u03bc\u03b5 \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03cc \u03bc\u03b5\u03c3\u03bf\u03bb\u03b1\u03b2\u03b7\u03c4\u03ae, \u03b1\u03bb\u03bb\u03ac \u03b7 \u03c4\u03c1\u03ad\u03c7\u03bf\u03c5\u03c3\u03b1 \u03c3\u03c5\u03bd\u03b5\u03b4\u03c1\u03af\u03b1 \u03b4\u03b5\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03c0\u03b9\u03b1 \u03ad\u03b3\u03ba\u03c5\u03c1\u03b7.
|
||||
proceedWithAction=» \u03a0\u03b1\u03c4\u03ae\u03c3\u03c4\u03b5 \u03b5\u03b4\u03ce \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03c0\u03c1\u03bf\u03c7\u03c9\u03c1\u03ae\u03c3\u03b5\u03c4\u03b5
|
||||
acrNotFulfilled=\u0394\u03b5\u03bd \u03b9\u03ba\u03b1\u03bd\u03bf\u03c0\u03bf\u03b9\u03bf\u03cd\u03bd\u03c4\u03b1\u03b9 \u03bf\u03b9 \u03b1\u03c0\u03b1\u03b9\u03c4\u03ae\u03c3\u03b5\u03b9\u03c2 \u03c4\u03b1\u03c5\u03c4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7\u03c2
|
||||
requiredAction.CONFIGURE_TOTP=\u03a1\u03cd\u03b8\u03bc\u03b9\u03c3\u03b7 OTP
|
||||
requiredAction.terms_and_conditions=\u038c\u03c1\u03bf\u03b9 \u03ba\u03b1\u03b9 \u03a3\u03c5\u03bd\u03b8\u03ae\u03ba\u03b5\u03c2
|
||||
requiredAction.UPDATE_PASSWORD=\u0395\u03bd\u03b7\u03bc\u03ad\u03c1\u03c9\u03c3\u03b7 \u039a\u03c9\u03b4\u03b9\u03ba\u03bf\u03cd \u03a0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7\u03c2
|
||||
requiredAction.UPDATE_PROFILE=\u0395\u03bd\u03b7\u03bc\u03ad\u03c1\u03c9\u03c3\u03b7 \u03a0\u03c1\u03bf\u03c6\u03af\u03bb
|
||||
requiredAction.VERIFY_EMAIL=\u0395\u03c0\u03b9\u03b2\u03b5\u03b2\u03b1\u03af\u03c9\u03c3\u03b7 Email
|
||||
requiredAction.CONFIGURE_RECOVERY_AUTHN_CODES=\u0394\u03b7\u03bc\u03b9\u03bf\u03c5\u03c1\u03b3\u03af\u03b1 \u039a\u03c9\u03b4\u03b9\u03ba\u03ce\u03bd \u0391\u03bd\u03ac\u03ba\u03c4\u03b7\u03c3\u03b7\u03c2
|
||||
requiredAction.webauthn-register-passwordless=\u0395\u03b3\u03b3\u03c1\u03b1\u03c6\u03ae \u03c3\u03b5 Webauthn \u03a7\u03c9\u03c1\u03af\u03c2-\u039a\u03c9\u03b4\u03b9\u03ba\u03cc-\u03a0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7\u03c2
|
||||
invalidTokenRequiredActions=\u039f\u03b9 \u03b1\u03c0\u03b1\u03b9\u03c4\u03bf\u03cd\u03bc\u03b5\u03bd\u03b5\u03c2 \u03b5\u03bd\u03ad\u03c1\u03b3\u03b5\u03b9\u03b5\u03c2 \u03c0\u03bf\u03c5 \u03c0\u03b5\u03c1\u03b9\u03bb\u03b1\u03bc\u03b2\u03ac\u03bd\u03bf\u03bd\u03c4\u03b1\u03b9 \u03c3\u03b5 \u03b1\u03c5\u03c4\u03cc \u03c4\u03bf \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03bc\u03bf \u03b4\u03b5\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03ad\u03b3\u03ba\u03c5\u03c1\u03b5\u03c2
|
||||
doX509Login=\u0398\u03b1 \u03c3\u03c5\u03bd\u03b4\u03b5\u03b8\u03b5\u03af\u03c4\u03b5 \u03c9\u03c2\:
|
||||
clientCertificate=\u03a0\u03b9\u03c3\u03c4\u03bf\u03c0\u03bf\u03b9\u03b7\u03c4\u03b9\u03ba\u03cc \u03c0\u03b5\u03bb\u03ac\u03c4\u03b7 X509\:
|
||||
noCertificate=[\u039a\u03b1\u03bd\u03ad\u03bd\u03b1 \u03a0\u03b9\u03c3\u03c4\u03bf\u03c0\u03bf\u03b9\u03b7\u03c4\u03b9\u03ba\u03cc]
|
||||
pageNotFound=\u0397 \u03c3\u03b5\u03bb\u03af\u03b4\u03b1 \u03b4\u03b5 \u03b2\u03c1\u03ad\u03b8\u03b7\u03ba\u03b5
|
||||
internalServerError=\u03a3\u03c5\u03bd\u03ad\u03b2\u03b7 \u03ad\u03bd\u03b1 \u03b5\u03c3\u03c9\u03c4\u03b5\u03c1\u03b9\u03ba\u03cc \u03c3\u03c6\u03ac\u03bb\u03bc\u03b1 \u03c3\u03c4\u03b7\u03bd \u03c5\u03c0\u03b7\u03c1\u03b5\u03c3\u03af\u03b1
|
||||
console-username=\u038c\u03bd\u03bf\u03bc\u03b1 \u03a7\u03c1\u03ae\u03c3\u03c4\u03b7\:
|
||||
console-password=\u039a\u03c9\u03b4\u03b9\u03ba\u03cc\u03c2 \u03a0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7\u03c2\:
|
||||
console-otp=\u039a\u03c9\u03b4\u03b9\u03ba\u03cc\u03c2 \u039c\u03af\u03b1\u03c2 \u03a7\u03c1\u03ae\u03c3\u03b7\u03c2\:
|
||||
console-new-password=\u039d\u03ad\u03bf\u03c2 \u039a\u03c9\u03b4\u03b9\u03ba\u03cc\u03c2 \u03a0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7\u03c2\:
|
||||
console-confirm-password=\u0395\u03c0\u03b9\u03b2\u03b5\u03b2\u03b1\u03af\u03c9\u03c3\u03b7 \u039a\u03c9\u03b4\u03b9\u03ba\u03bf\u03cd\:
|
||||
console-update-password=\u0391\u03c0\u03b1\u03b9\u03c4\u03b5\u03af\u03c4\u03b1\u03b9 \u03b7 \u03b5\u03bd\u03b7\u03bc\u03ad\u03c1\u03c9\u03c3\u03b7 \u03c4\u03bf\u03c5 \u03ba\u03c9\u03b4\u03b9\u03ba\u03bf\u03cd \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7\u03c2 \u03c3\u03b1\u03c2.
|
||||
console-verify-email=\u03a0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03b5\u03c0\u03b9\u03b2\u03b5\u03b2\u03b1\u03b9\u03ce\u03c3\u03b5\u03c4\u03b5 \u03c4\u03b7\u03bd \u03b4\u03b9\u03b5\u03cd\u03b8\u03c5\u03bd\u03c3\u03b7 email \u03c3\u03b1\u03c2. \u03a3\u03c4\u03ac\u03bb\u03b8\u03b7\u03ba\u03b5 \u03ad\u03bd\u03b1 email \u03c3\u03c4\u03bf {0} \u03c4\u03bf \u03bf\u03c0\u03bf\u03af\u03bf \u03c0\u03b5\u03c1\u03b9\u03ad\u03c7\u03b5\u03b9 \u03ad\u03bd\u03b1 \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc \u03b5\u03c0\u03b9\u03b2\u03b5\u03b2\u03b1\u03af\u03c9\u03c3\u03b7\u03c2. \u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03b5\u03b9\u03c3\u03ac\u03b3\u03b5\u03c4\u03b5 \u03c4\u03bf \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc \u03c3\u03c4\u03bf \u03c0\u03b1\u03c1\u03b1\u03ba\u03ac\u03c4\u03c9 \u03c0\u03b5\u03b4\u03af\u03bf.
|
||||
console-email-code=\u039a\u03c9\u03b4\u03b9\u03ba\u03cc\u03c2 Email\:
|
||||
console-accept-terms=\u0391\u03c0\u03bf\u03b4\u03bf\u03c7\u03ae \u038c\u03c1\u03c9\u03bd [\u03bd/\u03bf]\:
|
||||
console-accept=\u03bd
|
||||
openshift.scope.user_info=\u03a0\u03bb\u03b7\u03c1\u03bf\u03c6\u03bf\u03c1\u03af\u03b5\u03c2 \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7
|
||||
openshift.scope.user_check-access=\u03a0\u03bb\u03b7\u03c1\u03bf\u03c6\u03bf\u03c1\u03af\u03b5\u03c2 \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7\u03c2 \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7
|
||||
openshift.scope.user_full=\u03a0\u03bb\u03ae\u03c1\u03b7\u03c2 \u03a0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7
|
||||
openshift.scope.list-projects=\u0395\u03bc\u03c6\u03ac\u03bd\u03b9\u03c3\u03b7 \u03bb\u03af\u03c3\u03c4\u03b1\u03c2 \u03ad\u03c1\u03b3\u03c9\u03bd
|
||||
saml.post-form.title=\u0391\u03bd\u03b1\u03ba\u03b1\u03c4\u03b5\u03cd\u03b8\u03c5\u03bd\u03c3\u03b7 \u03a4\u03b1\u03c5\u03c4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7\u03c2
|
||||
saml.post-form.message=\u0391\u03bd\u03b1\u03ba\u03b1\u03c4\u03b5\u03cd\u03b8\u03c5\u03bd\u03c3\u03b7, \u03c0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03b1\u03bd\u03b1\u03bc\u03ad\u03bd\u03b1\u03c4\u03b5.
|
||||
saml.post-form.js-disabled=\u0388\u03c7\u03b5\u03b9 \u03b1\u03c0\u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03b7\u03b8\u03b5\u03af \u03b7 JavaScript. \u03a3\u03c5\u03bd\u03b9\u03c3\u03c4\u03bf\u03cd\u03bc\u03b5 \u03bd\u03b1 \u03c4\u03b7\u03bd \u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03ae\u03c3\u03b5\u03c4\u03b5. \u03a0\u03b1\u03c4\u03ae\u03c3\u03c4\u03b5 \u03c4\u03bf \u03ba\u03bf\u03c5\u03bc\u03c0\u03af \u03c0\u03b1\u03c1\u03b1\u03ba\u03ac\u03c4\u03c9 \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03c3\u03c5\u03bd\u03b5\u03c7\u03af\u03c3\u03b5\u03c4\u03b5.
|
||||
saml.artifactResolutionServiceInvalidResponse=\u0391\u03b4\u03c5\u03bd\u03b1\u03bc\u03af\u03b1 \u03b5\u03c0\u03af\u03bb\u03c5\u03c3\u03b7\u03c2 \u03c4\u03bf\u03c5 \u03c3\u03c4\u03bf\u03b9\u03c7\u03b5\u03af\u03bf\u03c5.
|
||||
otp-display-name=\u0395\u03c6\u03b1\u03c1\u03bc\u03bf\u03b3\u03ae \u03a4\u03b1\u03c5\u03c4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7\u03c2
|
||||
otp-help-text=\u0395\u03b9\u03c3\u03ac\u03b3\u03b5\u03c4\u03b5 \u03ad\u03bd\u03b1 \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc \u03b5\u03c0\u03b9\u03b2\u03b5\u03b2\u03b1\u03af\u03c9\u03c3\u03b7\u03c2 \u03b1\u03c0\u03cc \u03c4\u03b7\u03bd \u03b5\u03c6\u03b1\u03c1\u03bc\u03bf\u03b3\u03ae \u03c4\u03b1\u03c5\u03c4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7\u03c2.
|
||||
password-display-name=\u039a\u03c9\u03b4\u03b9\u03ba\u03cc\u03c2 \u03a0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7\u03c2
|
||||
password-help-text=\u03a3\u03c5\u03bd\u03b4\u03b5\u03b8\u03b5\u03af\u03c4\u03b5 \u03b2\u03ac\u03b6\u03bf\u03bd\u03c4\u03b1\u03c2 \u03c4\u03bf \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7\u03c2 \u03c3\u03b1\u03c2.
|
||||
auth-username-form-display-name=\u038c\u03bd\u03bf\u03bc\u03b1 \u03a7\u03c1\u03ae\u03c3\u03c4\u03b7
|
||||
auth-username-form-help-text=\u039e\u03b5\u03ba\u03b9\u03bd\u03ae\u03c3\u03c4\u03b5 \u03c4\u03b7\u03bd \u03b5\u03af\u03c3\u03bf\u03b4\u03bf \u03bc\u03b5 \u03c4\u03bf \u03cc\u03bd\u03bf\u03bc\u03b1 \u03c4\u03bf\u03c5 \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7 \u03c3\u03b1\u03c2
|
||||
auth-username-password-form-display-name=\u038c\u03bd\u03bf\u03bc\u03b1 \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7 \u03ba\u03b1\u03b9 \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc\u03c2 \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7\u03c2
|
||||
auth-username-password-form-help-text=\u03a3\u03c5\u03bd\u03b4\u03b5\u03b8\u03b5\u03af\u03c4\u03b5 \u03bc\u03b5 \u03c4\u03bf \u03cc\u03bd\u03bf\u03bc\u03b1 \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7 \u03ba\u03b1\u03b9 \u03c4\u03bf \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7\u03c2 \u03c3\u03b1\u03c2.
|
||||
auth-recovery-authn-code-form-display-name=\u039a\u03c9\u03b4\u03b9\u03ba\u03cc\u03c2 \u0391\u03bd\u03ac\u03ba\u03c4\u03b7\u03c3\u03b7\u03c2 \u03a4\u03b1\u03c5\u03c4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7\u03c2
|
||||
auth-recovery-authn-code-form-help-text=\u0394\u03ce\u03c3\u03c4\u03b5 \u03ad\u03bd\u03b1 \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc \u03b1\u03bd\u03ac\u03ba\u03c4\u03b7\u03c3\u03b7\u03c2 \u03c4\u03b1\u03c5\u03c4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7\u03c2 \u03b1\u03c0\u03cc \u03bc\u03b9\u03b1 \u03c0\u03c1\u03bf\u03cb\u03c0\u03ac\u03c1\u03c7\u03bf\u03c5\u03c3\u03b1 \u03bb\u03af\u03c3\u03c4\u03b1.
|
||||
auth-recovery-code-info-message=\u0394\u03ce\u03c3\u03c4\u03b5 \u03c4\u03bf \u03ba\u03b1\u03b8\u03bf\u03c1\u03b9\u03c3\u03bc\u03ad\u03bd\u03bf \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc \u03b1\u03bd\u03ac\u03ba\u03c4\u03b7\u03c3\u03b7\u03c2.
|
||||
auth-recovery-code-prompt=\u039a\u03c9\u03b4\u03b9\u03ba\u03cc\u03c2 \u03b1\u03bd\u03ac\u03ba\u03c4\u03b7\u03c3\u03b7\u03c2 \#{0}
|
||||
auth-recovery-code-header=\u03a3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7 \u03bc\u03b5 \u03ad\u03bd\u03b1 \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc \u03b1\u03bd\u03ac\u03ba\u03c4\u03b7\u03c3\u03b7\u03c2 \u03c4\u03b1\u03c5\u03c4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7\u03c2
|
||||
recovery-codes-error-invalid=\u039c\u03b7 \u03ad\u03b3\u03ba\u03c5\u03c1\u03bf\u03c2 \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc\u03c2 \u03b1\u03bd\u03ac\u03ba\u03c4\u03b7\u03c3\u03b7\u03c2 \u03c4\u03b1\u03c5\u03c4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7\u03c2
|
||||
recovery-code-config-header=\u039a\u03c9\u03b4\u03b9\u03ba\u03bf\u03af \u0391\u03bd\u03ac\u03ba\u03c4\u03b7\u03c3\u03b7\u03c2 \u03a4\u03b1\u03c5\u03c4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7\u03c2
|
||||
recovery-code-config-warning-title=\u0391\u03c5\u03c4\u03bf\u03af \u03bf\u03b9 \u03ba\u03c9\u03b4\u03b9\u03ba\u03bf\u03af \u03b1\u03bd\u03ac\u03ba\u03c4\u03b7\u03c3\u03b7\u03c2 \u03b4\u03b5\u03bd \u03b8\u03b1 \u03b5\u03af\u03bd\u03b1\u03b9 \u03c0\u03b9\u03b1 \u03bf\u03c1\u03b1\u03c4\u03ae \u03bc\u03b5\u03c4\u03ac \u03c0\u03bf\u03c5 \u03b8\u03b1 \u03b2\u03b3\u03b5\u03af\u03c4\u03b5 \u03b1\u03c0\u03cc \u03c4\u03b7 \u03c3\u03b5\u03bb\u03af\u03b4\u03b1
|
||||
recovery-code-config-warning-message=\u0392\u03b5\u03b2\u03b1\u03b9\u03c9\u03b8\u03b5\u03af\u03c4\u03b5 \u03cc\u03c4\u03b9 \u03c4\u03bf\u03c5\u03c2 \u03b5\u03ba\u03c4\u03c5\u03c0\u03ce\u03c3\u03b1\u03c4\u03b5, \u03ba\u03b1\u03c4\u03b5\u03b2\u03ac\u03c3\u03b1\u03c4\u03b5 \u03ae \u03b1\u03bd\u03c4\u03b9\u03b3\u03c1\u03ac\u03c8\u03b1\u03c4\u03b5 \u03c3\u03c4\u03bf \u03b4\u03b9\u03b1\u03c7\u03b5\u03b9\u03c1\u03b9\u03c3\u03c4\u03ae \u03ba\u03c9\u03b4\u03b9\u03ba\u03ce\u03bd \u03c3\u03b1\u03c2 \u03bc\u03b5 \u03b1\u03c3\u03c6\u03ac\u03bb\u03b5\u03b9\u03b1. \u0397 \u03b1\u03ba\u03cd\u03c1\u03c9\u03c3\u03b7 \u03b1\u03c5\u03c4\u03ae\u03c2 \u03c4\u03b7\u03c2 \u03b4\u03b9\u03b1\u03b4\u03b9\u03ba\u03b1\u03c3\u03af\u03b1\u03c2 \u03b8\u03b1 \u03b1\u03c6\u03b1\u03b9\u03c1\u03ad\u03c3\u03b5\u03b9 \u03b1\u03c5\u03c4\u03bf\u03cd\u03c2 \u03c4\u03bf\u03c5 \u03ba\u03c9\u03b4\u03b9\u03ba\u03bf\u03cd\u03c2 \u03b1\u03bd\u03ac\u03ba\u03c4\u03b7\u03c3\u03b7\u03c2 \u03b1\u03c0\u03cc \u03c4\u03bf \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03cc \u03c3\u03b1\u03c2.
|
||||
recovery-codes-print=\u0395\u03ba\u03c4\u03cd\u03c0\u03c9\u03c3\u03b7
|
||||
recovery-codes-download=\u039b\u03ae\u03c8\u03b7
|
||||
recovery-codes-copy=\u0391\u03bd\u03c4\u03b9\u03b3\u03c1\u03b1\u03c6\u03ae
|
||||
recovery-codes-copied=\u0391\u03bd\u03c4\u03b9\u03b3\u03c1\u03ac\u03c6\u03b7\u03ba\u03b5
|
||||
recovery-codes-confirmation-message=\u0391\u03c0\u03bf\u03b8\u03ae\u03ba\u03b5\u03c5\u03c3\u03b1 \u03b1\u03c5\u03c4\u03bf\u03cd\u03c2 \u03c4\u03bf\u03c5 \u03ba\u03c9\u03b4\u03b9\u03ba\u03bf\u03cd\u03c2 \u03bc\u03b5 \u03b1\u03c3\u03c6\u03ac\u03bb\u03b5\u03b9\u03b1
|
||||
recovery-codes-action-complete=\u039f\u03bb\u03bf\u03ba\u03bb\u03ae\u03c1\u03c9\u03c3\u03b7 \u03b4\u03b9\u03b1\u03b4\u03b9\u03ba\u03b1\u03c3\u03af\u03b1\u03c2
|
||||
recovery-codes-action-cancel=\u0391\u03ba\u03cd\u03c1\u03c9\u03c3\u03b7 \u03b4\u03b9\u03b1\u03b4\u03b9\u03ba\u03b1\u03c3\u03af\u03b1\u03c2
|
||||
recovery-codes-download-file-header=\u039a\u03c1\u03b1\u03c4\u03ae\u03c3\u03c4\u03b5 \u03b1\u03c5\u03c4\u03bf\u03cd\u03c2 \u03c4\u03bf\u03c5 \u03ba\u03c9\u03b4\u03b9\u03ba\u03bf\u03cd\u03c2 \u03b1\u03bd\u03ac\u03ba\u03c4\u03b7\u03c3\u03b7\u03c2 \u03ba\u03ac\u03c0\u03bf\u03c5 \u03b1\u03c3\u03c6\u03b1\u03bb\u03ad\u03c2.
|
||||
recovery-codes-download-file-description=\u039f\u03b9 \u03ba\u03c9\u03b4\u03b9\u03ba\u03bf\u03af \u03b1\u03bd\u03ac\u03ba\u03c4\u03b7\u03c3\u03b7\u03c2 \u03b5\u03af\u03bd\u03b1\u03b9 \u03bc\u03c5\u03c3\u03c4\u03b9\u03ba\u03ac \u03bc\u03af\u03b1\u03c2 \u03c7\u03c1\u03ae\u03c3\u03b7\u03c2 \u03c0\u03bf\u03c5 \u03b5\u03c0\u03b9\u03c4\u03c1\u03ad\u03c0\u03bf\u03c5\u03bd \u03bd\u03b1 \u03c3\u03c5\u03bd\u03b4\u03b5\u03b8\u03b5\u03af\u03c4\u03b5 \u03c3\u03c4\u03bf \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03cc \u03b1\u03bd \u03b4\u03b5\u03bd \u03ad\u03c7\u03b5\u03c4\u03b5 \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7 \u03c3\u03c4\u03b7\u03bd \u03b5\u03c6\u03b1\u03c1\u03bc\u03bf\u03b3\u03ae \u03c4\u03b1\u03c5\u03c4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7\u03c2.
|
||||
recovery-codes-download-file-date=\u0391\u03c5\u03c4\u03bf\u03af \u03bf\u03b9 \u03ba\u03c9\u03b4\u03b9\u03ba\u03bf\u03af \u03b4\u03b7\u03bc\u03b9\u03bf\u03c5\u03c1\u03b3\u03ae\u03b8\u03b7\u03ba\u03b1\u03bd \u03c3\u03c4\u03b9\u03c2
|
||||
recovery-codes-label-default=\u039a\u03c9\u03b4\u03b9\u03ba\u03bf\u03af \u03b1\u03bd\u03ac\u03ba\u03c4\u03b7\u03c3\u03b7\u03c2
|
||||
webauthn-display-name=\u039a\u03bb\u03b5\u03b9\u03b4\u03af \u0391\u03c3\u03c6\u03b1\u03bb\u03b5\u03af\u03b1\u03c2
|
||||
webauthn-help-text=\u03a7\u03c1\u03ae\u03c3\u03b7 \u03c4\u03bf\u03c5 \u03ba\u03bb\u03b5\u03b9\u03b4\u03b9\u03bf\u03cd \u03b1\u03c3\u03c6\u03b1\u03bb\u03b5\u03af\u03b1\u03c2 \u03c3\u03b1\u03c2 \u03b3\u03b9\u03b1 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7.
|
||||
webauthn-passwordless-display-name=\u039a\u03bb\u03b5\u03b9\u03b4\u03af \u0391\u03c3\u03c6\u03b1\u03bb\u03b5\u03af\u03b1\u03c2
|
||||
webauthn-passwordless-help-text=\u03a7\u03c1\u03ae\u03c3\u03b7 \u03c4\u03bf\u03c5 \u03ba\u03bb\u03b5\u03b9\u03b4\u03b9\u03bf\u03cd \u03b1\u03c3\u03c6\u03b1\u03bb\u03b5\u03af\u03b1\u03c2 \u03b3\u03b9\u03b1 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7 \u03c7\u03c9\u03c1\u03af\u03c2 \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7\u03c2.
|
||||
webauthn-login-title=\u0395\u03af\u03c3\u03bf\u03b4\u03bf\u03c2 \u03bc\u03b5 \u039a\u03bb\u03b5\u03b9\u03b4\u03af \u0391\u03c3\u03c6\u03b1\u03bb\u03b5\u03af\u03b1\u03c2
|
||||
webauthn-registration-title=\u0395\u03b3\u03b3\u03c1\u03b1\u03c6\u03ae \u039a\u03bb\u03b5\u03b9\u03b4\u03b9\u03bf\u03cd \u0391\u03c3\u03c6\u03b1\u03bb\u03b5\u03af\u03b1\u03c2
|
||||
webauthn-available-authenticators=\u0394\u03b9\u03b1\u03b8\u03ad\u03c3\u03b9\u03bc\u03b1 \u039a\u03bb\u03b5\u03b9\u03b4\u03b9\u03ac \u0391\u03c3\u03c6\u03b1\u03bb\u03b5\u03af\u03b1\u03c2
|
||||
webauthn-unsupported-browser-text=\u03a4\u03bf WebAuthn \u03b4\u03b5\u03bd \u03c5\u03c0\u03bf\u03c3\u03c4\u03b7\u03c1\u03af\u03b6\u03b5\u03c4\u03b1\u03b9 \u03b1\u03c0\u03cc \u03b1\u03c5\u03c4\u03cc \u03c4\u03bf browser. \u0394\u03bf\u03ba\u03b9\u03bc\u03ac\u03c3\u03c4\u03b5 \u03ba\u03ac\u03c0\u03bf\u03b9\u03bf\u03bd \u03ac\u03bb\u03bb\u03bf \u03ae \u03b5\u03c0\u03b9\u03ba\u03bf\u03b9\u03bd\u03c9\u03bd\u03ae\u03c3\u03c4\u03b5 \u03bc\u03b5 \u03c4\u03bf \u03b4\u03b9\u03b1\u03c7\u03b5\u03b9\u03c1\u03b9\u03c3\u03c4\u03ae.
|
||||
webauthn-doAuthenticate=\u03a3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7 \u03bc\u03b5 \u03c4\u03bf \u039a\u03bb\u03b5\u03b9\u03b4\u03af \u0391\u03c3\u03c6\u03b1\u03bb\u03b5\u03af\u03b1\u03c2
|
||||
webauthn-createdAt-label=\u0394\u03b7\u03bc\u03b9\u03bf\u03c5\u03c1\u03b3\u03ae\u03b8\u03b7\u03ba\u03b5
|
||||
webauthn-error-title=\u03a3\u03c6\u03ac\u03bb\u03bc\u03b1 \u039a\u03bb\u03b5\u03b9\u03b4\u03b9\u03bf\u03cd \u0391\u03c3\u03c6\u03b1\u03bb\u03b5\u03af\u03b1\u03c2
|
||||
webauthn-error-registration=\u0391\u03c0\u03bf\u03c4\u03c5\u03c7\u03af\u03b1 \u03b5\u03b3\u03b3\u03c1\u03b1\u03c6\u03ae\u03c2 \u03c4\u03bf\u03c5 \u03ba\u03bb\u03b5\u03b9\u03b4\u03b9\u03bf\u03cd \u03b1\u03c3\u03c6\u03b1\u03bb\u03b5\u03af\u03b1\u03c2 \u03c3\u03b1\u03c2.<br/> {0}
|
||||
webauthn-error-api-get=\u0391\u03c0\u03bf\u03c4\u03c5\u03c7\u03af\u03b1 \u03c4\u03b1\u03c5\u03c4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7\u03c2 \u03bc\u03ad\u03c3\u03c9 \u03c4\u03bf\u03c5 \u039a\u03bb\u03b5\u03b9\u03b4\u03b9\u03bf\u03cd \u03b1\u03c3\u03c6\u03b1\u03bb\u03b5\u03af\u03b1\u03c2.<br/> {0}
|
||||
webauthn-error-different-user=\u039f \u03b1\u03c1\u03c7\u03b9\u03ba\u03cc\u03c2 \u03c4\u03b1\u03c5\u03c4\u03bf\u03c0\u03bf\u03b9\u03b7\u03bc\u03ad\u03bd\u03bf\u03c2 \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7\u03c2 \u03b4\u03b5\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03bf \u03af\u03b4\u03b9\u03bf\u03c2 \u03bc\u03b5 \u03b1\u03c5\u03c4\u03cc \u03c0\u03bf\u03c5 \u03c4\u03b1\u03c5\u03c4\u03bf\u03c0\u03bf\u03b9\u03ae\u03b8\u03b7\u03ba\u03b5 \u03bc\u03b5 \u03c4\u03bf \u039a\u03bb\u03b5\u03b9\u03b4\u03af \u03b1\u03c3\u03c6\u03b1\u03bb\u03b5\u03af\u03b1\u03c2.
|
||||
webauthn-error-auth-verification=\u039c\u03b7 \u03ad\u03b3\u03ba\u03c5\u03c1\u03bf \u03b1\u03c0\u03bf\u03c4\u03ad\u03bb\u03b5\u03c3\u03bc\u03b1 \u03c4\u03b1\u03c5\u03c4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7\u03c2 \u03c4\u03bf\u03c5 \u039a\u03bb\u03b5\u03b9\u03b4\u03b9\u03bf\u03cd \u03b1\u03c3\u03c6\u03b1\u03bb\u03b5\u03af\u03b1\u03c2.<br/> {0}
|
||||
webauthn-error-register-verification=\u039c\u03b7 \u03ad\u03b3\u03ba\u03c5\u03c1\u03bf \u03b1\u03c0\u03bf\u03c4\u03ad\u03bb\u03b5\u03c3\u03bc\u03b1 \u03b5\u03b3\u03b3\u03c1\u03b1\u03c6\u03ae\u03c2 \u03c4\u03bf\u03c5 \u039a\u03bb\u03b5\u03b9\u03b4\u03b9\u03bf\u03cd \u03b1\u03c3\u03c6\u03b1\u03bb\u03b5\u03af\u03b1\u03c2.<br/> {0}
|
||||
webauthn-error-user-not-found=\u0386\u03b3\u03bd\u03c9\u03c3\u03c4\u03bf\u03c2 \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7\u03c2 \u03c4\u03b1\u03c5\u03c4\u03bf\u03c0\u03bf\u03b9\u03ae\u03b8\u03b7\u03ba\u03b5 \u03bc\u03b5 \u03c4\u03bf \u039a\u03bb\u03b5\u03b9\u03b4\u03af \u03b1\u03c3\u03c6\u03b1\u03bb\u03b5\u03af\u03b1\u03c2.
|
||||
identity-provider-redirector=\u03a3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7 \u03bc\u03b5 \u03ad\u03bd\u03b1 \u03ac\u03bb\u03bb\u03bf \u03a0\u03ac\u03c1\u03bf\u03c7\u03bf \u03a4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2
|
||||
identity-provider-login-label=\u0389 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7 \u03bc\u03b5
|
||||
idp-email-verification-display-name=\u03a0\u03b9\u03c3\u03c4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7 Email
|
||||
idp-email-verification-help-text=\u03a3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7 \u03c4\u03bf\u03c5 \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03bf\u03cd \u03bc\u03b5 \u03b5\u03c0\u03b9\u03b2\u03b5\u03b2\u03b1\u03af\u03c9\u03c3\u03b7 \u03c4\u03bf\u03c5 email \u03c3\u03b1\u03c2.
|
||||
idp-username-password-form-display-name=\u038c\u03bd\u03bf\u03bc\u03b1 \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7 \u03ba\u03b1\u03b9 \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc\u03c2 \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7\u03c2
|
||||
idp-username-password-form-help-text=\u03a3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7 \u03c4\u03bf\u03c5 \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03bf\u03cd \u03c3\u03b1\u03c2 \u03bc\u03ad\u03c3\u03c9 \u03c4\u03b7\u03c2 \u03b5\u03b9\u03c3\u03cc\u03b4\u03bf\u03c5 \u03c3\u03b1\u03c2.
|
||||
finalDeletionConfirmation=\u0391\u03bd \u03b4\u03b9\u03b1\u03b3\u03c1\u03ac\u03c8\u03b5\u03c4\u03b5 \u03c4\u03bf \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03cc \u03c3\u03b1\u03c2, \u03b7 \u03b1\u03bd\u03ac\u03ba\u03c4\u03b7\u03c3\u03b7 \u03b8\u03b1 \u03b5\u03af\u03bd\u03b1\u03b9 \u03b1\u03b4\u03cd\u03bd\u03b1\u03c4\u03b7. \u0393\u03b9\u03b1 \u03bd\u03b1 \u03c0\u03b1\u03c1\u03b1\u03bc\u03b5\u03af\u03bd\u03b5\u03b9, \u03c0\u03b1\u03c4\u03ae\u03c3\u03c4\u03b5 \u0391\u03ba\u03cd\u03c1\u03c9\u03c3\u03b7.
|
||||
irreversibleAction=\u0391\u03c5\u03c4\u03ae \u03b7 \u03b5\u03bd\u03ad\u03c1\u03b3\u03b5\u03b9\u03b1 \u03b5\u03af\u03bd\u03b1\u03b9 \u03bc\u03b7 \u03b1\u03bd\u03b1\u03c3\u03c4\u03c1\u03ad\u03c8\u03b9\u03bc\u03b7
|
||||
deleteAccountConfirm=\u0395\u03c0\u03b9\u03b2\u03b5\u03b2\u03b1\u03af\u03c9\u03c3\u03b7 \u03b4\u03b9\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae\u03c2 \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03bf\u03cd
|
||||
deletingImplies=\u0397 \u03b4\u03b9\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae \u03c4\u03bf\u03c5 \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03bf\u03cd \u03c3\u03b1\u03c2 \u03c3\u03c5\u03bd\u03b5\u03c0\u03ac\u03b3\u03b5\u03c4\u03b1\u03b9\:
|
||||
errasingData=\u0394\u03b9\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae \u03cc\u03bb\u03c9\u03bd \u03c4\u03c9\u03bd \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd \u03c3\u03b1\u03c2
|
||||
loggingOutImmediately=\u0386\u03bc\u03b5\u03c3\u03b7 \u03b1\u03c0\u03bf\u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7 \u03c3\u03b1\u03c2
|
||||
accountUnusable=\u039a\u03ac\u03b8\u03b5 \u03bc\u03b5\u03c4\u03b1\u03b3\u03b5\u03bd\u03ad\u03c3\u03c4\u03b5\u03c1\u03b7 \u03c7\u03c1\u03ae\u03c3\u03b7 \u03b1\u03c5\u03c4\u03ae\u03c2 \u03c4\u03b7\u03c2 \u03b5\u03c6\u03b1\u03c1\u03bc\u03bf\u03b3\u03ae\u03c2 \u03b4\u03b5\u03bd \u03b8\u03b1 \u03b5\u03af\u03bd\u03b1\u03b9 \u03b4\u03c5\u03bd\u03b1\u03c4\u03ae \u03bc\u03b5 \u03b1\u03c5\u03c4\u03cc \u03c4\u03bf \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03cc
|
||||
userDeletedSuccessfully=\u039f \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7\u03c2 \u03b4\u03b9\u03b1\u03b3\u03c1\u03ac\u03c6\u03b7\u03ba\u03b5 \u03bc\u03b5 \u03b5\u03c0\u03b9\u03c4\u03c5\u03c7\u03af\u03b1
|
||||
access-denied=\u0394\u03b5\u03bd \u03b5\u03c0\u03b9\u03c4\u03c1\u03ad\u03c0\u03b5\u03c4\u03b1\u03b9 \u03b7 \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7
|
||||
access-denied-when-idp-auth=\u0394\u03b5\u03bd \u03b5\u03c0\u03b9\u03c4\u03c1\u03ad\u03c0\u03b5\u03c4\u03b1\u03b9 \u03b7 \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7 \u03ba\u03b1\u03c4\u03ac \u03c4\u03b7 \u03c4\u03b1\u03c5\u03c4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7 \u03bc\u03b5 {0}
|
||||
frontchannel-logout.title=\u0391\u03c0\u03bf\u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7
|
||||
frontchannel-logout.message=\u0391\u03c0\u03bf\u03c3\u03c5\u03bd\u03b4\u03ad\u03b5\u03c3\u03c4\u03b5 \u03b1\u03c0\u03cc \u03c4\u03b9\u03c2 \u03c0\u03b1\u03c1\u03b1\u03ba\u03ac\u03c4\u03c9 \u03b5\u03c6\u03b1\u03c1\u03bc\u03bf\u03b3\u03ad\u03c2
|
||||
logoutConfirmTitle=\u0391\u03c0\u03bf\u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7
|
||||
logoutConfirmHeader=\u03a3\u03af\u03b3\u03bf\u03c5\u03c1\u03b1 \u03bd\u03b1 \u03b3\u03af\u03bd\u03b5\u03b9 \u03b1\u03c0\u03bf\u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7;
|
||||
doLogout=\u0391\u03c0\u03bf\u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7
|
||||
readOnlyUsernameMessage=\u0394\u03b5 \u03bc\u03c0\u03bf\u03c1\u03b5\u03af\u03c4\u03b5 \u03bd\u03b1 \u03b5\u03bd\u03b7\u03bc\u03b5\u03c1\u03ce\u03c3\u03b5\u03c4\u03b5 \u03c4\u03bf \u03cc\u03bd\u03bf\u03bc\u03b1 \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7 \u03c3\u03b1\u03c2 \u03ba\u03b1\u03b8\u03ce\u03c2 \u03b5\u03af\u03bd\u03b1\u03b9 \u03bc\u03cc\u03bd\u03bf-\u03b3\u03b9\u03b1-\u03b1\u03bd\u03ac\u03b3\u03bd\u03c9\u03c3\u03b7.
|
||||
shouldBeEqual=\u03a4\u03bf {0} \u03c0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03b5\u03af\u03bd\u03b1\u03b9 \u03af\u03c3\u03bf \u03bc\u03b5 {1}
|
||||
shouldBeDifferent=\u03a4\u03bf {0} \u03c0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03b4\u03b9\u03b1\u03c6\u03ad\u03c1\u03b5\u03b9 \u03b1\u03c0\u03cc \u03c4\u03bf {1}
|
||||
shouldMatchPattern=\u03a4\u03bf \u03c0\u03c1\u03cc\u03c4\u03c5\u03c0\u03bf \u03c0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03c4\u03b1\u03b9\u03c1\u03b9\u03ac\u03b6\u03b5\u03b9\: `/{0}/`
|
||||
mustBeAnInteger=\u03a0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03b5\u03af\u03bd\u03b1\u03b9 \u03b1\u03ba\u03ad\u03c1\u03b1\u03b9\u03bf\u03c2
|
||||
notAValidOption=\u0394\u03b5\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03bc\u03b9\u03b1 \u03ad\u03b3\u03ba\u03c5\u03c1\u03b7 \u03b5\u03c0\u03b9\u03bb\u03bf\u03b3\u03ae
|
||||
selectAnOption=\u0395\u03c0\u03b9\u03bb\u03ad\u03be\u03c4\u03b5 \u03bc\u03b9\u03b1 \u03b5\u03c0\u03b9\u03bb\u03bf\u03b3\u03ae
|
||||
remove=\u0391\u03c6\u03b1\u03af\u03c1\u03b5\u03c3\u03b7
|
||||
addValue=\u03a0\u03c1\u03bf\u03c3\u03b8\u03ae\u03ba\u03b7 \u03c4\u03b9\u03bc\u03ae\u03c2
|
||||
languages=\u0393\u03bb\u03ce\u03c3\u03c3\u03b5\u03c2
|
@ -0,0 +1,468 @@
|
||||
|
||||
doLogIn=Sign In
|
||||
doRegister=Register
|
||||
doRegisterSecurityKey=Register
|
||||
doCancel=Cancel
|
||||
doSubmit=Submit
|
||||
doBack=Back
|
||||
doYes=Yes
|
||||
doNo=No
|
||||
doContinue=Continue
|
||||
doIgnore=Ignore
|
||||
doAccept=Accept
|
||||
doDecline=Decline
|
||||
doForgotPassword=Forgot Password?
|
||||
doClickHere=Click here
|
||||
doImpersonate=Impersonate
|
||||
doTryAgain=Try again
|
||||
doTryAnotherWay=Try Another Way
|
||||
doConfirmDelete=Confirm deletion
|
||||
errorDeletingAccount=Error happened while deleting account
|
||||
deletingAccountForbidden=You do not have enough permissions to delete your own account, contact admin.
|
||||
kerberosNotConfigured=Kerberos Not Configured
|
||||
kerberosNotConfiguredTitle=Kerberos Not Configured
|
||||
bypassKerberosDetail=Either you are not logged in by Kerberos or your browser is not set up for Kerberos login. Please click continue to login in through other means
|
||||
kerberosNotSetUp=Kerberos is not set up. You cannot login.
|
||||
registerTitle=Register
|
||||
loginAccountTitle=Sign in to your account
|
||||
loginTitle=Sign in to {0}
|
||||
loginTitleHtml={0}
|
||||
impersonateTitle={0} Impersonate User
|
||||
impersonateTitleHtml=<strong>{0}</strong> Impersonate User
|
||||
realmChoice=Realm
|
||||
unknownUser=Unknown user
|
||||
loginTotpTitle=Mobile Authenticator Setup
|
||||
loginProfileTitle=Update Account Information
|
||||
loginIdpReviewProfileTitle=Update Account Information
|
||||
loginTimeout=Your login attempt timed out. Login will start from the beginning.
|
||||
reauthenticate=Please re-authenticate to continue
|
||||
authenticateStrong=Strong authentication required to continue
|
||||
oauthGrantTitle=Grant Access to {0}
|
||||
oauthGrantTitleHtml={0}
|
||||
oauthGrantInformation=Make sure you trust {0} by learning how {0} will handle your data.
|
||||
oauthGrantReview=You could review the
|
||||
oauthGrantTos=terms of service.
|
||||
oauthGrantPolicy=privacy policy.
|
||||
errorTitle=We are sorry...
|
||||
errorTitleHtml=We are <strong>sorry</strong> ...
|
||||
emailVerifyTitle=Email verification
|
||||
emailForgotTitle=Forgot Your Password?
|
||||
updateEmailTitle=Update email
|
||||
emailUpdateConfirmationSentTitle=Confirmation email sent
|
||||
emailUpdateConfirmationSent=A confirmation email has been sent to {0}. You must follow the instructions of the former to complete the email update.
|
||||
emailUpdatedTitle=Email updated
|
||||
emailUpdated=The account email has been successfully updated to {0}.
|
||||
updatePasswordTitle=Update password
|
||||
codeSuccessTitle=Success code
|
||||
codeErrorTitle=Error code\: {0}
|
||||
displayUnsupported=Requested display type unsupported
|
||||
browserRequired=Browser required to login
|
||||
browserContinue=Browser required to complete login
|
||||
browserContinuePrompt=Open browser and continue login? [y/n]\:
|
||||
browserContinueAnswer=y
|
||||
usb=USB
|
||||
nfc=NFC
|
||||
bluetooth=Bluetooth
|
||||
internal=Internal
|
||||
unknown=Unknown
|
||||
termsTitle=Terms and Conditions
|
||||
termsText=
|
||||
termsPlainText=Terms and conditions to be defined.
|
||||
termsAcceptanceRequired=You must agree to our terms and conditions.
|
||||
acceptTerms=I agree to the terms and conditions
|
||||
deleteCredentialTitle=Delete {0}
|
||||
deleteCredentialMessage=Do you want to delete {0}?
|
||||
recaptchaFailed=Invalid Recaptcha
|
||||
recaptchaNotConfigured=Recaptcha is required, but not configured
|
||||
consentDenied=Consent denied.
|
||||
noAccount=New user?
|
||||
username=Username
|
||||
usernameOrEmail=Username or email
|
||||
firstName=First name
|
||||
givenName=Given name
|
||||
fullName=Full name
|
||||
lastName=Last name
|
||||
familyName=Family name
|
||||
email=Email
|
||||
password=Password
|
||||
passwordConfirm=Confirm password
|
||||
passwordNew=New Password
|
||||
passwordNewConfirm=New Password confirmation
|
||||
hidePassword=Hide password
|
||||
showPassword=Show password
|
||||
rememberMe=Remember me
|
||||
authenticatorCode=One-time code
|
||||
address=Address
|
||||
street=Street
|
||||
locality=City or Locality
|
||||
region=State, Province, or Region
|
||||
postal_code=Zip or Postal code
|
||||
country=Country
|
||||
emailVerified=Email verified
|
||||
website=Web page
|
||||
phoneNumber=Phone number
|
||||
phoneNumberVerified=Phone number verified
|
||||
gender=Gender
|
||||
birthday=Birthdate
|
||||
zoneinfo=Time zone
|
||||
gssDelegationCredential=GSS Delegation Credential
|
||||
logoutOtherSessions=Sign out from other devices
|
||||
profileScopeConsentText=User profile
|
||||
emailScopeConsentText=Email address
|
||||
addressScopeConsentText=Address
|
||||
phoneScopeConsentText=Phone number
|
||||
offlineAccessScopeConsentText=Offline Access
|
||||
samlRoleListScopeConsentText=My Roles
|
||||
rolesScopeConsentText=User roles
|
||||
organizationScopeConsentText=Organization
|
||||
restartLoginTooltip=Restart login
|
||||
loginTotpIntro=You need to set up a One Time Password generator to access this account
|
||||
loginTotpStep1=Install one of the following applications on your mobile\:
|
||||
loginTotpStep2=Open the application and scan the barcode\:
|
||||
loginTotpStep3=Enter the one-time code provided by the application and click Submit to finish the setup.
|
||||
loginTotpStep3DeviceName=Provide a Device Name to help you manage your OTP devices.
|
||||
loginTotpManualStep2=Open the application and enter the key\:
|
||||
loginTotpManualStep3=Use the following configuration values if the application allows setting them\:
|
||||
loginTotpUnableToScan=Unable to scan?
|
||||
loginTotpScanBarcode=Scan barcode?
|
||||
loginCredential=Credential
|
||||
loginOtpOneTime=One-time code
|
||||
loginTotpType=Type
|
||||
loginTotpAlgorithm=Algorithm
|
||||
loginTotpDigits=Digits
|
||||
loginTotpInterval=Interval
|
||||
loginTotpCounter=Counter
|
||||
loginTotpDeviceName=Device Name
|
||||
loginTotp.totp=Time-based
|
||||
loginTotp.hotp=Counter-based
|
||||
totpAppFreeOTPName=FreeOTP
|
||||
totpAppGoogleName=Google Authenticator
|
||||
totpAppMicrosoftAuthenticatorName=Microsoft Authenticator
|
||||
loginChooseAuthenticator=Select login method
|
||||
oauthGrantRequest=Do you grant these access privileges?
|
||||
inResource=in
|
||||
oauth2DeviceVerificationTitle=Device Login
|
||||
verifyOAuth2DeviceUserCode=Enter the code provided by your device and click Submit
|
||||
oauth2DeviceInvalidUserCodeMessage=Invalid code, please try again.
|
||||
oauth2DeviceExpiredUserCodeMessage=The code has expired. Please go back to your device and try connecting again.
|
||||
oauth2DeviceVerificationCompleteHeader=Device Login Successful
|
||||
oauth2DeviceVerificationCompleteMessage=You may close this browser window and go back to your device.
|
||||
oauth2DeviceVerificationFailedHeader=Device Login Failed
|
||||
oauth2DeviceVerificationFailedMessage=You may close this browser window and go back to your device and try connecting again.
|
||||
oauth2DeviceConsentDeniedMessage=Consent denied for connecting the device.
|
||||
oauth2DeviceAuthorizationGrantDisabledMessage=Client is not allowed to initiate OAuth 2.0 Device Authorization Grant. The flow is disabled for the client.
|
||||
emailVerifyInstruction1=An email with instructions to verify your email address has been sent to your address {0}.
|
||||
emailVerifyInstruction2=Haven''t received a verification code in your email?
|
||||
emailVerifyInstruction3=to re-send the email.
|
||||
emailLinkIdpTitle=Link {0}
|
||||
emailLinkIdp1=An email with instructions to link {0} account {1} with your {2} account has been sent to you.
|
||||
emailLinkIdp2=Haven''t received a verification code in your email?
|
||||
emailLinkIdp3=to re-send the email.
|
||||
emailLinkIdp4=If you already verified the email in different browser
|
||||
emailLinkIdp5=to continue.
|
||||
backToLogin=« Back to Login
|
||||
emailInstruction=Enter your username or email address and we will send you instructions on how to create a new password.
|
||||
emailInstructionUsername=Enter your username and we will send you instructions on how to create a new password.
|
||||
copyCodeInstruction=Please copy this code and paste it into your application\:
|
||||
pageExpiredTitle=Page has expired
|
||||
pageExpiredMsg1=To restart the login process
|
||||
pageExpiredMsg2=To continue the login process
|
||||
personalInfo=Personal Info\:
|
||||
role_admin=Admin
|
||||
role_realm-admin=Realm Admin
|
||||
role_create-realm=Create realm
|
||||
role_create-client=Create client
|
||||
role_view-realm=View realm
|
||||
role_view-users=View users
|
||||
role_view-applications=View applications
|
||||
role_view-clients=View clients
|
||||
role_view-events=View events
|
||||
role_view-identity-providers=View identity providers
|
||||
role_manage-realm=Manage realm
|
||||
role_manage-users=Manage users
|
||||
role_manage-applications=Manage applications
|
||||
role_manage-identity-providers=Manage identity providers
|
||||
role_manage-clients=Manage clients
|
||||
role_manage-events=Manage events
|
||||
role_view-profile=View profile
|
||||
role_manage-account=Manage account
|
||||
role_manage-account-links=Manage account links
|
||||
role_read-token=Read token
|
||||
role_offline-access=Offline access
|
||||
client_account=Account
|
||||
client_account-console=Account Console
|
||||
client_security-admin-console=Security Admin Console
|
||||
client_admin-cli=Admin CLI
|
||||
client_realm-management=Realm Management
|
||||
client_broker=Broker
|
||||
requiredFields=Required fields
|
||||
invalidUserMessage=Invalid username or password.
|
||||
invalidUsernameMessage=Invalid username.
|
||||
invalidUsernameOrEmailMessage=Invalid username or email.
|
||||
invalidPasswordMessage=Invalid password.
|
||||
invalidEmailMessage=Invalid email address.
|
||||
accountDisabledMessage=Account is disabled, contact your administrator.
|
||||
accountTemporarilyDisabledMessage=Account is temporarily disabled; contact your administrator or retry later.
|
||||
expiredCodeMessage=Login timeout. Please sign in again.
|
||||
expiredActionMessage=Action expired. Please continue with login now.
|
||||
expiredActionTokenNoSessionMessage=Action expired.
|
||||
expiredActionTokenSessionExistsMessage=Action expired. Please start again.
|
||||
sessionLimitExceeded=There are too many sessions
|
||||
identityProviderLogoutFailure=SAML IdP Logout Failure
|
||||
missingFirstNameMessage=Please specify first name.
|
||||
missingLastNameMessage=Please specify last name.
|
||||
missingEmailMessage=Please specify email.
|
||||
missingUsernameMessage=Please specify username.
|
||||
missingPasswordMessage=Please specify password.
|
||||
missingTotpMessage=Please specify authenticator code.
|
||||
missingTotpDeviceNameMessage=Please specify device name.
|
||||
notMatchPasswordMessage=Passwords don''t match.
|
||||
error-invalid-value=Invalid value.
|
||||
error-invalid-blank=Please specify value.
|
||||
error-empty=Please specify value.
|
||||
error-invalid-length=Length must be between {1} and {2}.
|
||||
error-invalid-length-too-short=Minimal length is {1}.
|
||||
error-invalid-length-too-long=Maximal length is {2}.
|
||||
error-invalid-email=Invalid email address.
|
||||
error-invalid-number=Invalid number.
|
||||
error-number-out-of-range=Number must be between {1} and {2}.
|
||||
error-number-out-of-range-too-small=Number must have minimal value of {1}.
|
||||
error-number-out-of-range-too-big=Number must have maximal value of {2}.
|
||||
error-pattern-no-match=Invalid value.
|
||||
error-invalid-uri=Invalid URL.
|
||||
error-invalid-uri-scheme=Invalid URL scheme.
|
||||
error-invalid-uri-fragment=Invalid URL fragment.
|
||||
error-user-attribute-required=Please specify this field.
|
||||
error-invalid-date=Invalid date.
|
||||
error-user-attribute-read-only=This field is read only.
|
||||
error-username-invalid-character=Value contains invalid character.
|
||||
error-person-name-invalid-character=Value contains invalid character.
|
||||
error-reset-otp-missing-id=Please choose an OTP configuration.
|
||||
invalidPasswordExistingMessage=Invalid existing password.
|
||||
invalidPasswordBlacklistedMessage=Invalid password\: password is blacklisted.
|
||||
invalidPasswordConfirmMessage=Password confirmation doesn''t match.
|
||||
invalidTotpMessage=Invalid authenticator code.
|
||||
usernameExistsMessage=Username already exists.
|
||||
emailExistsMessage=Email already exists.
|
||||
federatedIdentityExistsMessage=User with {0} {1} already exists. Please login to account management to link the account.
|
||||
federatedIdentityUnavailableMessage=User {0} authenticated with identity provider {1} does not exist. Please contact your administrator.
|
||||
federatedIdentityUnmatchedEssentialClaimMessage=The ID token issued by the identity provider does not match the configured essential claim. Please contact your administrator.
|
||||
confirmLinkIdpTitle=Account already exists
|
||||
confirmOverrideIdpTitle=Broker link already exists
|
||||
federatedIdentityConfirmLinkMessage=User with {0} {1} already exists. How do you want to continue?
|
||||
federatedIdentityConfirmOverrideMessage=You are trying to link your account {0} with the {1} account {2}. But your account is already linked with different {3} account {4}. Can you confirm if you want to replace the existing link with the new account?
|
||||
federatedIdentityConfirmReauthenticateMessage=Authenticate to link your account with {0}
|
||||
nestedFirstBrokerFlowMessage=The {0} user {1} is not linked to any known user.
|
||||
confirmLinkIdpReviewProfile=Review profile
|
||||
confirmLinkIdpContinue=Add to existing account
|
||||
confirmOverrideIdpContinue=Yes, override link with current account
|
||||
configureTotpMessage=You need to set up Mobile Authenticator to activate your account.
|
||||
configureBackupCodesMessage=You need to set up Backup Codes to activate your account.
|
||||
updateProfileMessage=You need to update your user profile to activate your account.
|
||||
updatePasswordMessage=You need to change your password to activate your account.
|
||||
updateEmailMessage=You need to update your email address to activate your account.
|
||||
resetPasswordMessage=You need to change your password.
|
||||
verifyEmailMessage=You need to verify your email address to activate your account.
|
||||
linkIdpMessage=You need to verify your email address to link your account with {0}.
|
||||
emailSentMessage=You should receive an email shortly with further instructions.
|
||||
emailSendErrorMessage=Failed to send email, please try again later.
|
||||
accountUpdatedMessage=Your account has been updated.
|
||||
accountPasswordUpdatedMessage=Your password has been updated.
|
||||
delegationCompleteHeader=Login Successful
|
||||
delegationCompleteMessage=You may close this browser window and go back to your console application.
|
||||
delegationFailedHeader=Login Failed
|
||||
delegationFailedMessage=You may close this browser window and go back to your console application and try logging in again.
|
||||
noAccessMessage=No access
|
||||
invalidPasswordMinLengthMessage=Invalid password\: minimum length {0}.
|
||||
invalidPasswordMaxLengthMessage=Invalid password\: maximum length {0}.
|
||||
invalidPasswordMinDigitsMessage=Invalid password\: must contain at least {0} numerical digits.
|
||||
invalidPasswordMinLowerCaseCharsMessage=Invalid password\: must contain at least {0} lower case characters.
|
||||
invalidPasswordMinUpperCaseCharsMessage=Invalid password\: must contain at least {0} upper case characters.
|
||||
invalidPasswordMinSpecialCharsMessage=Invalid password\: must contain at least {0} special characters.
|
||||
invalidPasswordNotUsernameMessage=Invalid password\: must not be equal to the username.
|
||||
invalidPasswordNotContainsUsernameMessage=Invalid password\: Can not contain the username.
|
||||
invalidPasswordNotEmailMessage=Invalid password\: must not be equal to the email.
|
||||
invalidPasswordRegexPatternMessage=Invalid password\: fails to match regex pattern(s).
|
||||
invalidPasswordHistoryMessage=Invalid password\: must not be equal to any of last {0} passwords.
|
||||
invalidPasswordGenericMessage=Invalid password\: new password doesn''t match password policies.
|
||||
failedToProcessResponseMessage=Failed to process response
|
||||
httpsRequiredMessage=HTTPS required
|
||||
realmNotEnabledMessage=Realm not enabled
|
||||
invalidRequestMessage=Invalid Request
|
||||
successLogout=You are logged out
|
||||
failedLogout=Logout failed
|
||||
unknownLoginRequesterMessage=Unknown login requester
|
||||
loginRequesterNotEnabledMessage=Login requester not enabled
|
||||
bearerOnlyMessage=Bearer-only applications are not allowed to initiate browser login
|
||||
standardFlowDisabledMessage=Client is not allowed to initiate browser login with given response_type. Standard flow is disabled for the client.
|
||||
implicitFlowDisabledMessage=Client is not allowed to initiate browser login with given response_type. Implicit flow is disabled for the client.
|
||||
invalidRedirectUriMessage=Invalid redirect uri
|
||||
unsupportedNameIdFormatMessage=Unsupported NameIDFormat
|
||||
invalidRequesterMessage=Invalid requester
|
||||
registrationNotAllowedMessage=Registration not allowed
|
||||
resetCredentialNotAllowedMessage=Reset Credential not allowed
|
||||
permissionNotApprovedMessage=Permission not approved.
|
||||
noRelayStateInResponseMessage=No relay state in response from identity provider.
|
||||
insufficientPermissionMessage=Insufficient permissions to link identities.
|
||||
couldNotProceedWithAuthenticationRequestMessage=Could not proceed with authentication request to identity provider.
|
||||
couldNotObtainTokenMessage=Could not obtain token from identity provider.
|
||||
unexpectedErrorRetrievingTokenMessage=Unexpected error when retrieving token from identity provider.
|
||||
unexpectedErrorHandlingResponseMessage=Unexpected error when handling response from identity provider.
|
||||
identityProviderAuthenticationFailedMessage=Authentication failed. Could not authenticate with identity provider.
|
||||
couldNotSendAuthenticationRequestMessage=Could not send authentication request to identity provider.
|
||||
unexpectedErrorHandlingRequestMessage=Unexpected error when handling authentication request to identity provider.
|
||||
invalidAccessCodeMessage=Invalid access code.
|
||||
sessionNotActiveMessage=Session not active.
|
||||
invalidCodeMessage=An error occurred, please login again through your application.
|
||||
cookieNotFoundMessage=Cookie not found. Please make sure cookies are enabled in your browser.
|
||||
insufficientLevelOfAuthentication=The requested level of authentication has not been satisfied.
|
||||
identityProviderUnexpectedErrorMessage=Unexpected error when authenticating with identity provider
|
||||
identityProviderMissingStateMessage=Missing state parameter in response from identity provider.
|
||||
identityProviderMissingCodeOrErrorMessage=Missing code or error parameter in response from identity provider.
|
||||
identityProviderInvalidResponseMessage=Invalid response from identity provider.
|
||||
identityProviderInvalidSignatureMessage=Invalid signature in response from identity provider.
|
||||
identityProviderNotFoundMessage=Could not find an identity provider with the identifier.
|
||||
identityProviderLinkSuccess=You successfully verified your email. Please go back to your original browser and continue there with the login.
|
||||
staleCodeMessage=This page is no longer valid, please go back to your application and sign in again
|
||||
realmSupportsNoCredentialsMessage=Realm does not support any credential type.
|
||||
credentialSetupRequired=Cannot login, credential setup required.
|
||||
identityProviderNotUniqueMessage=Realm supports multiple identity providers. Could not determine which identity provider should be used to authenticate with.
|
||||
emailVerifiedMessage=Your email address has been verified.
|
||||
emailVerifiedAlreadyMessage=Your email address has been verified already.
|
||||
staleEmailVerificationLink=The link you clicked is an old stale link and is no longer valid. Maybe you have already verified your email.
|
||||
identityProviderAlreadyLinkedMessage=Federated identity returned by {0} is already linked to another user.
|
||||
confirmAccountLinking=Confirm linking the account {0} of identity provider {1} with your account.
|
||||
confirmEmailAddressVerification=Confirm validity of e-mail address {0}.
|
||||
confirmExecutionOfActions=Perform the following action(s)
|
||||
backToApplication=« Back to Application
|
||||
missingParameterMessage=Missing parameters\: {0}
|
||||
clientNotFoundMessage=Client not found.
|
||||
clientDisabledMessage=Client disabled.
|
||||
invalidParameterMessage=Invalid parameter\: {0}
|
||||
alreadyLoggedIn=You are already logged in.
|
||||
differentUserAuthenticated=You are already authenticated as different user ''{0}'' in this session. Please sign out first.
|
||||
brokerLinkingSessionExpired=Requested broker account linking, but current session is no longer valid.
|
||||
proceedWithAction=» Click here to proceed
|
||||
acrNotFulfilled=Authentication requirements not fulfilled
|
||||
requiredAction.CONFIGURE_TOTP=Configure OTP
|
||||
requiredAction.TERMS_AND_CONDITIONS=Terms and Conditions
|
||||
requiredAction.UPDATE_PASSWORD=Update Password
|
||||
requiredAction.UPDATE_PROFILE=Update Profile
|
||||
requiredAction.VERIFY_EMAIL=Verify Email
|
||||
requiredAction.CONFIGURE_RECOVERY_AUTHN_CODES=Generate Recovery Codes
|
||||
requiredAction.webauthn-register-passwordless=Webauthn Register Passwordless
|
||||
invalidTokenRequiredActions=Required actions included in the link are not valid
|
||||
doX509Login=You will be logged in as\:
|
||||
clientCertificate=X509 client certificate\:
|
||||
noCertificate=[No Certificate]
|
||||
pageNotFound=Page not found
|
||||
internalServerError=An internal server error has occurred
|
||||
console-username=Username\:
|
||||
console-password=Password\:
|
||||
console-otp=One Time Password\:
|
||||
console-new-password=New Password\:
|
||||
console-confirm-password=Confirm Password\:
|
||||
console-update-password=Update of your password is required.
|
||||
console-verify-email=You need to verify your email address. We sent an email to {0} that contains a verification code. Please enter this code into the input below.
|
||||
console-email-code=Email Code\:
|
||||
console-accept-terms=Accept Terms? [y/n]\:
|
||||
console-accept=y
|
||||
openshift.scope.user_info=User information
|
||||
openshift.scope.user_check-access=User access information
|
||||
openshift.scope.user_full=Full Access
|
||||
openshift.scope.list-projects=List projects
|
||||
saml.post-form.title=Authentication Redirect
|
||||
saml.post-form.message=Redirecting, please wait.
|
||||
saml.post-form.js-disabled=JavaScript is disabled. We strongly recommend to enable it. Click the button below to continue.
|
||||
saml.artifactResolutionServiceInvalidResponse=Unable to resolve artifact.
|
||||
otp-display-name=Authenticator Application
|
||||
otp-help-text=Enter a verification code from authenticator application.
|
||||
otp-reset-description=Which OTP configuration should be removed?
|
||||
password-display-name=Password
|
||||
password-help-text=Sign in by entering your password.
|
||||
auth-username-form-display-name=Username
|
||||
auth-username-form-help-text=Start sign in by entering your username
|
||||
auth-username-password-form-display-name=Username and password
|
||||
auth-username-password-form-help-text=Sign in by entering your username and password.
|
||||
auth-x509-client-username-form-display-name=X509 Certificate
|
||||
auth-x509-client-username-form-help-text=Sign in with an X509 client certificate.
|
||||
auth-recovery-authn-code-form-display-name=Recovery Authentication Code
|
||||
auth-recovery-authn-code-form-help-text=Enter a recovery authentication code from a previously generated list.
|
||||
auth-recovery-code-info-message=Enter the specified recovery code.
|
||||
auth-recovery-code-prompt=Recovery code \#{0}
|
||||
auth-recovery-code-header=Login with a recovery authentication code
|
||||
recovery-codes-error-invalid=Invalid recovery authentication code
|
||||
recovery-code-config-header=Recovery Authentication Codes
|
||||
recovery-code-config-warning-title=These recovery codes won''t appear again after leaving this page
|
||||
recovery-code-config-warning-message=Make sure to print, download, or copy them to a password manager and keep them save. Canceling this setup will remove these recovery codes from your account.
|
||||
recovery-codes-print=Print
|
||||
recovery-codes-download=Download
|
||||
recovery-codes-copy=Copy
|
||||
recovery-codes-copied=Copied
|
||||
recovery-codes-confirmation-message=I have saved these codes somewhere safe
|
||||
recovery-codes-action-complete=Complete setup
|
||||
recovery-codes-action-cancel=Cancel setup
|
||||
recovery-codes-download-file-header=Keep these recovery codes somewhere safe.
|
||||
recovery-codes-download-file-description=Recovery codes are single-use passcodes that allow you to sign in to your account if you do not have access to your authenticator.
|
||||
recovery-codes-download-file-date=These codes were generated on
|
||||
recovery-codes-label-default=Recovery codes
|
||||
webauthn-display-name=Passkey
|
||||
webauthn-help-text=Use your Passkey to sign in.
|
||||
webauthn-passwordless-display-name=Passkey
|
||||
webauthn-passwordless-help-text=Use your Passkey for passwordless sign in.
|
||||
webauthn-login-title=Passkey login
|
||||
webauthn-registration-title=Passkey Registration
|
||||
webauthn-available-authenticators=Available Passkeys
|
||||
webauthn-unsupported-browser-text=WebAuthn is not supported by this browser. Try another one or contact your administrator.
|
||||
webauthn-doAuthenticate=Sign in with Passkey
|
||||
webauthn-createdAt-label=Created
|
||||
webauthn-registration-init-label=Passkey (Default Label)
|
||||
webauthn-registration-init-label-prompt=Please input your registered passkey''s label
|
||||
webauthn-error-title=Passkey Error
|
||||
webauthn-error-registration=Failed to register your Passkey.<br/> {0}
|
||||
webauthn-error-api-get=Failed to authenticate by the Passkey.<br/> {0}
|
||||
webauthn-error-different-user=First authenticated user is not the one authenticated by the Passkey.
|
||||
webauthn-error-auth-verification=Passkey authentication result is invalid.<br/> {0}
|
||||
webauthn-error-register-verification=Passkey registration result is invalid.<br/> {0}
|
||||
webauthn-error-user-not-found=Unknown user authenticated by the Passkey.
|
||||
passkey-login-title=Passkey login
|
||||
passkey-available-authenticators=Available Passkeys
|
||||
passkey-unsupported-browser-text=Passkey is not supported by this browser. Try another one or contact your administrator.
|
||||
passkey-doAuthenticate=Sign in with Passkey
|
||||
passkey-createdAt-label=Created
|
||||
passkey-autofill-select=Select your passkey
|
||||
identity-provider-redirector=Connect with another Identity Provider
|
||||
identity-provider-login-label=Or sign in with
|
||||
idp-email-verification-display-name=Email Verification
|
||||
idp-email-verification-help-text=Link your account by validating your email.
|
||||
idp-username-password-form-display-name=Username and password
|
||||
idp-username-password-form-help-text=Link your account by logging in.
|
||||
finalDeletionConfirmation=If you delete your account, it cannot be restored. To keep your account, click Cancel.
|
||||
irreversibleAction=This action is irreversible
|
||||
deleteAccountConfirm=Delete account confirmation
|
||||
deletingImplies=Deleting your account implies\:
|
||||
errasingData=Erasing all your data
|
||||
loggingOutImmediately=Logging you out immediately
|
||||
accountUnusable=Any subsequent use of the application will not be possible with this account
|
||||
userDeletedSuccessfully=User deleted successfully
|
||||
access-denied=Access denied
|
||||
access-denied-when-idp-auth=Access denied when authenticating with {0}
|
||||
frontchannel-logout.title=Logging out
|
||||
frontchannel-logout.message=You are logging out from following apps
|
||||
logoutConfirmTitle=Logging out
|
||||
logoutConfirmHeader=Do you want to log out?
|
||||
doLogout=Logout
|
||||
readOnlyUsernameMessage=You can''t update your username as it is read-only.
|
||||
error-invalid-multivalued-size=Attribute {0} must have at least {1} and at most {2} value(s).
|
||||
organization.confirm-membership.title=You are about to join organization ${kc.org.name}
|
||||
organization.confirm-membership=By clicking on the link below, you will become a member of the {0} organization\:
|
||||
organization.member.register.title=Create an account to join the ${kc.org.name} organization
|
||||
shouldBeEqual={0} should be equal to {1}
|
||||
shouldBeDifferent={0} should be different to {1}
|
||||
shouldMatchPattern=Pattern should match\: `/{0}/`
|
||||
mustBeAnInteger=Must be an integer
|
||||
notAValidOption=Not a valid option
|
||||
selectAnOption=Select an option
|
||||
remove=Remove
|
||||
addValue=Add value
|
||||
languages=Languages
|
@ -0,0 +1,450 @@
|
||||
|
||||
doLogIn=Iniciar sesi\u00f3n
|
||||
doRegister=Reg\u00edstrate
|
||||
doRegisterSecurityKey=Reg\u00edstrate
|
||||
doCancel=Cancelar
|
||||
doSubmit=Enviar
|
||||
doYes=S\u00ed
|
||||
doNo=No
|
||||
doContinue=Continuar
|
||||
doAccept=Aceptar
|
||||
doDecline=Declinar
|
||||
doForgotPassword=\u00bfHas olvidado tu contrase\u00f1a?
|
||||
doClickHere=Haz clic aqu\u00ed
|
||||
doImpersonate=Personificar
|
||||
kerberosNotConfigured=Kerberos no configurado
|
||||
kerberosNotConfiguredTitle=Kerberos no configurado
|
||||
bypassKerberosDetail=O bien no est\u00e1s identificado mediante Kerberos o tu navegador no est\u00e1 configurado para identificarse mediante Kerberos. Por favor haz clic para identificarte por otro medio.
|
||||
kerberosNotSetUp=Kerberos no est\u00e1 configurado. No puedes identificarte.
|
||||
registerWithTitle=Reg\u00edstrate con {0}
|
||||
registerWithTitleHtml={0}
|
||||
loginAccountTitle=Acceder a tu cuenta
|
||||
loginTitle=Inicia sesi\u00f3n en {0}
|
||||
loginTitleHtml={0}
|
||||
impersonateTitle={0}\u00a0Personificar Usuario
|
||||
impersonateTitleHtml=<strong>{0}</strong> Personificar Usuario
|
||||
realmChoice=Dominio
|
||||
unknownUser=Usuario desconocido
|
||||
loginTotpTitle=Configura tu aplicaci\u00f3n de identificaci\u00f3n m\u00f3vil
|
||||
loginProfileTitle=Actualiza la informaci\u00f3n de tu cuenta
|
||||
loginTimeout=Has tardado demasiado en identificarte. Inicia de nuevo la identificaci\u00f3n.
|
||||
oauthGrantTitle=Concesi\u00f3n OAuth
|
||||
oauthGrantTitleHtml={0}
|
||||
errorTitle=Lo sentimos...
|
||||
errorTitleHtml=Lo <strong>sentimos</strong>...
|
||||
emailVerifyTitle=Verificaci\u00f3n del email
|
||||
emailForgotTitle=\u00bfHas olvidado tu contrase\u00f1a?
|
||||
updatePasswordTitle=Modificaci\u00f3n de contrase\u00f1a
|
||||
codeSuccessTitle=C\u00f3digo de \u00e9xito
|
||||
codeErrorTitle=C\u00f3digo de error\: {0}
|
||||
termsTitle=T\u00e9rminos y Condiciones
|
||||
termsTitleHtml=T\u00e9rminos y Condiciones
|
||||
termsText=
|
||||
recaptchaFailed=Reconocimiento de texto inv\u00e1lido
|
||||
recaptchaNotConfigured=El reconocimiento de texto es obligatorio pero no est\u00e1 configurado
|
||||
consentDenied=Consentimiento rechazado.
|
||||
noAccount=\u00bfUsuario nuevo?
|
||||
username=Usuario
|
||||
usernameOrEmail=Usuario o email
|
||||
firstName=Nombre
|
||||
givenName=Nombre de pila
|
||||
fullName=Nombre completo
|
||||
lastName=Apellidos
|
||||
familyName=Apellidos
|
||||
email=Email
|
||||
password=Contrase\u00f1a
|
||||
passwordConfirm=Confirma la contrase\u00f1a
|
||||
passwordNew=Nueva contrase\u00f1a
|
||||
passwordNewConfirm=Confirma la nueva contrase\u00f1a
|
||||
rememberMe=Seguir conectado
|
||||
authenticatorCode=C\u00f3digo de identificaci\u00f3n
|
||||
address=Direcci\u00f3n
|
||||
street=Calle
|
||||
locality=Ciudad o Municipio
|
||||
region=Estado, Provincia, o Regi\u00f3n
|
||||
postal_code=C\u00f3digo Postal
|
||||
country=Pa\u00eds
|
||||
emailVerified=Email verificado
|
||||
gssDelegationCredential=GSS Delegation Credential
|
||||
loginTotpIntro=Es necesario configurar un generador de claves de un s\u00f3lo uso para acceder a esta cuenta
|
||||
loginTotpStep1=Instala <a href\="https\://freeotp.github.io/" target\="_blank">FreeOTP</a> o Google Authenticator en tu tel\u00e9fono m\u00f3vil. Ambas aplicaciones est\u00e1n disponibles en <a href\="https\://play.google.com">Google Play</a> y en la App Store de Apple.
|
||||
loginTotpStep2=Abre la aplicaci\u00f3n y escanea el c\u00f3digo o introduce la clave.
|
||||
loginTotpStep3=Introduce el c\u00f3digo \u00fanico que te muestra la aplicaci\u00f3n de autenticaci\u00f3n y haz clic en Enviar para finalizar la configuraci\u00f3n
|
||||
loginTotpStep3DeviceName=Introduce un nombre de dispositivo para que te ayude a gestionar tus dispositivos OTP.
|
||||
loginTotpManualStep2=Abre la aplicaci\u00f3n e introduce la clave\:
|
||||
loginTotpManualStep3=Usa los siguientes par\u00e1metros de configuraci\u00f3n si la aplicaci\u00f3n te permite introducirlos\:
|
||||
loginTotpUnableToScan=\u00bfNo consigues escanear?
|
||||
loginTotpScanBarcode=\u00bfEscanear el c\u00f3digo de barras?
|
||||
loginCredential=Credenciales
|
||||
loginOtpOneTime=C\u00f3digo de un solo uso
|
||||
loginTotpType=Tipo
|
||||
loginTotpAlgorithm=Algoritmo
|
||||
loginTotpDigits=D\u00edgitos
|
||||
loginTotpInterval=Intervalo
|
||||
loginTotpCounter=Contador
|
||||
loginTotpDeviceName=Nombre del dispositivo
|
||||
oauthGrantRequest=\u00bfQuieres permitir estos privilegios de acceso?
|
||||
inResource=en
|
||||
emailVerifyInstruction1=Te hemos enviado un email con instrucciones para verificar tu email.
|
||||
emailVerifyInstruction2=\u00bfNo has recibido un c\u00f3digo de verificaci\u00f3n en tu email?
|
||||
emailVerifyInstruction3=para reenviar el email.
|
||||
backToLogin=« Volver a la identificaci\u00f3n
|
||||
emailInstruction=Indica tu usuario o email y te enviaremos instrucciones indicando c\u00f3mo generar una nueva contrase\u00f1a.
|
||||
copyCodeInstruction=Por favor, copia y pega este c\u00f3digo en tu aplicaci\u00f3n\:
|
||||
personalInfo=Informaci\u00f3n personal\:
|
||||
role_admin=Admin
|
||||
role_realm-admin=Administrador del dominio
|
||||
role_create-realm=Crear dominio
|
||||
role_create-client=Crear cliente
|
||||
role_view-realm=Ver dominio
|
||||
role_view-users=Ver usuarios
|
||||
role_view-applications=Ver aplicaciones
|
||||
role_view-clients=Ver clientes
|
||||
role_view-events=Ver eventos
|
||||
role_view-identity-providers=Ver proveedores de identidad
|
||||
role_manage-realm=Gestionar dominio
|
||||
role_manage-users=Gestionar usuarios
|
||||
role_manage-applications=Gestionar aplicaciones
|
||||
role_manage-identity-providers=Gestionar proveedores de identidad
|
||||
role_manage-clients=Gestionar clientes
|
||||
role_manage-events=Gestionar eventos
|
||||
role_view-profile=Ver perfil
|
||||
role_manage-account=Gestionar cuenta
|
||||
role_read-token=Leer token
|
||||
role_offline-access=Acceso sin conexi\u00f3n
|
||||
client_account=Cuenta
|
||||
client_security-admin-console=Consola de Administraci\u00f3n de Seguridad
|
||||
client_realm-management=Gesti\u00f3n del dominio
|
||||
client_broker=Broker
|
||||
invalidUserMessage=Usuario o contrase\u00f1a incorrectos.
|
||||
invalidEmailMessage=Email no v\u00e1lido
|
||||
accountDisabledMessage=La cuenta est\u00e1 desactivada, contacta con el administrador.
|
||||
accountTemporarilyDisabledMessage=La cuenta est\u00e1 temporalmente desactivada, contacta con el administrador o int\u00e9ntalo de nuevo m\u00e1s tarde.
|
||||
expiredCodeMessage=Se agot\u00f3 el tiempo m\u00e1ximo para la identificaci\u00f3n. Por favor identificate de nuevo.
|
||||
expiredActionMessage=Acci\u00f3n caducada. Contin\u00fae con el inicio de sesi\u00f3n ahora.
|
||||
sessionLimitExceeded=Hay demasiadas sesiones.
|
||||
missingFirstNameMessage=Por favor indica tu nombre.
|
||||
missingLastNameMessage=Por favor indica tus apellidos.
|
||||
missingEmailMessage=Por favor indica tu email.
|
||||
missingUsernameMessage=Por favor indica tu usuario.
|
||||
missingPasswordMessage=Por favor indica tu contrase\u00f1a.
|
||||
missingTotpMessage=Por favor indica tu c\u00f3digo de autenticaci\u00f3n
|
||||
notMatchPasswordMessage=Las contrase\u00f1as no coinciden.
|
||||
invalidPasswordExistingMessage=La contrase\u00f1a actual no es correcta.
|
||||
invalidPasswordBlacklistedMessage=Contrase\u00f1a no v\u00e1lida\: la contrase\u00f1a est\u00e1 en la lista negra.
|
||||
invalidPasswordConfirmMessage=La confirmaci\u00f3n de contrase\u00f1a no coincide.
|
||||
invalidTotpMessage=El c\u00f3digo de autenticaci\u00f3n no es v\u00e1lido.
|
||||
usernameExistsMessage=El nombre de usuario ya existe
|
||||
emailExistsMessage=El email ya existe
|
||||
federatedIdentityEmailExistsMessage=Ya existe un usuario con este email. Por favor accede a la gesti\u00f3n de tu cuenta para enlazarlo.
|
||||
federatedIdentityUsernameExistsMessage=Ya existe un usuario con este nombre de usuario. Por favor accede a la gesti\u00f3n de tu cuenta para enlazarlo.
|
||||
federatedIdentityExistsMessage=El usuario con {0} {1} ya existe. Inicie sesi\u00f3n en la administraci\u00f3n de cuentas para vincular la cuenta.
|
||||
federatedIdentityUnavailableMessage=El usuario {0} autenticado con el proveedor de identidad {1} no existe. P\u00f3ngase en contacto con su administrador.
|
||||
configureTotpMessage=Tienes que configurar la aplicaci\u00f3n m\u00f3vil de identificaci\u00f3n para activar tu cuenta.
|
||||
configureBackupCodesMessage=Tienes que configurar c\u00f3digos de respaldo para activar su cuenta.
|
||||
updateProfileMessage=Tienes que actualizar tu perfil de usuario para activar tu cuenta.
|
||||
updatePasswordMessage=Tienes que cambiar tu contrase\u00f1a para activar tu cuenta.
|
||||
updateEmailMessage=Tienes que actualizar su direcci\u00f3n de correo electr\u00f3nico para activar su cuenta.
|
||||
resetPasswordMessage=Tienes que cambiar tu contrase\u00f1a.
|
||||
verifyEmailMessage=Tienes que verificar tu email para activar tu cuenta.
|
||||
linkIdpMessage=Debe verificar su direcci\u00f3n de correo electr\u00f3nico para vincular su cuenta con {0}.
|
||||
emailSentMessage=En breve deber\u00edas recibir un mensaje con m\u00e1s instrucciones
|
||||
emailSendErrorMessage=Fall\u00f3 el env\u00edo del email, por favor int\u00e9ntalo de nuevo m\u00e1s tarde.
|
||||
accountUpdatedMessage=Tu cuenta se ha actualizado.
|
||||
accountPasswordUpdatedMessage=Tu contrase\u00f1a se ha actualizado.
|
||||
noAccessMessage=Sin acceso
|
||||
invalidPasswordMinLengthMessage=Contrase\u00f1a incorrecta\: longitud m\u00ednima {0}.
|
||||
invalidPasswordMinDigitsMessage=Contrase\u00f1a incorrecta\: debe contaner al menos {0} caracteres num\u00e9ricos.
|
||||
invalidPasswordMinLowerCaseCharsMessage=Contrase\u00f1a incorrecta\: debe contener al menos {0} letras min\u00fasculas.
|
||||
invalidPasswordMinUpperCaseCharsMessage=Contrase\u00f1a incorrecta\: debe contener al menos {0} letras may\u00fasculas.
|
||||
invalidPasswordMinSpecialCharsMessage=Contrase\u00f1a incorrecta\: debe contener al menos {0} caracteres especiales.
|
||||
invalidPasswordNotUsernameMessage=Contrase\u00f1a incorrecta\: no puede ser igual al nombre de usuario.
|
||||
invalidPasswordRegexPatternMessage=Contrase\u00f1a incorrecta\: no cumple la expresi\u00f3n regular.
|
||||
invalidPasswordHistoryMessage=Contrase\u00f1a incorrecta\: no puede ser igual a ninguna de las \u00faltimas {0} contrase\u00f1as.
|
||||
failedToProcessResponseMessage=Fallo al procesar la respuesta
|
||||
httpsRequiredMessage=HTTPS obligatorio
|
||||
realmNotEnabledMessage=El dominio no est\u00e1 activado
|
||||
invalidRequestMessage=Petici\u00f3n incorrecta
|
||||
failedLogout=Fall\u00f3 la desconexi\u00f3n.
|
||||
unknownLoginRequesterMessage=Solicitante de identificaci\u00f3n desconocido
|
||||
loginRequesterNotEnabledMessage=El solicitante de inicio de sesi\u00f3n est\u00e1 desactivado
|
||||
bearerOnlyMessage=Las aplicaciones Bearer-only no pueden iniciar sesi\u00f3n desde el navegador.
|
||||
directGrantsOnlyMessage=Los clientes de tipo Direct-grants-only no pueden iniciar sesi\u00f3n desde el navegador.
|
||||
invalidRedirectUriMessage=La URI de redirecci\u00f3n no es correcta
|
||||
unsupportedNameIdFormatMessage=NameIDFormat no soportado
|
||||
invalidRequesterMessage=Solicitante no v\u00e1lido
|
||||
registrationNotAllowedMessage=El registro no est\u00e1 permitido
|
||||
resetCredentialNotAllowedMessage=El reinicio de las credenciales no est\u00e1 permitido
|
||||
permissionNotApprovedMessage=Permiso no aprobado.
|
||||
noRelayStateInResponseMessage=Sin estado de retransmisi\u00f3n en la respuesta del proveedor de identidad.
|
||||
identityProviderAlreadyLinkedMessage=La identidad devuelta por el proveedor de identidad ya est\u00e1 asociada a otro usuario.
|
||||
insufficientPermissionMessage=Permisos insuficientes para enlazar identidades.
|
||||
couldNotProceedWithAuthenticationRequestMessage=No se pudo continuar con la petici\u00f3n de autenticaci\u00f3n al proveedor de identidad.
|
||||
couldNotObtainTokenMessage=.No se pudo obtener el c\u00f3digo del proveedor de identidad
|
||||
unexpectedErrorRetrievingTokenMessage=Error inesperado obteniendo el token del proveedor de identidad
|
||||
unexpectedErrorHandlingResponseMessage=Error inesperado procesando la respuesta del proveedor de identidad.
|
||||
identityProviderAuthenticationFailedMessage=Fall\u00f3 la autenticaci\u00f3n. No fue posible autenticarse en el proveedor de identidad.
|
||||
couldNotSendAuthenticationRequestMessage=No se pudo enviar la petici\u00f3n de identificaci\u00f3n al proveedor de identidad.
|
||||
unexpectedErrorHandlingRequestMessage=Error inesperado durante la petici\u00f3n de identificaci\u00f3n al proveedor de identidad.
|
||||
invalidAccessCodeMessage=C\u00f3digo de acceso no v\u00e1lido.
|
||||
sessionNotActiveMessage=La sesi\u00f3n no est\u00e1 activa
|
||||
invalidCodeMessage=Ha ocurrido un error, por favor identificate de nuevo desde tu aplicaci\u00f3n.
|
||||
identityProviderUnexpectedErrorMessage=Error no esperado intentado autenticar en el proveedor de identidad.
|
||||
identityProviderNotFoundMessage=No se encontr\u00f3 un proveedor de identidad.
|
||||
realmSupportsNoCredentialsMessage=El dominio no soporta ning\u00fan tipo de credenciales.
|
||||
identityProviderNotUniqueMessage=El dominio soporta m\u00faltiples proveedores de identidad. No se pudo determinar el proveedor de identidad que deber\u00eda ser utilizado para identificarse.
|
||||
emailVerifiedMessage=Tu email ha sido verificado.
|
||||
staleEmailVerificationLink=El enlace en el que hizo clic es un enlace obsoleto antiguo y ya no es v\u00e1lido. Tal vez ya hayas verificado tu correo electr\u00f3nico.
|
||||
identityProviderInvalidResponseMessage=Respuesta no v\u00e1lida del proveedor de identidad.
|
||||
confirmAccountLinking=Confirme la vinculaci\u00f3n de la cuenta {0} del proveedor de identidad {1} con su cuenta.
|
||||
identityProviderMissingStateMessage=Falta el par\u00e1metro de estado en respuesta del proveedor de identidad.
|
||||
confirmEmailAddressVerification=Confirme la validez de la direcci\u00f3n de correo electr\u00f3nico {0}.
|
||||
confirmExecutionOfActions=Realice las siguientes acciones
|
||||
backToApplication=« Volver a la aplicaci\u00f3n
|
||||
missingParameterMessage=Par\u00e1metros que faltan\: {0}
|
||||
clientNotFoundMessage=Cliente no encontrado
|
||||
invalidParameterMessage=Par\u00e1metro no v\u00e1lido\: {0}
|
||||
alreadyLoggedIn=Ya se ha autentificado.
|
||||
proceedWithAction=\u00bb Haz click aqu\u00ed para proceder
|
||||
requiredAction.CONFIGURE_TOTP=Configurar OTP
|
||||
requiredAction.TERMS_AND_CONDITIONS=T\u00e9rminos y condiciones
|
||||
requiredAction.UPDATE_PASSWORD=Actualizaci\u00f3n de contrase\u00f1a
|
||||
requiredAction.UPDATE_PROFILE=Actualizaci\u00f3n del perfil
|
||||
requiredAction.VERIFY_EMAIL=Verificar correo electr\u00f3nico
|
||||
requiredAction.CONFIGURE_RECOVERY_AUTHN_CODES=Generar c\u00f3digos de recuperaci\u00f3n
|
||||
requiredAction.webauthn-register-passwordless=Webauthn Registro sin contrase\u00f1a
|
||||
pageNotFound=P\u00e1gina no encontrada
|
||||
internalServerError=Se ha producido un error interno del servidor.
|
||||
identity-provider-redirector=Inicie sesi\u00f3n con otro proveedor de identidad
|
||||
identity-provider-login-label=O inicie sesi\u00f3n con
|
||||
idp-email-verification-display-name=Verificacion de email
|
||||
idp-email-verification-help-text=Vincule su cuenta validando su correo electr\u00f3nico.
|
||||
idp-username-password-form-display-name=Usuario y contrase\u00f1a
|
||||
idp-username-password-form-help-text=Vincule su cuenta iniciando sesi\u00f3n.
|
||||
access-denied=Acceso denegado
|
||||
logoutConfirmTitle=Cerrando sesi\u00f3n
|
||||
logoutConfirmHeader=\u00bfQuieres cerrar sesi\u00f3n?
|
||||
doLogout=Cerrar sesi\u00f3n
|
||||
doBack=Atr\u00e1s
|
||||
doIgnore=Ignorar
|
||||
doTryAgain=Intentar otra vez
|
||||
doTryAnotherWay=Prueba de otra manera
|
||||
doConfirmDelete=Confirmar la eliminaci\u00f3n
|
||||
errorDeletingAccount=Ocurri\u00f3 un error al intentar eliminar la cuenta
|
||||
deletingAccountForbidden=No tiene suficientes permisos para eliminar su propia cuenta, comun\u00edquese con un administrador.
|
||||
registerTitle=Registro
|
||||
loginIdpReviewProfileTitle=Actualizar informaci\u00f3n de la cuenta
|
||||
reauthenticate=Vuelva a autenticar para continuar
|
||||
oauthGrantInformation=Aseg\u00farese de que conf\u00eda en {0} aprendiendo c\u00f3mo {0} manejar\u00e1 sus datos.
|
||||
oauthGrantReview=Podr\u00edas revisar el
|
||||
oauthGrantTos=t\u00e9rminos de servicio.
|
||||
oauthGrantPolicy=pol\u00edtica de privacidad.
|
||||
updateEmailTitle=Actualizar correo electr\u00f3nico
|
||||
emailUpdateConfirmationSentTitle=Correo de confirmaci\u00f3n enviado
|
||||
emailUpdateConfirmationSent=Se ha enviado un correo electr\u00f3nico de confirmaci\u00f3n a {0}. Debe seguir las instrucciones de este para completar la actualizaci\u00f3n del correo electr\u00f3nico.
|
||||
emailUpdatedTitle=Correo electr\u00f3nico actualizado
|
||||
emailUpdated=El correo electr\u00f3nico de la cuenta se ha actualizado correctamente a {0}.
|
||||
displayUnsupported=Tipo de visualizaci\u00f3n solicitado no soportado
|
||||
browserRequired=El navegador requerido para iniciar sesi\u00f3n
|
||||
browserContinue=El navegador requerido para completar el inicio de sesi\u00f3n
|
||||
browserContinuePrompt=\u00bfAbrir el navegador y continuar iniciando sesi\u00f3n?[y/n]\:
|
||||
browserContinueAnswer=Y
|
||||
usb=usb
|
||||
nfc=nfc
|
||||
bluetooth=bluetooth
|
||||
internal=Interna
|
||||
unknown=Desconocida
|
||||
termsPlainText=T\u00e9rminos y condiciones a definir.
|
||||
termsAcceptanceRequired=Debe aceptar nuestros t\u00e9rminos y condiciones.
|
||||
acceptTerms=Estoy de acuerdo con los t\u00e9rminos y condiciones
|
||||
hidePassword=Ocultar contrase\u00f1a
|
||||
showPassword=Mostrar contrase\u00f1a
|
||||
website=P\u00e1gina web
|
||||
phoneNumber=N\u00famero de tel\u00e9fono
|
||||
phoneNumberVerified=N\u00famero de tel\u00e9fono verificado
|
||||
gender=G\u00e9nero
|
||||
birthday=Fecha de nacimiento
|
||||
zoneinfo=Zona horaria
|
||||
logoutOtherSessions=Cerrar sesi\u00f3n en otros dispositivos
|
||||
profileScopeConsentText=Perfil del usuario
|
||||
emailScopeConsentText=Direcci\u00f3n de correo electr\u00f3nico
|
||||
addressScopeConsentText=Direcci\u00f3n
|
||||
phoneScopeConsentText=N\u00famero de tel\u00e9fono
|
||||
offlineAccessScopeConsentText=Acceso fuera de l\u00ednea
|
||||
samlRoleListScopeConsentText=Mis roles
|
||||
rolesScopeConsentText=Roles del usuario
|
||||
restartLoginTooltip=Reiniciar el inicio de sesi\u00f3n
|
||||
loginTotp.totp=Basado en el tiempo
|
||||
loginTotp.hotp=Basado en contador
|
||||
totpAppFreeOTPName=FreeOtp
|
||||
totpAppGoogleName=Autenticador de Google
|
||||
totpAppMicrosoftAuthenticatorName=Autenticador de Microsoft
|
||||
loginChooseAuthenticator=Seleccione el m\u00e9todo de inicio de sesi\u00f3n
|
||||
oauth2DeviceVerificationTitle=Inicio de sesi\u00f3n del dispositivo
|
||||
verifyOAuth2DeviceUserCode=Ingrese el c\u00f3digo proporcionado por su dispositivo y haga clic en Enviar
|
||||
oauth2DeviceInvalidUserCodeMessage=C\u00f3digo no v\u00e1lido, por favor vuelva a intentarlo.
|
||||
oauth2DeviceExpiredUserCodeMessage=El c\u00f3digo ha expirado. Vuelva a su dispositivo e intente conectarse nuevamente.
|
||||
oauth2DeviceVerificationCompleteHeader=Inicio de sesi\u00f3n del dispositivo exitoso
|
||||
oauth2DeviceVerificationCompleteMessage=Puede cerrar esta ventana del navegador y volver a su dispositivo.
|
||||
oauth2DeviceVerificationFailedHeader=Fall\u00f3 el inicio de sesi\u00f3n del dispositivo
|
||||
oauth2DeviceVerificationFailedMessage=Puede cerrar esta ventana del navegador y volver a su dispositivo e intentar conectarse nuevamente.
|
||||
oauth2DeviceConsentDeniedMessage=Consentimiento denegado por conectar el dispositivo.
|
||||
oauth2DeviceAuthorizationGrantDisabledMessage=El cliente no puede iniciar la petici\u00f3n de autorizaci\u00f3n del dispositivo OAuth 2.0. El flujo est\u00e1 deshabilitado para el cliente.
|
||||
emailLinkIdpTitle=Enlace {0}
|
||||
emailLinkIdp1=Se le ha enviado un correo electr\u00f3nico con instrucciones para vincular {0} cuenta {1} con su cuenta {2}.
|
||||
emailLinkIdp2=\u00bfNo ha recibido un c\u00f3digo de verificaci\u00f3n en su correo electr\u00f3nico?
|
||||
emailLinkIdp3=Para volver a enviar el correo electr\u00f3nico.
|
||||
emailLinkIdp4=Si ya verific\u00f3 el correo electr\u00f3nico en diferentes navegadores
|
||||
emailLinkIdp5=continuar.
|
||||
emailInstructionUsername=Ingrese su nombre de usuario y le enviaremos instrucciones sobre c\u00f3mo crear una nueva contrase\u00f1a.
|
||||
pageExpiredTitle=La p\u00e1gina ha expirado
|
||||
pageExpiredMsg1=Para reiniciar el proceso de inicio de sesi\u00f3n
|
||||
pageExpiredMsg2=Para continuar el proceso de inicio de sesi\u00f3n
|
||||
role_manage-account-links=Administrar enlaces de cuenta
|
||||
client_account-console=Consola de cuentas
|
||||
client_admin-cli=Administrador cli
|
||||
requiredFields=Campos requeridos
|
||||
invalidUsernameMessage=Nombre de usuario no v\u00e1lido.
|
||||
invalidUsernameOrEmailMessage=Nombre de usuario o correo electr\u00f3nico no v\u00e1lidos.
|
||||
invalidPasswordMessage=Contrase\u00f1a inv\u00e1lida.
|
||||
expiredActionTokenNoSessionMessage=Acci\u00f3n expirada.
|
||||
expiredActionTokenSessionExistsMessage=Acci\u00f3n expirada. Comience de nuevo.
|
||||
missingTotpDeviceNameMessage=Especifique el nombre del dispositivo.
|
||||
error-invalid-value=Valor no v\u00e1lido.
|
||||
error-invalid-blank=Especifique el valor.
|
||||
error-empty=Especifique el valor.
|
||||
error-invalid-length=La longitud debe estar entre {1} y {2}.
|
||||
error-invalid-length-too-short=La longitud m\u00ednima es {1}.
|
||||
error-invalid-length-too-long=La longitud m\u00e1xima es {2}.
|
||||
error-invalid-email=Direcci\u00f3n de correo electr\u00f3nico no v\u00e1lida.
|
||||
error-invalid-number=N\u00famero invalido.
|
||||
error-number-out-of-range=El n\u00famero debe estar entre {1} y {2}.
|
||||
error-number-out-of-range-too-small=El n\u00famero debe tener un valor m\u00ednimo de {1}.
|
||||
error-number-out-of-range-too-big=El n\u00famero debe tener un valor m\u00e1ximo de {2}.
|
||||
error-pattern-no-match=Valor no v\u00e1lido.
|
||||
error-invalid-uri=URL invalida.
|
||||
error-invalid-uri-scheme=Esquema de URL no v\u00e1lido.
|
||||
error-invalid-uri-fragment=Fragmento de URL no v\u00e1lido.
|
||||
error-user-attribute-required=Especifique este campo.
|
||||
error-invalid-date=Fecha inv\u00e1lida.
|
||||
error-user-attribute-read-only=Este campo es de solo lectura.
|
||||
error-username-invalid-character=El valor contiene car\u00e1cter inv\u00e1lido.
|
||||
error-person-name-invalid-character=El valor contiene car\u00e1cter inv\u00e1lido.
|
||||
error-reset-otp-missing-id=Elija una configuraci\u00f3n OTP.
|
||||
federatedIdentityUnmatchedEssentialClaimMessage=El token de identificaci\u00f3n emitido por el proveedor de identidad no coincide con el reclamo esencial configurado. P\u00f3ngase en contacto con su administrador.
|
||||
confirmLinkIdpTitle=La cuenta ya existe
|
||||
federatedIdentityConfirmLinkMessage=El usuario con {0} {1} ya existe.\u00bfC\u00f3mo quieres continuar?
|
||||
federatedIdentityConfirmReauthenticateMessage=Autenticar para vincular su cuenta con {0}
|
||||
nestedFirstBrokerFlowMessage=El usuario {0} {1} no est\u00e1 vinculado a ning\u00fan usuario conocido.
|
||||
confirmLinkIdpReviewProfile=Perfil de revisi\u00f3n
|
||||
confirmLinkIdpContinue=Agregar a la cuenta existente
|
||||
delegationCompleteHeader=Inicio de sesi\u00f3n correcto
|
||||
delegationCompleteMessage=Puede cerrar esta ventana del navegador y volver a la aplicaci\u00f3n de su consola.
|
||||
delegationFailedHeader=Error de inicio de sesi\u00f3n
|
||||
delegationFailedMessage=Puede cerrar esta ventana del navegador y volver a la aplicaci\u00f3n de su consola e intentar iniciar sesi\u00f3n nuevamente.
|
||||
invalidPasswordMaxLengthMessage=Contrase\u00f1a no v\u00e1lida\: longitud m\u00e1xima {0}.
|
||||
invalidPasswordNotEmailMessage=Contrase\u00f1a no v\u00e1lida\: no debe ser igual al correo electr\u00f3nico.
|
||||
invalidPasswordGenericMessage=Contrase\u00f1a no v\u00e1lida\: la nueva contrase\u00f1a no coincide con las pol\u00edticas de contrase\u00f1a.
|
||||
successLogout=Est\u00e1 desconectado
|
||||
standardFlowDisabledMessage=El cliente no puede iniciar el inicio de sesi\u00f3n del navegador con el tipo de respuesta dado. El flujo est\u00e1ndar est\u00e1 deshabilitado para el cliente.
|
||||
implicitFlowDisabledMessage=El cliente no puede iniciar el inicio de sesi\u00f3n del navegador con el tipo de respuesta dado. El flujo impl\u00edcito est\u00e1 deshabilitado para el cliente.
|
||||
cookieNotFoundMessage=Cookie no encontrada. Aseg\u00farese de que las cookies est\u00e9n habilitadas en su navegador.
|
||||
insufficientLevelOfAuthentication=El nivel de autenticaci\u00f3n solicitado no se ha cumplido.
|
||||
identityProviderMissingCodeOrErrorMessage=C\u00f3digo faltante o par\u00e1metro de error en respuesta del proveedor de identidad.
|
||||
identityProviderInvalidSignatureMessage=Firma no v\u00e1lida en respuesta del proveedor de identidad.
|
||||
identityProviderLinkSuccess=Verific\u00f3 con \u00e9xito su correo electr\u00f3nico. Vuelva a su navegador original y contin\u00fae all\u00ed con el inicio de sesi\u00f3n.
|
||||
staleCodeMessage=Esta p\u00e1gina ya no es v\u00e1lida, vuelva a su solicitud e inicie sesi\u00f3n nuevamente.
|
||||
credentialSetupRequired=No se puede iniciar sesi\u00f3n, se requiere configuraci\u00f3n de credencial.
|
||||
clientDisabledMessage=Cliente deshabilitado.
|
||||
differentUserAuthenticated=Ya est\u00e1 autenticado como un usuario diferente ''{0}'' en esta sesi\u00f3n. Por favor cierre sesi\u00f3n primero.
|
||||
brokerLinkingSessionExpired=Vinculaci\u00f3n de la cuenta del corredor solicitada, pero la sesi\u00f3n actual ya no es v\u00e1lida.
|
||||
acrNotFulfilled=Requisitos de autenticaci\u00f3n no cumplidos
|
||||
invalidTokenRequiredActions=Las acciones requeridas incluidas en el enlace no son v\u00e1lidas
|
||||
doX509Login=Se registrar\u00e1 como\:
|
||||
clientCertificate=Certificado de cliente X509\:
|
||||
noCertificate=[Sin certificado]
|
||||
console-username=Nombre de usuario\:
|
||||
console-password=Contrase\u00f1a\:
|
||||
console-otp=Contrase\u00f1a de una sola vez\:
|
||||
console-new-password=Nueva contrase\u00f1a\:
|
||||
console-confirm-password=Confirmar Contrase\u00f1a\:
|
||||
console-update-password=Se requiere la actualizaci\u00f3n de su contrase\u00f1a.
|
||||
console-verify-email=Debe verificar su direcci\u00f3n de correo electr\u00f3nico. Enviamos un correo electr\u00f3nico a {0} que contiene un c\u00f3digo de verificaci\u00f3n. Ingrese este c\u00f3digo en la entrada a continuaci\u00f3n.
|
||||
console-email-code=C\u00f3digo de correo electr\u00f3nico\:
|
||||
console-accept-terms=\u00bfAceptar los terminos?[y/n]\:
|
||||
console-accept=Y
|
||||
openshift.scope.user_info=Informacion del usuario
|
||||
openshift.scope.user_check-access=Informaci\u00f3n de acceso de usuario
|
||||
openshift.scope.user_full=Acceso completo
|
||||
openshift.scope.list-projects=Listar proyectos
|
||||
saml.post-form.title=Redirecci\u00f3n de autenticaci\u00f3n
|
||||
saml.post-form.message=Redireccionando, por favor espere.
|
||||
saml.post-form.js-disabled=JavaScript est\u00e1 deshabilitado. Recomendamos encarecidamente habilitarlo. Haga clic en el bot\u00f3n de abajo para continuar.
|
||||
saml.artifactResolutionServiceInvalidResponse=Incapaz de resolver artefactos.
|
||||
otp-display-name=Aplicaci\u00f3n de autenticador
|
||||
otp-help-text=Ingrese un c\u00f3digo de verificaci\u00f3n de la aplicaci\u00f3n Authenticator.
|
||||
otp-reset-description=\u00bfQu\u00e9 configuraci\u00f3n de OTP debe eliminarse?
|
||||
password-display-name=Contrase\u00f1a
|
||||
password-help-text=Inicie sesi\u00f3n ingresando su contrase\u00f1a.
|
||||
auth-username-form-display-name=Nombre de usuario
|
||||
auth-username-form-help-text=Comience el inicio de sesi\u00f3n ingresando su nombre de usuario
|
||||
auth-username-password-form-display-name=Nombre de usuario y contrase\u00f1a
|
||||
auth-username-password-form-help-text=Inicie sesi\u00f3n ingresando su nombre de usuario y contrase\u00f1a.
|
||||
auth-recovery-authn-code-form-display-name=C\u00f3digo de autenticaci\u00f3n de recuperaci\u00f3n
|
||||
auth-recovery-authn-code-form-help-text=Ingrese un c\u00f3digo de autenticaci\u00f3n de recuperaci\u00f3n desde una lista generada anteriormente.
|
||||
auth-recovery-code-info-message=Ingrese el c\u00f3digo de recuperaci\u00f3n especificado.
|
||||
auth-recovery-code-prompt=C\u00f3digo de recuperaci\u00f3n \#{0}
|
||||
auth-recovery-code-header=Iniciar sesi\u00f3n con un c\u00f3digo de autenticaci\u00f3n de recuperaci\u00f3n
|
||||
recovery-codes-error-invalid=C\u00f3digo de autenticaci\u00f3n de recuperaci\u00f3n no v\u00e1lida
|
||||
recovery-code-config-header=C\u00f3digos de autenticaci\u00f3n de recuperaci\u00f3n
|
||||
recovery-code-config-warning-title=Estos c\u00f3digos de recuperaci\u00f3n no aparecer\u00e1n nuevamente despu\u00e9s de dejar esta p\u00e1gina.
|
||||
recovery-code-config-warning-message=Aseg\u00farese de imprimir, descargarlos o copiarlos a un administrador de contrase\u00f1as y mantenerlos seguros. Cancelar esta configuraci\u00f3n eliminar\u00e1 estos c\u00f3digos de recuperaci\u00f3n de su cuenta.
|
||||
recovery-codes-print=Imprimir
|
||||
recovery-codes-download=Descargar
|
||||
recovery-codes-copy=Copiar
|
||||
recovery-codes-copied=Copiada
|
||||
recovery-codes-confirmation-message=He guardado estos c\u00f3digos en alg\u00fan lugar seguro
|
||||
recovery-codes-action-complete=Configuraci\u00f3n completa
|
||||
recovery-codes-action-cancel=Cancelar configuraci\u00f3n
|
||||
recovery-codes-download-file-header=Mantenga estos c\u00f3digos de recuperaci\u00f3n en alg\u00fan lugar seguros.
|
||||
recovery-codes-download-file-description=Los c\u00f3digos de recuperaci\u00f3n son c\u00f3digos de acceso de un solo uso que le permiten iniciar sesi\u00f3n en su cuenta si no tiene acceso a su autenticador.
|
||||
recovery-codes-download-file-date=Estos c\u00f3digos se generaron en
|
||||
recovery-codes-label-default=C\u00f3digos de recuperaci\u00f3n
|
||||
webauthn-display-name=Clave de seguridad
|
||||
webauthn-help-text=Use su clave de seguridad para iniciar sesi\u00f3n.
|
||||
webauthn-passwordless-display-name=Clave de seguridad
|
||||
webauthn-passwordless-help-text=Use su clave de seguridad para iniciar sesi\u00f3n sin contrase\u00f1a.
|
||||
webauthn-login-title=Inicio de sesi\u00f3n de la clave de seguridad
|
||||
webauthn-registration-title=Registro de clave de seguridad
|
||||
webauthn-available-authenticators=Claves de seguridad disponibles
|
||||
webauthn-unsupported-browser-text=WebAuthn no es compatible con este navegador. Pruebe con otro o comun\u00edquese con su administrador.
|
||||
webauthn-doAuthenticate=Iniciar sesi\u00f3n con la clave de seguridad
|
||||
webauthn-createdAt-label=Creada
|
||||
webauthn-error-title=Error de clave de seguridad
|
||||
webauthn-error-registration=No se pudo registrar su clave de seguridad. <br/> {0}
|
||||
webauthn-error-api-get=No se pudo autenticar por la clave de seguridad. <br/> {0}
|
||||
webauthn-error-different-user=El primer usuario autenticado no es el autenticado por la clave de seguridad.
|
||||
webauthn-error-auth-verification=El resultado de la autenticaci\u00f3n de la clave de seguridad no es v\u00e1lido. <br/> {0}
|
||||
webauthn-error-register-verification=El resultado de registro de clave de seguridad no es v\u00e1lido. <br/> {0}
|
||||
webauthn-error-user-not-found=Usuario desconocido autenticado por la clave de seguridad.
|
||||
finalDeletionConfirmation=Si elimina su cuenta, no se puede restaurar. Para mantener su cuenta, haga clic en Cancelar.
|
||||
irreversibleAction=Esta acci\u00f3n es irreversible
|
||||
deleteAccountConfirm=Eliminar la confirmaci\u00f3n de la cuenta
|
||||
deletingImplies=Eliminar su cuenta implica\:
|
||||
errasingData=Borrando todos sus datos
|
||||
loggingOutImmediately=Registr\u00e1ndole inmediatamente
|
||||
accountUnusable=Cualquier uso posterior de la aplicaci\u00f3n no ser\u00e1 posible con esta cuenta
|
||||
userDeletedSuccessfully=Usuario eliminado con \u00e9xito
|
||||
access-denied-when-idp-auth=Acceso negado al autenticar con {0}
|
||||
frontchannel-logout.title=Saliendo de tu cuenta
|
||||
frontchannel-logout.message=Est\u00e1s cerrando las siguientes aplicaciones
|
||||
readOnlyUsernameMessage=No puede actualizar su nombre de usuario, ya que es de solo lectura.
|
||||
shouldBeEqual={0} deber\u00eda ser igual a {1}
|
||||
shouldBeDifferent={0} deber\u00eda ser diferente a {1}
|
||||
shouldMatchPattern=El patr\u00f3n deber\u00eda coincidir\: `/{0}/`
|
||||
mustBeAnInteger=Debe ser un n\u00famero entero
|
||||
notAValidOption=No es una opci\u00f3n v\u00e1lida
|
||||
selectAnOption=Selecciona una opci\u00f3n
|
||||
remove=Eliminar
|
||||
addValue=A\u00f1adir valor
|
||||
languages=Idiomas
|
@ -0,0 +1,436 @@
|
||||
|
||||
doLogIn=\u0648\u0631\u0648\u062f
|
||||
doRegister=\u062b\u0628\u062a \u0646\u0627\u0645
|
||||
doRegisterSecurityKey=\u062b\u0628\u062a \u0646\u0627\u0645
|
||||
doCancel=\u0644\u063a\u0648
|
||||
doSubmit=\u0627\u0631\u0633\u0627\u0644
|
||||
doBack=\u0628\u0627\u0632\u06af\u0634\u062a
|
||||
doYes=\u0628\u0644\u0647
|
||||
doNo=\u062e\u06cc\u0631
|
||||
doContinue=\u0627\u062f\u0627\u0645\u0647
|
||||
doIgnore=\u0646\u0627\u062f\u06cc\u062f\u0647\u200c\u06af\u06cc\u0631\u06cc
|
||||
doAccept=\u067e\u0630\u06cc\u0631\u0641\u062a\u0646
|
||||
doDecline=\u0631\u062f \u06a9\u0631\u062f\u0646
|
||||
doForgotPassword=\u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u062e\u0648\u062f \u0631\u0627 \u0641\u0631\u0627\u0645\u0648\u0634 \u06a9\u0631\u062f\u0647\u200c\u0627\u06cc\u062f?
|
||||
doClickHere=\u0627\u06cc\u0646\u062c\u0627 \u0631\u0627 \u06a9\u0644\u06cc\u06a9 \u06a9\u0646\u06cc\u062f
|
||||
doImpersonate=\u062a\u0642\u0644\u06cc\u062f \u06a9\u0631\u062f\u0646
|
||||
doTryAgain=\u062a\u0644\u0627\u0634 \u0645\u062c\u062f\u062f
|
||||
doTryAnotherWay=\u0631\u0627\u0647 \u062f\u06cc\u06af\u0631\u06cc \u0631\u0627 \u0627\u0645\u062a\u062d\u0627\u0646 \u06a9\u0646\u06cc\u062f
|
||||
doConfirmDelete=\u062a\u0627\u06cc\u06cc\u062f \u062d\u0630\u0641
|
||||
errorDeletingAccount=\u062e\u0637\u0627\u06cc\u06cc \u0647\u0646\u06af\u0627\u0645 \u062d\u0630\u0641 \u062d\u0633\u0627\u0628 \u0631\u062e \u062f\u0627\u062f
|
||||
deletingAccountForbidden=\u0634\u0645\u0627 \u0645\u062c\u0648\u0632 \u06a9\u0627\u0641\u06cc \u0628\u0631\u0627\u06cc \u062d\u0630\u0641 \u062d\u0633\u0627\u0628 \u062e\u0648\u062f \u0631\u0627 \u0646\u062f\u0627\u0631\u06cc\u062f\u060c \u0628\u0627 \u0627\u062f\u0645\u06cc\u0646 \u062a\u0645\u0627\u0633 \u0628\u06af\u06cc\u0631\u06cc\u062f.
|
||||
kerberosNotConfigured=Kerberos \u062a\u0646\u0638\u06cc\u0645 \u0646\u0634\u062f\u0647 \u0627\u0633\u062a
|
||||
kerberosNotConfiguredTitle=Kerberos \u062a\u0646\u0638\u06cc\u0645 \u0646\u0634\u062f\u0647 \u0627\u0633\u062a
|
||||
bypassKerberosDetail=\u06cc\u0627 \u062a\u0648\u0633\u0637 Kerberos \u0648\u0627\u0631\u062f \u0646\u0634\u062f\u0647 \u0627\u06cc\u062f \u06cc\u0627 \u0645\u0631\u0648\u0631\u06af\u0631 \u0634\u0645\u0627 \u0628\u0631\u0627\u06cc \u0648\u0631\u0648\u062f \u0628\u0647 Kerberos \u062a\u0646\u0638\u06cc\u0645 \u0646\u0634\u062f\u0647 \u0627\u0633\u062a. \u0644\u0637\u0641\u0627 \u0631\u0648\u06cc \u0627\u062f\u0627\u0645\u0647 \u06a9\u0644\u06cc\u06a9 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0627\u0632 \u0631\u0627\u0647 \u0647\u0627\u06cc \u062f\u06cc\u06af\u0631 \u0648\u0627\u0631\u062f \u0634\u0648\u06cc\u062f
|
||||
kerberosNotSetUp=Kerberos \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u0646\u0634\u062f\u0647 \u0627\u0633\u062a. \u0634\u0645\u0627 \u0646\u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0648\u0627\u0631\u062f \u0634\u0648\u06cc\u062f.
|
||||
registerTitle=\u062b\u0628\u062a \u0646\u0627\u0645
|
||||
loginAccountTitle=\u0628\u0647 \u062d\u0633\u0627\u0628 \u062e\u0648\u062f \u0648\u0627\u0631\u062f \u0634\u0648\u06cc\u062f
|
||||
loginTitle=\u0628\u0647 {0} \u0648\u0627\u0631\u062f \u0634\u0648\u06cc\u062f
|
||||
loginTitleHtml={0}
|
||||
impersonateTitle={0} \u062a\u0642\u0644\u06cc\u062f \u06a9\u0627\u0631\u0628\u0631
|
||||
impersonateTitleHtml=<strong>{0}</strong> \u062a\u0642\u0644\u06cc\u062f \u06a9\u0627\u0631\u0628\u0631
|
||||
realmChoice=\u0642\u0644\u0645\u0631\u0648
|
||||
unknownUser=\u06a9\u0627\u0631\u0628\u0631 \u0646\u0627\u0634\u0646\u0627\u0633
|
||||
loginTotpTitle=\u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u062f\u0633\u062a\u06af\u0627\u0647 \u062a\u0623\u06cc\u06cc\u062f \u0627\u0639\u062a\u0628\u0627\u0631 \u0645\u0648\u0628\u0627\u06cc\u0644
|
||||
loginProfileTitle=\u0628\u0647 \u0631\u0648\u0632 \u0631\u0633\u0627\u0646\u06cc \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u062d\u0633\u0627\u0628
|
||||
loginIdpReviewProfileTitle=\u0628\u0647 \u0631\u0648\u0632 \u0631\u0633\u0627\u0646\u06cc \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u062d\u0633\u0627\u0628
|
||||
loginTimeout=\u0632\u0645\u0627\u0646 \u062a\u0644\u0627\u0634 \u0628\u0631\u0627\u06cc \u0648\u0631\u0648\u062f \u0634\u0645\u0627 \u0628\u0647 \u067e\u0627\u06cc\u0627\u0646 \u0631\u0633\u06cc\u062f. \u0648\u0631\u0648\u062f \u0627\u0632 \u0627\u0628\u062a\u062f\u0627 \u0634\u0631\u0648\u0639 \u062e\u0648\u0627\u0647\u062f \u0634\u062f.
|
||||
reauthenticate=\u0644\u0637\u0641\u0627\u064b \u0628\u0631\u0627\u06cc \u0627\u062f\u0627\u0645\u0647 \u062f\u0648\u0628\u0627\u0631\u0647 \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u06a9\u0646\u06cc\u062f
|
||||
oauthGrantTitle=\u0627\u0639\u0637\u0627\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 {0}
|
||||
oauthGrantTitleHtml={0}
|
||||
oauthGrantInformation=\u0628\u0627 \u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc \u0646\u062d\u0648\u0647 \u0645\u062f\u06cc\u0631\u06cc\u062a {0} \u0628\u0627 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0634\u0645\u0627\u060c \u0645\u0637\u0645\u0626\u0646 \u0634\u0648\u06cc\u062f \u06a9\u0647 \u0628\u0647 {0} \u0627\u0639\u062a\u0645\u0627\u062f \u062f\u0627\u0631\u06cc\u062f.
|
||||
oauthGrantReview=\u0634\u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f
|
||||
oauthGrantTos=\u0634\u0631\u0627\u06cc\u0637 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062e\u062f\u0645\u0627\u062a.
|
||||
oauthGrantPolicy=\u0633\u06cc\u0627\u0633\u062a \u062d\u0641\u0638 \u062d\u0631\u06cc\u0645 \u062e\u0635\u0648\u0635\u06cc.
|
||||
errorTitle=\u0645\u062a\u0627\u0633\u0641\u06cc\u0645...
|
||||
errorTitleHtml=\u0645\u0627 <strong>\u0645\u062a\u0627\u0633\u0641\u06cc\u0645</strong>...
|
||||
emailVerifyTitle=\u062a\u0627\u06cc\u06cc\u062f \u0627\u06cc\u0645\u06cc\u0644
|
||||
emailForgotTitle=\u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u062e\u0648\u062f \u0631\u0627 \u0641\u0631\u0627\u0645\u0648\u0634 \u06a9\u0631\u062f\u0647 \u0627\u06cc\u062f\u061f
|
||||
updateEmailTitle=\u0627\u06cc\u0645\u06cc\u0644 \u0631\u0627 \u0628\u0647 \u0631\u0648\u0632 \u06a9\u0646\u06cc\u062f
|
||||
emailUpdateConfirmationSentTitle=\u0627\u06cc\u0645\u06cc\u0644 \u062a\u0627\u06cc\u06cc\u062f \u0641\u0631\u0633\u062a\u0627\u062f\u0647 \u0634\u062f
|
||||
emailUpdateConfirmationSent=\u06cc\u06a9 \u0627\u06cc\u0645\u06cc\u0644 \u062a\u0623\u06cc\u06cc\u062f \u0628\u0647 {0} \u0627\u0631\u0633\u0627\u0644 \u0634\u062f\u0647 \u0627\u0633\u062a. \u0628\u0631\u0627\u06cc \u062a\u06a9\u0645\u06cc\u0644 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u0627\u06cc\u0645\u06cc\u0644\u060c \u0628\u0627\u06cc\u062f \u062f\u0633\u062a\u0648\u0631\u0627\u0644\u0639\u0645\u0644\u200c\u0647\u0627\u06cc \u0642\u0628\u0644\u06cc \u0631\u0627 \u062f\u0646\u0628\u0627\u0644 \u06a9\u0646\u06cc\u062f.
|
||||
emailUpdatedTitle=\u0627\u06cc\u0645\u06cc\u0644 \u0628\u0647 \u0631\u0648\u0632 \u0634\u062f
|
||||
emailUpdated=\u0627\u06cc\u0645\u06cc\u0644 \u062d\u0633\u0627\u0628 \u0628\u0627 \u0645\u0648\u0641\u0642\u06cc\u062a \u0628\u0647 {0} \u0628\u0647 \u0631\u0648\u0632 \u0634\u062f.
|
||||
updatePasswordTitle=\u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u0631\u0627 \u0628\u0647 \u0631\u0648\u0632 \u06a9\u0646\u06cc\u062f
|
||||
codeSuccessTitle=\u06a9\u062f \u0645\u0648\u0641\u0642\u06cc\u062a
|
||||
codeErrorTitle=\u06a9\u062f \u062e\u0637\u0627\: {0}
|
||||
displayUnsupported=\u0646\u0648\u0639 \u0646\u0645\u0627\u06cc\u0634 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u06cc \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0646\u0645\u06cc \u0634\u0648\u062f
|
||||
browserRequired=\u0628\u0631\u0627\u06cc \u0648\u0631\u0648\u062f \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645 \u0645\u0631\u0648\u0631\u06af\u0631 \u0644\u0627\u0632\u0645 \u0627\u0633\u062a
|
||||
browserContinue=\u0628\u0631\u0627\u06cc \u062a\u06a9\u0645\u06cc\u0644 \u0648\u0631\u0648\u062f \u0628\u0647 \u0645\u0631\u0648\u0631\u06af\u0631 \u0646\u06cc\u0627\u0632 \u0627\u0633\u062a
|
||||
browserContinuePrompt=\u0645\u0631\u0648\u0631\u06af\u0631 \u0631\u0627 \u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f \u0648 \u0628\u0647 \u0648\u0631\u0648\u062f \u0627\u062f\u0627\u0645\u0647 \u062f\u0647\u06cc\u062f\u061f [y/n]\:
|
||||
browserContinueAnswer=y
|
||||
usb=USB
|
||||
nfc=NFC
|
||||
bluetooth=\u0628\u0644\u0648\u062a\u0648\u062b
|
||||
internal=\u062f\u0627\u062e\u0644\u06cc
|
||||
unknown=\u0646\u0627\u0634\u0646\u0627\u062e\u062a\u0647
|
||||
termsTitle=\u0634\u0631\u0627\u06cc\u0637 \u0648 \u0636\u0648\u0627\u0628\u0637
|
||||
termsText=
|
||||
termsPlainText=\u0634\u0631\u0627\u06cc\u0637 \u0648 \u0636\u0648\u0627\u0628\u0637 \u0628\u0627\u06cc\u062f \u062a\u0639\u0631\u06cc\u0641 \u0634\u0648\u062f.
|
||||
recaptchaFailed=Recaptcha \u0646\u0627\u0645\u0639\u062a\u0628\u0631 \u0627\u0633\u062a
|
||||
recaptchaNotConfigured=Recaptcha \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u0627\u0633\u062a\u060c \u0627\u0645\u0627 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0646\u0634\u062f\u0647 \u0627\u0633\u062a
|
||||
consentDenied=\u0631\u0636\u0627\u06cc\u062a \u0631\u062f \u0634\u062f.
|
||||
noAccount=\u06a9\u0627\u0631\u0628\u0631 \u062c\u062f\u06cc\u062f \u0647\u0633\u062a\u06cc\u062f\u061f
|
||||
username=\u0646\u0627\u0645 \u06a9\u0627\u0631\u0628\u0631\u06cc
|
||||
usernameOrEmail=\u0646\u0627\u0645 \u06a9\u0627\u0631\u0628\u0631\u06cc \u06cc\u0627 \u067e\u0633\u062a \u0627\u0644\u06a9\u062a\u0631\u0648\u0646\u06cc\u06a9
|
||||
firstName=\u0646\u0627\u0645
|
||||
givenName=\u0644\u0642\u0628
|
||||
fullName=\u0646\u0627\u0645 \u06a9\u0627\u0645\u0644
|
||||
lastName=\u0646\u0627\u0645 \u062e\u0627\u0646\u0648\u0627\u062f\u06af\u06cc
|
||||
familyName=\u0646\u0627\u0645 \u062e\u0627\u0646\u0648\u0627\u062f\u06af\u06cc
|
||||
email=\u0627\u06cc\u0645\u06cc\u0644
|
||||
password=\u0631\u0645\u0632 \u0639\u0628\u0648\u0631
|
||||
passwordConfirm=\u062a\u0627\u0626\u06cc\u062f \u0631\u0645\u0632 \u0639\u0628\u0648\u0631
|
||||
passwordNew=\u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u062c\u062f\u06cc\u062f
|
||||
passwordNewConfirm=\u062a\u0627\u0626\u06cc\u062f \u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u062c\u062f\u06cc\u062f
|
||||
rememberMe=\u0645\u0631\u0627 \u0628\u0647 \u062e\u0627\u0637\u0631 \u0628\u0633\u067e\u0627\u0631
|
||||
authenticatorCode=\u06a9\u062f \u06cc\u06a9\u0628\u0627\u0631 \u0645\u0635\u0631\u0641
|
||||
address=\u0622\u062f\u0631\u0633
|
||||
street=\u062e\u06cc\u0627\u0628\u0627\u0646
|
||||
locality=\u0634\u0647\u0631 \u06cc\u0627 \u0645\u062d\u0644\u0647
|
||||
region=\u0627\u06cc\u0627\u0644\u062a\u060c \u0627\u0633\u062a\u0627\u0646 \u06cc\u0627 \u0645\u0646\u0637\u0642\u0647
|
||||
postal_code=\u06a9\u062f \u067e\u0633\u062a\u06cc
|
||||
country=\u06a9\u0634\u0648\u0631
|
||||
emailVerified=\u0627\u06cc\u0645\u06cc\u0644 \u062a\u0623\u06cc\u06cc\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a
|
||||
website=\u0635\u0641\u062d\u0647 \u0648\u0628
|
||||
phoneNumber=\u0634\u0645\u0627\u0631\u0647 \u062a\u0644\u0641\u0646
|
||||
phoneNumberVerified=\u0634\u0645\u0627\u0631\u0647 \u062a\u0644\u0641\u0646 \u062a\u0627\u06cc\u06cc\u062f \u0634\u062f
|
||||
gender=\u062c\u0646\u0633\u06cc\u062a
|
||||
birthday=\u062a\u0627\u0631\u06cc\u062e \u062a\u0648\u0644\u062f
|
||||
zoneinfo=\u0645\u0646\u0637\u0642\u0647 \u0632\u0645\u0627\u0646\u06cc
|
||||
gssDelegationCredential=\u0627\u0639\u062a\u0628\u0627\u0631\u0646\u0627\u0645\u0647 \u0646\u0645\u0627\u06cc\u0646\u062f\u06af\u06cc GSS
|
||||
logoutOtherSessions=\u0627\u0632 \u062f\u0633\u062a\u06af\u0627\u0647 \u0647\u0627\u06cc \u062f\u06cc\u06af\u0631 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f
|
||||
profileScopeConsentText=\u0645\u0634\u062e\u0635\u0627\u062a \u06a9\u0627\u0631\u0628\u0631
|
||||
emailScopeConsentText=\u0622\u062f\u0631\u0633 \u0627\u06cc\u0645\u06cc\u0644
|
||||
addressScopeConsentText=\u0646\u0634\u0627\u0646\u06cc
|
||||
phoneScopeConsentText=\u0634\u0645\u0627\u0631\u0647 \u062a\u0644\u0641\u0646
|
||||
offlineAccessScopeConsentText=\u062f\u0633\u062a\u0631\u0633\u06cc \u0622\u0641\u0644\u0627\u06cc\u0646
|
||||
samlRoleListScopeConsentText=\u0646\u0642\u0634 \u0647\u0627\u06cc \u0645\u0646
|
||||
rolesScopeConsentText=\u0646\u0642\u0634 \u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631
|
||||
restartLoginTooltip=\u0648\u0631\u0648\u062f \u0645\u062c\u062f\u062f \u0631\u0627 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f
|
||||
loginTotpIntro=\u0628\u0631\u0627\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u0627\u06cc\u0646 \u062d\u0633\u0627\u0628\u060c \u0628\u0627\u06cc\u062f \u06cc\u06a9 \u062a\u0648\u0644\u06cc\u062f \u06a9\u0646\u0646\u062f\u0647 \u0631\u0645\u0632 \u06cc\u06a9 \u0628\u0627\u0631 \u0645\u0635\u0631\u0641 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f
|
||||
loginTotpStep1=\u06cc\u06a9\u06cc \u0627\u0632 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u0632\u06cc\u0631 \u0631\u0627 \u0631\u0648\u06cc \u0645\u0648\u0628\u0627\u06cc\u0644 \u062e\u0648\u062f \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f\:
|
||||
loginTotpStep2=\u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0627 \u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f \u0648 \u0628\u0627\u0631\u06a9\u062f \u0631\u0627 \u0627\u0633\u06a9\u0646 \u06a9\u0646\u06cc\u062f\:
|
||||
loginTotpStep3=\u06a9\u062f \u06cc\u06a9\u0628\u0627\u0631 \u0645\u0635\u0631\u0641 \u0627\u0631\u0627\u0626\u0647 \u0634\u062f\u0647 \u062a\u0648\u0633\u0637 \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f \u0648 \u0628\u0631\u0627\u06cc \u062a\u06a9\u0645\u06cc\u0644 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0631\u0648\u06cc \u0627\u0631\u0633\u0627\u0644 \u06a9\u0644\u06cc\u06a9 \u06a9\u0646\u06cc\u062f.
|
||||
loginTotpStep3DeviceName=\u06cc\u06a9 \u0646\u0627\u0645 \u062f\u0633\u062a\u06af\u0627\u0647 \u0628\u0631\u0627\u06cc \u06a9\u0645\u06a9 \u0628\u0647 \u0645\u062f\u06cc\u0631\u06cc\u062a \u062f\u0633\u062a\u06af\u0627\u0647 \u0647\u0627\u06cc OTP \u062e\u0648\u062f \u0627\u0631\u0627\u0626\u0647 \u062f\u0647\u06cc\u062f.
|
||||
loginTotpManualStep2=\u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0627 \u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f \u0648 \u06a9\u0644\u06cc\u062f \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f\:
|
||||
loginTotpManualStep3=\u0627\u06af\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u062c\u0627\u0632\u0647 \u062a\u0646\u0638\u06cc\u0645 \u0622\u0646\u0647\u0627 \u0631\u0627 \u0645\u06cc \u062f\u0647\u062f\u060c \u0627\u0632 \u0645\u0642\u0627\u062f\u06cc\u0631 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0632\u06cc\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f\:
|
||||
loginTotpUnableToScan=\u0646\u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0633\u06a9\u0646 \u06a9\u0646\u06cc\u062f\u061f
|
||||
loginTotpScanBarcode=\u0627\u0633\u06a9\u0646 \u0628\u0627\u0631\u06a9\u062f\u061f
|
||||
loginCredential=\u0627\u0639\u062a\u0628\u0627\u0631\u0646\u0627\u0645\u0647
|
||||
loginOtpOneTime=\u06a9\u062f \u06cc\u06a9\u0628\u0627\u0631 \u0645\u0635\u0631\u0641
|
||||
loginTotpType=\u0646\u0648\u0639
|
||||
loginTotpAlgorithm=\u0627\u0644\u06af\u0648\u0631\u06cc\u062a\u0645
|
||||
loginTotpDigits=\u0627\u0631\u0642\u0627\u0645
|
||||
loginTotpInterval=\u0641\u0627\u0635\u0644\u0647
|
||||
loginTotpCounter=\u0634\u0645\u0627\u0631\u0646\u062f\u0647
|
||||
loginTotpDeviceName=\u0646\u0627\u0645 \u062f\u0633\u062a\u06af\u0627\u0647
|
||||
loginTotp.totp=\u0645\u0628\u062a\u0646\u06cc \u0628\u0631 \u0632\u0645\u0627\u0646
|
||||
loginTotp.hotp=\u0645\u0628\u062a\u0646\u06cc \u0628\u0631 \u0634\u0645\u0627\u0631\u0646\u062f\u0647
|
||||
totpAppFreeOTPName=FreeOTP
|
||||
totpAppGoogleName=Google Authenticator
|
||||
totpAppMicrosoftAuthenticatorName=Microsoft Authenticator
|
||||
loginChooseAuthenticator=\u0631\u0648\u0634 \u0648\u0631\u0648\u062f \u0631\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u06cc\u062f
|
||||
oauthGrantRequest=\u0622\u06cc\u0627 \u0628\u0647 \u0627\u06cc\u0646 \u0627\u0645\u062a\u06cc\u0627\u0632\u0627\u062a \u062f\u0633\u062a\u0631\u0633\u06cc \u0645\u06cc \u062f\u0647\u06cc\u062f\u061f
|
||||
inResource=\u062f\u0631
|
||||
oauth2DeviceVerificationTitle=\u0648\u0631\u0648\u062f \u0628\u0647 \u062f\u0633\u062a\u06af\u0627\u0647
|
||||
verifyOAuth2DeviceUserCode=\u06a9\u062f \u0627\u0631\u0627\u0626\u0647 \u0634\u062f\u0647 \u062a\u0648\u0633\u0637 \u062f\u0633\u062a\u06af\u0627\u0647 \u062e\u0648\u062f \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0631\u062f\u0647 \u0648 \u0631\u0648\u06cc \u0627\u0631\u0633\u0627\u0644 \u06a9\u0644\u06cc\u06a9 \u06a9\u0646\u06cc\u062f
|
||||
oauth2DeviceInvalidUserCodeMessage=\u06a9\u062f \u0646\u0627\u0645\u0639\u062a\u0628\u0631 \u0627\u0633\u062a\u060c \u0644\u0637\u0641\u0627 \u062f\u0648\u0628\u0627\u0631\u0647 \u0627\u0645\u062a\u062d\u0627\u0646 \u06a9\u0646\u06cc\u062f.
|
||||
oauth2DeviceExpiredUserCodeMessage=\u06a9\u062f \u0645\u0646\u0642\u0636\u06cc \u0634\u062f\u0647 \u0627\u0633\u062a. \u0644\u0637\u0641\u0627\u064b \u0628\u0647 \u062f\u0633\u062a\u06af\u0627\u0647 \u062e\u0648\u062f \u0628\u0631\u06af\u0631\u062f\u06cc\u062f \u0648 \u062f\u0648\u0628\u0627\u0631\u0647 \u0633\u0639\u06cc \u06a9\u0646\u06cc\u062f \u0648\u0635\u0644 \u0634\u0648\u06cc\u062f.
|
||||
oauth2DeviceVerificationCompleteHeader=\u0648\u0631\u0648\u062f \u062f\u0633\u062a\u06af\u0627\u0647 \u0628\u0627 \u0645\u0648\u0641\u0642\u06cc\u062a \u0627\u0646\u062c\u0627\u0645 \u0634\u062f
|
||||
oauth2DeviceVerificationCompleteMessage=\u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u06cc\u0646 \u067e\u0646\u062c\u0631\u0647 \u0645\u0631\u0648\u0631\u06af\u0631 \u0631\u0627 \u0628\u0628\u0646\u062f\u06cc\u062f \u0648 \u0628\u0647 \u062f\u0633\u062a\u06af\u0627\u0647 \u062e\u0648\u062f \u0628\u0627\u0632\u06af\u0631\u062f\u06cc\u062f.
|
||||
oauth2DeviceVerificationFailedHeader=\u0648\u0631\u0648\u062f \u062f\u0633\u062a\u06af\u0627\u0647 \u0646\u0627\u0645\u0648\u0641\u0642 \u0628\u0648\u062f
|
||||
oauth2DeviceVerificationFailedMessage=\u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u06cc\u0646 \u067e\u0646\u062c\u0631\u0647 \u0645\u0631\u0648\u0631\u06af\u0631 \u0631\u0627 \u0628\u0628\u0646\u062f\u06cc\u062f \u0648 \u0628\u0647 \u062f\u0633\u062a\u06af\u0627\u0647 \u062e\u0648\u062f \u0628\u0627\u0632\u06af\u0631\u062f\u06cc\u062f \u0648 \u062f\u0648\u0628\u0627\u0631\u0647 \u0633\u0639\u06cc \u06a9\u0646\u06cc\u062f \u0648\u0635\u0644 \u0634\u0648\u06cc\u062f.
|
||||
oauth2DeviceConsentDeniedMessage=\u0631\u0636\u0627\u06cc\u062a \u0628\u0631\u0627\u06cc \u0627\u062a\u0635\u0627\u0644 \u062f\u0633\u062a\u06af\u0627\u0647 \u0631\u062f \u0634\u062f.
|
||||
oauth2DeviceAuthorizationGrantDisabledMessage=\u0645\u0634\u062a\u0631\u06cc \u0645\u062c\u0627\u0632 \u0628\u0647 \u0634\u0631\u0648\u0639 OAuth 2.0 Device Authorization Grant \u0646\u06cc\u0633\u062a. \u062c\u0631\u06cc\u0627\u0646 \u0628\u0631\u0627\u06cc \u0645\u0634\u062a\u0631\u06cc \u063a\u06cc\u0631\u0641\u0639\u0627\u0644 \u0627\u0633\u062a.
|
||||
emailVerifyInstruction1=\u06cc\u06a9 \u0627\u06cc\u0645\u06cc\u0644 \u062d\u0627\u0648\u06cc \u062f\u0633\u062a\u0648\u0631\u0627\u0644\u0639\u0645\u0644 \u0647\u0627\u06cc\u06cc \u0628\u0631\u0627\u06cc \u062a\u0623\u06cc\u06cc\u062f \u0622\u062f\u0631\u0633 \u0627\u06cc\u0645\u06cc\u0644 \u0634\u0645\u0627 \u0628\u0647 \u0622\u062f\u0631\u0633 \u0634\u0645\u0627 {0} \u0627\u0631\u0633\u0627\u0644 \u0634\u062f\u0647 \u0627\u0633\u062a.
|
||||
emailVerifyInstruction2=\u0622\u06cc\u0627 \u06a9\u062f \u062a\u0623\u06cc\u06cc\u062f \u062f\u0631 \u0627\u06cc\u0645\u06cc\u0644 \u062e\u0648\u062f \u062f\u0631\u06cc\u0627\u0641\u062a \u0646\u06a9\u0631\u062f\u0647 \u0627\u06cc\u062f\u061f
|
||||
emailVerifyInstruction3=\u0628\u0631\u0627\u06cc \u0627\u0631\u0633\u0627\u0644 \u0645\u062c\u062f\u062f \u0627\u06cc\u0645\u06cc\u0644
|
||||
emailLinkIdpTitle=\u067e\u06cc\u0648\u0646\u062f {0}
|
||||
emailLinkIdp1=\u06cc\u06a9 \u0627\u06cc\u0645\u06cc\u0644 \u0628\u0627 \u062f\u0633\u062a\u0648\u0631\u0627\u0644\u0639\u0645\u0644 \u067e\u06cc\u0648\u0646\u062f {0} \u062d\u0633\u0627\u0628 {1} \u0628\u0627 \u062d\u0633\u0627\u0628 {2} \u0634\u0645\u0627 \u0628\u0631\u0627\u06cc \u0634\u0645\u0627 \u0627\u0631\u0633\u0627\u0644 \u0634\u062f\u0647 \u0627\u0633\u062a.
|
||||
emailLinkIdp2=\u0622\u06cc\u0627 \u06a9\u062f \u062a\u0623\u06cc\u06cc\u062f \u062f\u0631 \u0627\u06cc\u0645\u06cc\u0644 \u062e\u0648\u062f \u062f\u0631\u06cc\u0627\u0641\u062a \u0646\u06a9\u0631\u062f\u0647 \u0627\u06cc\u062f\u061f
|
||||
emailLinkIdp3=\u0628\u0631\u0627\u06cc \u0627\u0631\u0633\u0627\u0644 \u0645\u062c\u062f\u062f \u0627\u06cc\u0645\u06cc\u0644
|
||||
emailLinkIdp4=\u0627\u06af\u0631 \u0642\u0628\u0644\u0627\u064b \u0627\u06cc\u0645\u06cc\u0644 \u0631\u0627 \u062f\u0631 \u0645\u0631\u0648\u0631\u06af\u0631 \u062f\u06cc\u06af\u0631\u06cc \u062a\u0623\u06cc\u06cc\u062f \u06a9\u0631\u062f\u0647 \u0627\u06cc\u062f
|
||||
emailLinkIdp5=\u0627\u062f\u0627\u0645\u0647.
|
||||
backToLogin=« \u0628\u0627\u0632\u06af\u0634\u062a \u0628\u0647 \u0635\u0641\u062d\u0647 \u0648\u0631\u0648\u062f
|
||||
emailInstruction=\u0646\u0627\u0645 \u06a9\u0627\u0631\u0628\u0631\u06cc \u06cc\u0627 \u0622\u062f\u0631\u0633 \u0627\u06cc\u0645\u06cc\u0644 \u062e\u0648\u062f \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f \u0648 \u0645\u0627 \u062f\u0633\u062a\u0648\u0631\u0627\u0644\u0639\u0645\u0644 \u0647\u0627\u06cc\u06cc \u062f\u0631 \u0645\u0648\u0631\u062f \u0646\u062d\u0648\u0647 \u0627\u06cc\u062c\u0627\u062f \u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u062c\u062f\u06cc\u062f \u0628\u0631\u0627\u06cc \u0634\u0645\u0627 \u0627\u0631\u0633\u0627\u0644 \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f.
|
||||
emailInstructionUsername=\u0646\u0627\u0645 \u06a9\u0627\u0631\u0628\u0631\u06cc \u062e\u0648\u062f \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f \u0648 \u0645\u0627 \u062f\u0633\u062a\u0648\u0631\u0627\u0644\u0639\u0645\u0644 \u0647\u0627\u06cc\u06cc \u062f\u0631 \u0645\u0648\u0631\u062f \u0646\u062d\u0648\u0647 \u0627\u06cc\u062c\u0627\u062f \u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u062c\u062f\u06cc\u062f \u0628\u0631\u0627\u06cc \u0634\u0645\u0627 \u0627\u0631\u0633\u0627\u0644 \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f.
|
||||
copyCodeInstruction=\u0644\u0637\u0641\u0627 \u0627\u06cc\u0646 \u06a9\u062f \u0631\u0627 \u06a9\u067e\u06cc \u06a9\u0631\u062f\u0647 \u0648 \u062f\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f \u0642\u0631\u0627\u0631 \u062f\u0647\u06cc\u062f\:
|
||||
pageExpiredTitle=\u0635\u0641\u062d\u0647 \u0645\u0646\u0642\u0636\u06cc \u0634\u062f\u0647 \u0627\u0633\u062a
|
||||
pageExpiredMsg1=\u0628\u0631\u0627\u06cc \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u0645\u062c\u062f\u062f \u0641\u0631\u0622\u06cc\u0646\u062f \u0648\u0631\u0648\u062f
|
||||
pageExpiredMsg2=\u0628\u0631\u0627\u06cc \u0627\u062f\u0627\u0645\u0647 \u0631\u0648\u0646\u062f \u0648\u0631\u0648\u062f
|
||||
personalInfo=\u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0634\u062e\u0635\u06cc\:
|
||||
role_admin=\u0627\u062f\u0645\u06cc\u0646
|
||||
role_realm-admin=\u0627\u062f\u0645\u06cc\u0646 \u0642\u0644\u0645\u0631\u0648
|
||||
role_create-realm=\u0627\u06cc\u062c\u0627\u062f \u0642\u0644\u0645\u0631\u0648
|
||||
role_create-client=\u0627\u06cc\u062c\u0627\u062f \u0645\u0634\u062a\u0631\u06cc
|
||||
role_view-realm=\u0645\u0634\u0627\u0647\u062f\u0647 \u0642\u0644\u0645\u0631\u0648
|
||||
role_view-users=\u0645\u0634\u0627\u0647\u062f\u0647 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646
|
||||
role_view-applications=\u0645\u0634\u0627\u0647\u062f\u0647 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646\u200c\u0647\u0627
|
||||
role_view-clients=\u0645\u0634\u0627\u0647\u062f\u0647 \u0645\u0634\u062a\u0631\u06cc\u200c\u0647\u0627
|
||||
role_view-events=\u0645\u0634\u0627\u0647\u062f\u0647 \u0631\u0648\u06cc\u062f\u0627\u062f
|
||||
role_view-identity-providers=\u0645\u0634\u0627\u0647\u062f\u0647 \u0627\u0631\u0627\u0626\u0647\u200c\u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u0647\u0648\u06cc\u062a
|
||||
role_manage-realm=\u0645\u062f\u06cc\u0631\u06cc\u062a \u0642\u0644\u0645\u0631\u0648
|
||||
role_manage-users=\u0645\u06cc\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0627\u0631\u0628\u0631\u0627\u0646
|
||||
role_manage-applications=\u0645\u062f\u06cc\u0631\u06cc\u062a \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646\u200c\u0647\u0627
|
||||
role_manage-identity-providers=\u0645\u062f\u06cc\u0631\u06cc\u062a \u0627\u0631\u0627\u0626\u0647\u200c\u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u0647\u0648\u06cc\u062a
|
||||
role_manage-clients=\u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u0634\u062a\u0631\u06cc\u0627\u0646
|
||||
role_manage-events=\u0645\u062f\u06cc\u0631\u06cc\u062a \u0631\u0648\u06cc\u062f\u0627\u062f\u0647\u0627
|
||||
role_view-profile=\u0645\u0634\u0627\u0647\u062f\u0647 \u067e\u0631\u0648\u0641\u0627\u06cc\u0644
|
||||
role_manage-account=\u0645\u06cc\u062f\u0631\u06cc\u062a \u062d\u0633\u0627\u0628
|
||||
role_manage-account-links=\u0645\u062f\u06cc\u0631\u06cc\u062a \u067e\u06cc\u0648\u0646\u062f\u0647\u0627\u06cc \u062d\u0633\u0627\u0628
|
||||
role_read-token=\u062e\u0648\u0627\u0646\u062f\u0646 Token
|
||||
role_offline-access=\u062f\u0633\u062a\u0631\u0633\u06cc \u0622\u0641\u0644\u0627\u06cc\u0646
|
||||
client_account=\u062d\u0633\u0627\u0628
|
||||
client_account-console=\u06a9\u0646\u0633\u0648\u0644 \u062d\u0633\u0627\u0628
|
||||
client_security-admin-console=\u06a9\u0646\u0633\u0648\u0644 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0627\u0645\u0646\u06cc\u062a
|
||||
client_admin-cli=\u0627\u062f\u0645\u06cc\u0646 CLI
|
||||
client_realm-management=\u0645\u062f\u06cc\u0631\u06cc\u062a \u0642\u0644\u0645\u0631\u0648
|
||||
client_broker=\u062f\u0644\u0627\u0644
|
||||
requiredFields=\u0641\u06cc\u0644\u062f\u0647\u0627\u06cc \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632
|
||||
invalidUserMessage=\u0646\u0627\u0645 \u06a9\u0627\u0631\u0628\u0631\u06cc \u06cc\u0627 \u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u0646\u0627\u0645\u0639\u062a\u0628\u0631 \u0627\u0633\u062a.
|
||||
invalidUsernameMessage=\u0646\u0627\u0645 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0646\u0627\u0645\u0639\u062a\u0628\u0631 \u0627\u0633\u062a.
|
||||
invalidUsernameOrEmailMessage=\u0646\u0627\u0645 \u06a9\u0627\u0631\u0628\u0631\u06cc \u06cc\u0627 \u0627\u06cc\u0645\u06cc\u0644 \u0646\u0627\u0645\u0639\u062a\u0628\u0631 \u0627\u0633\u062a.
|
||||
invalidPasswordMessage=\u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u0646\u0627\u0645\u0639\u062a\u0628\u0631.
|
||||
invalidEmailMessage=\u0622\u062f\u0631\u0633 \u0627\u06cc\u0645\u06cc\u0644 \u0646\u0627\u0645\u0639\u062a\u0628\u0631 \u0627\u0633\u062a.
|
||||
accountDisabledMessage=\u062d\u0633\u0627\u0628 \u063a\u06cc\u0631\u0641\u0639\u0627\u0644 \u0627\u0633\u062a\u060c \u0628\u0627 \u0633\u0631\u067e\u0631\u0633\u062a \u062e\u0648\u062f \u062a\u0645\u0627\u0633 \u0628\u06af\u06cc\u0631\u06cc\u062f.
|
||||
accountTemporarilyDisabledMessage=\u062d\u0633\u0627\u0628 \u0628\u0647 \u0637\u0648\u0631 \u0645\u0648\u0642\u062a \u063a\u06cc\u0631\u0641\u0639\u0627\u0644 \u0634\u062f\u0647 \u0627\u0633\u062a; \u0628\u0627 \u0633\u0631\u067e\u0631\u0633\u062a \u062e\u0648\u062f \u062a\u0645\u0627\u0633 \u0628\u06af\u06cc\u0631\u06cc\u062f \u06cc\u0627 \u0628\u0639\u062f\u0627\u064b \u062f\u0648\u0628\u0627\u0631\u0647 \u0627\u0645\u062a\u062d\u0627\u0646 \u06a9\u0646\u06cc\u062f.
|
||||
expiredCodeMessage=\u0627\u062a\u0645\u0627\u0645 \u0645\u062f\u062a \u0648\u0631\u0648\u062f. \u0644\u0637\u0641\u0627\u064b \u062f\u0648\u0628\u0627\u0631\u0647 \u0648\u0627\u0631\u062f \u0634\u0648\u06cc\u062f.
|
||||
expiredActionMessage=\u0627\u0642\u062f\u0627\u0645 \u0645\u0646\u0642\u0636\u06cc \u0634\u062f\u0647 \u0627\u0633\u062a. \u0644\u0637\u0641\u0627 \u0647\u0645\u06cc\u0646 \u0627\u0644\u0627\u0646 \u0628\u0627 \u0648\u0631\u0648\u062f \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645 \u0627\u062f\u0627\u0645\u0647 \u062f\u0647\u06cc\u062f.
|
||||
expiredActionTokenNoSessionMessage=\u0627\u0642\u062f\u0627\u0645 \u0645\u0646\u0642\u0636\u06cc \u0634\u062f\u0647 \u0627\u0633\u062a.
|
||||
expiredActionTokenSessionExistsMessage=\u0627\u0642\u062f\u0627\u0645 \u0645\u0646\u0642\u0636\u06cc \u0634\u062f\u0647 \u0627\u0633\u062a. \u0644\u0637\u0641\u0627 \u062f\u0648\u0628\u0627\u0631\u0647 \u0634\u0631\u0648\u0639 \u06a9\u0646\u06cc\u062f.
|
||||
sessionLimitExceeded=\u062a\u0639\u062f\u0627\u062f \u062c\u0644\u0633\u0627\u062a \u0628\u0633\u06cc\u0627\u0631 \u0632\u06cc\u0627\u062f \u0627\u0633\u062a
|
||||
missingFirstNameMessage=\u0644\u0637\u0641\u0627 \u0646\u0627\u0645 \u0631\u0627 \u0645\u0634\u062e\u0635 \u06a9\u0646\u06cc\u062f
|
||||
missingLastNameMessage=\u0644\u0637\u0641\u0627 \u0646\u0627\u0645 \u062e\u0627\u0646\u0648\u0627\u062f\u06af\u06cc \u0631\u0627 \u0645\u0634\u062e\u0635 \u06a9\u0646\u06cc\u062f
|
||||
missingEmailMessage=\u0644\u0637\u0641\u0627 \u0627\u06cc\u0645\u06cc\u0644 \u0631\u0627 \u0645\u0634\u062e\u0635 \u06a9\u0646\u06cc\u062f
|
||||
missingUsernameMessage=\u0644\u0637\u0641\u0627 \u0646\u0627\u0645 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0631\u0627 \u0645\u0634\u062e\u0635 \u06a9\u0646\u06cc\u062f
|
||||
missingPasswordMessage=\u0644\u0637\u0641\u0627 \u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u0631\u0627 \u0645\u0634\u062e\u0635 \u06a9\u0646\u06cc\u062f
|
||||
missingTotpMessage=\u0644\u0637\u0641\u0627 \u06a9\u062f \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0631\u0627 \u0645\u0634\u062e\u0635 \u06a9\u0646\u06cc\u062f.
|
||||
missingTotpDeviceNameMessage=\u0644\u0637\u0641\u0627 \u0646\u0627\u0645 \u062f\u0633\u062a\u06af\u0627\u0647 \u0631\u0627 \u0645\u0634\u062e\u0635 \u06a9\u0646\u06cc\u062f.
|
||||
notMatchPasswordMessage=\u06af\u0630\u0631\u0648\u0627\u0698\u0647 \u0647\u0627 \u0645\u0637\u0627\u0628\u0642\u062a \u0646\u062f\u0627\u0631\u0646\u062f
|
||||
error-invalid-value=\u0645\u0642\u062f\u0627\u0631 \u0646\u0627\u0645\u0639\u062a\u0628\u0631 \u0627\u0633\u062a.
|
||||
error-invalid-blank=\u0644\u0637\u0641\u0627 \u0645\u0642\u062f\u0627\u0631 \u0631\u0627 \u0645\u0634\u062e\u0635 \u06a9\u0646\u06cc\u062f
|
||||
error-empty=\u0644\u0637\u0641\u0627 \u0645\u0642\u062f\u0627\u0631 \u0631\u0627 \u0645\u0634\u062e\u0635 \u06a9\u0646\u06cc\u062f
|
||||
error-invalid-length=\u0637\u0648\u0644 \u0628\u0627\u06cc\u062f \u0628\u06cc\u0646 {1} \u0648 {2} \u0628\u0627\u0634\u062f.
|
||||
error-invalid-length-too-short=\u062d\u062f\u0627\u0642\u0644 \u0637\u0648\u0644 {1} \u0627\u0633\u062a.
|
||||
error-invalid-length-too-long=\u062d\u062f\u0627\u06a9\u062b\u0631 \u0637\u0648\u0644 {2} \u0627\u0633\u062a.
|
||||
error-invalid-email=\u0622\u062f\u0631\u0633 \u0627\u06cc\u0645\u06cc\u0644 \u0646\u0627\u0645\u0639\u062a\u0628\u0631 \u0627\u0633\u062a.
|
||||
error-invalid-number=\u0639\u062f\u062f \u0646\u0627\u0645\u0639\u062a\u0628\u0631.
|
||||
error-number-out-of-range=\u0634\u0645\u0627\u0631\u0647 \u0628\u0627\u06cc\u062f \u0628\u06cc\u0646 {1} \u0648 {2} \u0628\u0627\u0634\u062f.
|
||||
error-number-out-of-range-too-small=\u0639\u062f\u062f \u0628\u0627\u06cc\u062f \u062d\u062f\u0627\u0642\u0644 \u0645\u0642\u062f\u0627\u0631 {1} \u0631\u0627 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f.
|
||||
error-number-out-of-range-too-big=\u0639\u062f\u062f \u0628\u0627\u06cc\u062f \u062d\u062f\u0627\u06a9\u062b\u0631 \u0645\u0642\u062f\u0627\u0631 {2} \u0631\u0627 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f.
|
||||
error-pattern-no-match=\u0645\u0642\u062f\u0627\u0631 \u0646\u0627\u0645\u0639\u062a\u0628\u0631 \u0627\u0633\u062a.
|
||||
error-invalid-uri=URL \u0646\u0627\u0645\u0639\u062a\u0628\u0631 \u0627\u0633\u062a.
|
||||
error-invalid-uri-scheme=\u0637\u0631\u062d URL \u0646\u0627\u0645\u0639\u062a\u0628\u0631 \u0627\u0633\u062a.
|
||||
error-invalid-uri-fragment=\u0642\u0637\u0639\u0647 URL \u0646\u0627\u0645\u0639\u062a\u0628\u0631 \u0627\u0633\u062a.
|
||||
error-user-attribute-required=\u0644\u0637\u0641\u0627 \u0627\u06cc\u0646 \u0641\u06cc\u0644\u062f \u0631\u0627 \u0645\u0634\u062e\u0635 \u06a9\u0646\u06cc\u062f.
|
||||
error-invalid-date=\u062a\u0627\u0631\u06cc\u062e \u0646\u0627\u0645\u0639\u062a\u0628\u0631 \u0627\u0633\u062a.
|
||||
error-user-attribute-read-only=\u0627\u06cc\u0646 \u0641\u06cc\u0644\u062f \u0641\u0642\u0637 \u062e\u0648\u0627\u0646\u062f\u0646\u06cc \u0627\u0633\u062a.
|
||||
error-username-invalid-character=\u0645\u0642\u062f\u0627\u0631 \u062d\u0627\u0648\u06cc \u06a9\u0627\u0631\u0627\u06a9\u062a\u0631 \u0646\u0627\u0645\u0639\u062a\u0628\u0631 \u0627\u0633\u062a.
|
||||
error-person-name-invalid-character=\u0645\u0642\u062f\u0627\u0631 \u062d\u0627\u0648\u06cc \u0646\u0648\u06cc\u0633\u0647 \u0646\u0627\u0645\u0639\u062a\u0628\u0631 \u0627\u0633\u062a.
|
||||
invalidPasswordExistingMessage=\u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u0645\u0648\u062c\u0648\u062f \u0646\u0627\u0645\u0639\u062a\u0628\u0631 \u0627\u0633\u062a.
|
||||
invalidPasswordBlacklistedMessage=\u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u0646\u0627\u0645\u0639\u062a\u0628\u0631\: \u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u062f\u0631 \u0644\u06cc\u0633\u062a \u0633\u06cc\u0627\u0647 \u0642\u0631\u0627\u0631 \u06af\u0631\u0641\u062a\u0647 \u0627\u0633\u062a.
|
||||
invalidPasswordConfirmMessage=\u062a\u0623\u06cc\u06cc\u062f \u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u0645\u0637\u0627\u0628\u0642\u062a \u0646\u062f\u0627\u0631\u062f.
|
||||
invalidTotpMessage=\u06a9\u062f \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0646\u0627\u0645\u0639\u062a\u0628\u0631 \u0627\u0633\u062a.
|
||||
usernameExistsMessage=\u0646\u0627\u0645 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0627\u0632 \u0642\u0628\u0644 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f.
|
||||
emailExistsMessage=\u0627\u06cc\u0645\u06cc\u0644 \u0627\u0632 \u0642\u0628\u0644 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f.
|
||||
federatedIdentityExistsMessage=\u06a9\u0627\u0631\u0628\u0631 \u0628\u0627 {0} {1} \u0627\u0632 \u0642\u0628\u0644 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f. \u0644\u0637\u0641\u0627 \u0628\u0631\u0627\u06cc \u067e\u06cc\u0648\u0646\u062f \u062f\u0627\u062f\u0646 \u062d\u0633\u0627\u0628 \u0628\u0647 \u0645\u062f\u06cc\u0631\u06cc\u062a \u062d\u0633\u0627\u0628 \u0648\u0627\u0631\u062f \u0634\u0648\u06cc\u062f.
|
||||
federatedIdentityUnavailableMessage=\u06a9\u0627\u0631\u0628\u0631 {0} \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0634\u062f\u0647 \u0628\u0627 \u0627\u0631\u0627\u0626\u0647 \u062f\u0647\u0646\u062f\u0647 \u0647\u0648\u06cc\u062a {1} \u0648\u062c\u0648\u062f \u0646\u062f\u0627\u0631\u062f. \u0644\u0637\u0641\u0627 \u0628\u0627 \u0627\u062f\u0645\u06cc\u0646 \u062e\u0648\u062f \u062a\u0645\u0627\u0633 \u0628\u06af\u06cc\u0631\u06cc\u062f.
|
||||
confirmLinkIdpTitle=\u062d\u0633\u0627\u0628 \u0627\u0632 \u0642\u0628\u0644 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f
|
||||
federatedIdentityConfirmLinkMessage=\u06a9\u0627\u0631\u0628\u0631 \u0628\u0627 {0} {1} \u0627\u0632 \u0642\u0628\u0644 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f. \u0686\u06af\u0648\u0646\u0647 \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u062f \u0627\u062f\u0627\u0645\u0647 \u062f\u0647\u06cc\u062f\u061f
|
||||
federatedIdentityConfirmReauthenticateMessage=\u0628\u0631\u0627\u06cc \u067e\u06cc\u0648\u0646\u062f \u062f\u0627\u062f\u0646 \u062d\u0633\u0627\u0628 \u062e\u0648\u062f \u0628\u0627 {0} \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a
|
||||
nestedFirstBrokerFlowMessage=\u06a9\u0627\u0631\u0628\u0631 {0} {1} \u0628\u0647 \u0647\u06cc\u0686 \u06a9\u0627\u0631\u0628\u0631 \u0634\u0646\u0627\u062e\u062a\u0647 \u0634\u062f\u0647 \u0627\u06cc \u067e\u06cc\u0648\u0646\u062f \u062f\u0627\u062f\u0647 \u0646\u0634\u062f\u0647 \u0627\u0633\u062a.
|
||||
confirmLinkIdpReviewProfile=\u0628\u0631\u0631\u0633\u06cc \u0646\u0645\u0627\u06cc\u0647
|
||||
confirmLinkIdpContinue=\u0627\u0636\u0627\u0641\u0647\u200c\u200c\u06a9\u0631\u062f\u0646 \u0628\u0647 \u062d\u0633\u0627\u0628 \u0645\u0648\u062d\u0648\u062f
|
||||
configureTotpMessage=\u0628\u0631\u0627\u06cc \u0641\u0639\u0627\u0644 \u06a9\u0631\u062f\u0646 \u062d\u0633\u0627\u0628 \u062e\u0648\u062f \u0628\u0627\u06cc\u062f \u0627\u0639\u062a\u0628\u0627\u0631\u0633\u0646\u062c\u06cc \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0645\u0648\u0628\u0627\u06cc\u0644 \u0631\u0627 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f.
|
||||
configureBackupCodesMessage=\u0628\u0631\u0627\u06cc \u0641\u0639\u0627\u0644 \u06a9\u0631\u062f\u0646 \u062d\u0633\u0627\u0628 \u062e\u0648\u062f \u0628\u0627\u06cc\u062f \u06a9\u062f\u0647\u0627\u06cc \u067e\u0634\u062a\u06cc\u0628\u0627\u0646 \u0631\u0627 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f.
|
||||
updateProfileMessage=\u0628\u0631\u0627\u06cc \u0641\u0639\u0627\u0644 \u06a9\u0631\u062f\u0646 \u062d\u0633\u0627\u0628 \u06a9\u0627\u0631\u0628\u0631\u06cc \u062e\u0648\u062f \u0628\u0627\u06cc\u062f \u067e\u0631\u0648\u0641\u0627\u06cc\u0644 \u06a9\u0627\u0631\u0628\u0631\u06cc \u062e\u0648\u062f \u0631\u0627 \u0628\u0647 \u0631\u0648\u0632 \u06a9\u0646\u06cc\u062f.
|
||||
updatePasswordMessage=\u0628\u0631\u0627\u06cc \u0641\u0639\u0627\u0644 \u06a9\u0631\u062f\u0646 \u062d\u0633\u0627\u0628 \u062e\u0648\u062f \u0628\u0627\u06cc\u062f \u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u062e\u0648\u062f \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f.
|
||||
updateEmailMessage=\u0628\u0631\u0627\u06cc \u0641\u0639\u0627\u0644 \u06a9\u0631\u062f\u0646 \u062d\u0633\u0627\u0628 \u062e\u0648\u062f \u0628\u0627\u06cc\u062f \u0622\u062f\u0631\u0633 \u0627\u06cc\u0645\u06cc\u0644 \u062e\u0648\u062f \u0631\u0627 \u0628\u0647 \u0631\u0648\u0632 \u06a9\u0646\u06cc\u062f.
|
||||
resetPasswordMessage=\u0634\u0645\u0627 \u0628\u0627\u06cc\u062f \u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u062e\u0648\u062f \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f.
|
||||
verifyEmailMessage=\u0628\u0631\u0627\u06cc \u0641\u0639\u0627\u0644 \u06a9\u0631\u062f\u0646 \u062d\u0633\u0627\u0628 \u062e\u0648\u062f \u0628\u0627\u06cc\u062f \u0622\u062f\u0631\u0633 \u0627\u06cc\u0645\u06cc\u0644 \u062e\u0648\u062f \u0631\u0627 \u062a\u0623\u06cc\u06cc\u062f \u06a9\u0646\u06cc\u062f.
|
||||
linkIdpMessage=\u0628\u0631\u0627\u06cc \u067e\u06cc\u0648\u0646\u062f \u062f\u0627\u062f\u0646 \u062d\u0633\u0627\u0628 \u062e\u0648\u062f \u0628\u0627 {0}\u060c \u0628\u0627\u06cc\u062f \u0622\u062f\u0631\u0633 \u0627\u06cc\u0645\u06cc\u0644 \u062e\u0648\u062f \u0631\u0627 \u062a\u0623\u06cc\u06cc\u062f \u06a9\u0646\u06cc\u062f.
|
||||
emailSentMessage=\u0634\u0645\u0627 \u0628\u0627\u06cc\u062f \u0628\u0647 \u0632\u0648\u062f\u06cc \u06cc\u06a9 \u0627\u06cc\u0645\u06cc\u0644 \u0628\u0627 \u062f\u0633\u062a\u0648\u0631\u0627\u0644\u0639\u0645\u0644 \u0647\u0627\u06cc \u0628\u06cc\u0634\u062a\u0631 \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0646\u06cc\u062f.
|
||||
emailSendErrorMessage=\u0627\u06cc\u0645\u06cc\u0644 \u0627\u0631\u0633\u0627\u0644 \u0646\u0634\u062f\u060c \u0644\u0637\u0641\u0627\u064b \u0628\u0639\u062f\u0627\u064b \u062f\u0648\u0628\u0627\u0631\u0647 \u0627\u0645\u062a\u062d\u0627\u0646 \u06a9\u0646\u06cc\u062f.
|
||||
accountUpdatedMessage=\u062d\u0633\u0627\u0628 \u0634\u0645\u0627 \u0628\u0647 \u0631\u0648\u0632 \u0634\u062f\u0647 \u0627\u0633\u062a.
|
||||
accountPasswordUpdatedMessage=\u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u0634\u0645\u0627 \u0628\u0647 \u0631\u0648\u0632 \u0634\u062f\u0647 \u0627\u0633\u062a.
|
||||
delegationCompleteHeader=\u0648\u0631\u0648\u062f \u0628\u0627 \u0645\u0648\u0641\u0642\u06cc\u062a
|
||||
delegationCompleteMessage=\u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u06cc\u0646 \u067e\u0646\u062c\u0631\u0647 \u0645\u0631\u0648\u0631\u06af\u0631 \u0631\u0627 \u0628\u0628\u0646\u062f\u06cc\u062f \u0648 \u0628\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u06a9\u0646\u0633\u0648\u0644 \u062e\u0648\u062f \u0628\u0627\u0632\u06af\u0631\u062f\u06cc\u062f.
|
||||
delegationFailedHeader=\u0648\u0631\u0648\u062f \u0646\u0627\u0645\u0648\u0641\u0642 \u0628\u0648\u062f
|
||||
delegationFailedMessage=\u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u06cc\u0646 \u067e\u0646\u062c\u0631\u0647 \u0645\u0631\u0648\u0631\u06af\u0631 \u0631\u0627 \u0628\u0628\u0646\u062f\u06cc\u062f \u0648 \u0628\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u06a9\u0646\u0633\u0648\u0644 \u062e\u0648\u062f \u0628\u0631\u06af\u0631\u062f\u06cc\u062f \u0648 \u062f\u0648\u0628\u0627\u0631\u0647 \u0633\u0639\u06cc \u06a9\u0646\u06cc\u062f \u0648\u0627\u0631\u062f \u0634\u0648\u06cc\u062f.
|
||||
noAccessMessage=\u0628\u0630\u0648\u0646 \u062f\u0633\u062a\u0631\u0633\u06cc
|
||||
invalidPasswordMinLengthMessage=\u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u0646\u0627\u0645\u0639\u062a\u0628\u0631\: \u062d\u062f\u0627\u0642\u0644 \u0637\u0648\u0644 {0}.
|
||||
invalidPasswordMaxLengthMessage=\u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u0646\u0627\u0645\u0639\u062a\u0628\u0631\: \u062d\u062f\u0627\u06a9\u062b\u0631 \u0637\u0648\u0644 {0}.
|
||||
invalidPasswordMinDigitsMessage=\u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u0646\u0627\u0645\u0639\u062a\u0628\u0631\: \u0628\u0627\u06cc\u062f \u062d\u062f\u0627\u0642\u0644 \u062f\u0627\u0631\u0627\u06cc {0} \u0631\u0642\u0645 \u0639\u062f\u062f\u06cc \u0628\u0627\u0634\u062f.
|
||||
invalidPasswordMinLowerCaseCharsMessage=\u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u0646\u0627\u0645\u0639\u062a\u0628\u0631\: \u0628\u0627\u06cc\u062f \u062d\u062f\u0627\u0642\u0644 \u062f\u0627\u0631\u0627\u06cc {0} \u0646\u0648\u06cc\u0633\u0647 \u06a9\u0648\u0686\u06a9 \u0628\u0627\u0634\u062f.
|
||||
invalidPasswordMinUpperCaseCharsMessage=\u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u0646\u0627\u0645\u0639\u062a\u0628\u0631\: \u0628\u0627\u06cc\u062f \u062d\u062f\u0627\u0642\u0644 \u062f\u0627\u0631\u0627\u06cc {0} \u0646\u0648\u06cc\u0633\u0647 \u0628\u0632\u0631\u06af \u0628\u0627\u0634\u062f.
|
||||
invalidPasswordMinSpecialCharsMessage=\u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u0646\u0627\u0645\u0639\u062a\u0628\u0631\: \u0628\u0627\u06cc\u062f \u062d\u062f\u0627\u0642\u0644 \u062f\u0627\u0631\u0627\u06cc {0} \u06a9\u0627\u0631\u0627\u06a9\u062a\u0631 \u062e\u0627\u0635 \u0628\u0627\u0634\u062f.
|
||||
invalidPasswordNotUsernameMessage=\u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u0646\u0627\u0645\u0639\u062a\u0628\u0631\: \u0646\u0628\u0627\u06cc\u062f \u0628\u0631\u0627\u0628\u0631 \u0628\u0627 \u0646\u0627\u0645 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0628\u0627\u0634\u062f.
|
||||
invalidPasswordNotEmailMessage=\u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u0646\u0627\u0645\u0639\u062a\u0628\u0631\: \u0646\u0628\u0627\u06cc\u062f \u0628\u0631\u0627\u0628\u0631 \u0628\u0627 \u0627\u06cc\u0645\u06cc\u0644 \u0628\u0627\u0634\u062f.
|
||||
invalidPasswordRegexPatternMessage=\u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u0646\u0627\u0645\u0639\u062a\u0628\u0631\: \u0628\u0627 \u0627\u0644\u06af\u0648(\u0647\u0627\u06cc) regex \u0645\u0637\u0627\u0628\u0642\u062a \u0646\u062f\u0627\u0631\u062f.
|
||||
invalidPasswordHistoryMessage=\u06af\u0630\u0631\u0648\u0627\u0698\u0647 \u0646\u0627\u0645\u0639\u062a\u0628\u0631\: \u0646\u0628\u0627\u06cc\u062f \u0628\u0627 \u0647\u06cc\u0686 \u06cc\u06a9 \u0627\u0632 \u0631\u0645\u0632\u0647\u0627\u06cc \u0639\u0628\u0648\u0631 \u0627\u062e\u06cc\u0631 {0} \u0628\u0631\u0627\u0628\u0631 \u0628\u0627\u0634\u062f.
|
||||
invalidPasswordGenericMessage=\u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u0646\u0627\u0645\u0639\u062a\u0628\u0631\: \u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u062c\u062f\u06cc\u062f \u0628\u0627 \u062e\u0637 \u0645\u0634\u06cc \u0647\u0627\u06cc \u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u0645\u0637\u0627\u0628\u0642\u062a \u0646\u062f\u0627\u0631\u062f.
|
||||
failedToProcessResponseMessage=\u067e\u0627\u0633\u062e \u067e\u0631\u062f\u0627\u0632\u0634 \u0646\u0634\u062f
|
||||
httpsRequiredMessage=HTTPS \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u0627\u0633\u062a
|
||||
realmNotEnabledMessage=\u0642\u0644\u0645\u0631\u0648 \u0641\u0639\u0627\u0644 \u0646\u06cc\u0633\u062a
|
||||
invalidRequestMessage=\u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0646\u0627\u0645\u0639\u062a\u0628\u0631
|
||||
successLogout=\u0634\u0645\u0627 \u0627\u0632 \u0633\u06cc\u0633\u062a\u0645 \u062e\u0627\u0631\u062c \u0634\u062f\u0647 \u0627\u06cc\u062f
|
||||
failedLogout=\u062e\u0631\u0648\u062c \u0646\u0627\u0645\u0648\u0641\u0642 \u0628\u0648\u062f
|
||||
unknownLoginRequesterMessage=\u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0646\u0646\u062f\u0647 \u0648\u0631\u0648\u062f \u0646\u0627\u0645\u0634\u062e\u0635
|
||||
loginRequesterNotEnabledMessage=\u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0646\u0646\u062f\u0647 \u0648\u0631\u0648\u062f \u0641\u0639\u0627\u0644 \u0646\u06cc\u0633\u062a
|
||||
bearerOnlyMessage=\u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u0641\u0642\u0637 \u062d\u0627\u0645\u0644 \u0645\u062c\u0627\u0632 \u0628\u0647 \u0634\u0631\u0648\u0639 \u0648\u0631\u0648\u062f \u0628\u0647 \u0645\u0631\u0648\u0631\u06af\u0631 \u0646\u06cc\u0633\u062a\u0646\u062f
|
||||
standardFlowDisabledMessage=\u0645\u0634\u062a\u0631\u06cc \u0645\u062c\u0627\u0632 \u0628\u0647 \u0634\u0631\u0648\u0639 \u0648\u0631\u0648\u062f \u0628\u0647 \u0645\u0631\u0648\u0631\u06af\u0631 \u0628\u0627 response_type \u0646\u06cc\u0633\u062a. \u062c\u0631\u06cc\u0627\u0646 \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f \u0628\u0631\u0627\u06cc \u0645\u0634\u062a\u0631\u06cc \u063a\u06cc\u0631\u0641\u0639\u0627\u0644 \u0627\u0633\u062a.
|
||||
implicitFlowDisabledMessage=\u0645\u0634\u062a\u0631\u06cc \u0645\u062c\u0627\u0632 \u0628\u0647 \u0634\u0631\u0648\u0639 \u0648\u0631\u0648\u062f \u0628\u0647 \u0645\u0631\u0648\u0631\u06af\u0631 \u0628\u0627 answer_type \u0646\u06cc\u0633\u062a. \u062c\u0631\u06cc\u0627\u0646 \u0636\u0645\u0646\u06cc \u0628\u0631\u0627\u06cc \u0645\u0634\u062a\u0631\u06cc \u063a\u06cc\u0631\u0641\u0639\u0627\u0644 \u0627\u0633\u062a.
|
||||
invalidRedirectUriMessage=uri \u062a\u063a\u06cc\u06cc\u0631 \u0645\u0633\u06cc\u0631 \u0646\u0627\u0645\u0639\u062a\u0628\u0631 \u0627\u0633\u062a
|
||||
unsupportedNameIdFormatMessage=NameIDFormat \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0646\u0634\u062f\u0647
|
||||
invalidRequesterMessage=\u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0646\u0646\u062f\u0647 \u0646\u0627\u0645\u0639\u062a\u0628\u0631 \u0627\u0633\u062a
|
||||
registrationNotAllowedMessage=\u062b\u0628\u062a \u0646\u0627\u0645 \u0645\u062c\u0627\u0632 \u0646\u06cc\u0633\u062a
|
||||
resetCredentialNotAllowedMessage=\u0628\u0627\u0632\u0646\u0634\u0627\u0646\u06cc \u0627\u0639\u062a\u0628\u0627\u0631 \u0645\u062c\u0627\u0632 \u0646\u06cc\u0633\u062a
|
||||
permissionNotApprovedMessage=\u0645\u062c\u0648\u0632 \u062a\u0627\u06cc\u06cc\u062f \u0646\u0634\u062f
|
||||
noRelayStateInResponseMessage=\u0647\u06cc\u0686 \u062d\u0627\u0644\u062a \u0631\u0644\u0647 \u0627\u06cc \u062f\u0631 \u067e\u0627\u0633\u062e \u0627\u0632 \u0627\u0631\u0627\u0626\u0647 \u062f\u0647\u0646\u062f\u0647 \u0647\u0648\u06cc\u062a \u0648\u062c\u0648\u062f \u0646\u062f\u0627\u0631\u062f.
|
||||
insufficientPermissionMessage=\u0645\u062c\u0648\u0632\u0647\u0627\u06cc \u06a9\u0627\u0641\u06cc \u0628\u0631\u0627\u06cc \u067e\u06cc\u0648\u0646\u062f \u062f\u0627\u062f\u0646 \u0647\u0648\u06cc\u062a \u0647\u0627 \u0648\u062c\u0648\u062f \u0646\u062f\u0627\u0631\u062f.
|
||||
couldNotProceedWithAuthenticationRequestMessage=\u0646\u0645\u06cc\u200c\u062a\u0648\u0627\u0646 \u0628\u0627 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0628\u0647 \u0627\u0631\u0627\u0626\u0647\u200c\u062f\u0647\u0646\u062f\u0647 \u0647\u0648\u06cc\u062a \u0627\u062f\u0627\u0645\u0647 \u062f\u0627\u062f.
|
||||
couldNotObtainTokenMessage=\u0631\u0645\u0632 \u0627\u0632 \u0627\u0631\u0627\u0626\u0647 \u062f\u0647\u0646\u062f\u0647 \u0647\u0648\u06cc\u062a \u062f\u0631\u06cc\u0627\u0641\u062a \u0646\u0634\u062f.
|
||||
unexpectedErrorRetrievingTokenMessage=\u062e\u0637\u0627\u06cc \u063a\u06cc\u0631\u0645\u0646\u062a\u0638\u0631\u0647 \u0647\u0646\u06af\u0627\u0645 \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u0631\u0645\u0632 \u0627\u0632 \u0627\u0631\u0627\u0626\u0647 \u062f\u0647\u0646\u062f\u0647 \u0647\u0648\u06cc\u062a.
|
||||
unexpectedErrorHandlingResponseMessage=\u062e\u0637\u0627\u06cc \u063a\u06cc\u0631\u0645\u0646\u062a\u0638\u0631\u0647 \u0647\u0646\u06af\u0627\u0645 \u0631\u0633\u06cc\u062f\u06af\u06cc \u0628\u0647 \u067e\u0627\u0633\u062e \u0627\u0631\u0627\u0626\u0647\u200c\u062f\u0647\u0646\u062f\u0647 \u0647\u0648\u06cc\u062a.
|
||||
identityProviderAuthenticationFailedMessage=\u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0646\u0627\u0645\u0648\u0641\u0642 \u0628\u0648\u062f. \u0628\u0627 \u0627\u0631\u0627\u0626\u0647\u200c\u062f\u0647\u0646\u062f\u0647 \u0647\u0648\u06cc\u062a \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0627\u0645\u06a9\u0627\u0646\u200c\u067e\u0630\u06cc\u0631 \u0646\u06cc\u0633\u062a.
|
||||
couldNotSendAuthenticationRequestMessage=\u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0628\u0647 \u0627\u0631\u0627\u0626\u0647 \u062f\u0647\u0646\u062f\u0647 \u0647\u0648\u06cc\u062a \u0627\u0631\u0633\u0627\u0644 \u0646\u0634\u062f.
|
||||
unexpectedErrorHandlingRequestMessage=\u062e\u0637\u0627\u06cc \u063a\u06cc\u0631\u0645\u0646\u062a\u0638\u0631\u0647 \u0647\u0646\u06af\u0627\u0645 \u0631\u0633\u06cc\u062f\u06af\u06cc \u0628\u0647 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0628\u0647 \u0627\u0631\u0627\u0626\u0647\u200c\u062f\u0647\u0646\u062f\u0647 \u0647\u0648\u06cc\u062a.
|
||||
invalidAccessCodeMessage=\u06a9\u062f \u062f\u0633\u062a\u0631\u0633\u06cc \u0646\u0627\u0645\u0639\u062a\u0628\u0631.
|
||||
sessionNotActiveMessage=\u0646\u0634\u0633\u062a \u0641\u0639\u0627\u0644 \u0646\u06cc\u0633\u062a
|
||||
invalidCodeMessage=\u062e\u0637\u0627\u06cc\u06cc \u0631\u062e \u062f\u0627\u062f\u0647 \u0627\u0633\u062a\u060c \u0644\u0637\u0641\u0627\u064b \u062f\u0648\u0628\u0627\u0631\u0647 \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f \u0648\u0627\u0631\u062f \u0634\u0648\u06cc\u062f.
|
||||
cookieNotFoundMessage=\u06a9\u0648\u06a9\u06cc \u067e\u06cc\u062f\u0627 \u0646\u0634\u062f \u0644\u0637\u0641\u0627 \u0645\u0637\u0645\u0626\u0646 \u0634\u0648\u06cc\u062f \u06a9\u0647 \u06a9\u0648\u06a9\u06cc \u0647\u0627 \u062f\u0631 \u0645\u0631\u0648\u0631\u06af\u0631 \u0634\u0645\u0627 \u0641\u0639\u0627\u0644 \u0647\u0633\u062a\u0646\u062f.
|
||||
insufficientLevelOfAuthentication=\u0633\u0637\u062d \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u06cc \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0628\u0631\u0622\u0648\u0631\u062f\u0647 \u0646\u0634\u062f\u0647 \u0627\u0633\u062a.
|
||||
identityProviderUnexpectedErrorMessage=\u062e\u0637\u0627\u06cc \u063a\u06cc\u0631\u0645\u0646\u062a\u0638\u0631\u0647 \u0647\u0646\u06af\u0627\u0645 \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0628\u0627 \u0627\u0631\u0627\u0626\u0647 \u062f\u0647\u0646\u062f\u0647 \u0647\u0648\u06cc\u062a
|
||||
identityProviderMissingStateMessage=\u067e\u0627\u0631\u0627\u0645\u062a\u0631 \u062d\u0627\u0644\u062a \u062f\u0631 \u067e\u0627\u0633\u062e \u0627\u0632 \u0627\u0631\u0627\u0626\u0647 \u062f\u0647\u0646\u062f\u0647 \u0647\u0648\u06cc\u062a \u0648\u062c\u0648\u062f \u0646\u062f\u0627\u0631\u062f.
|
||||
identityProviderInvalidResponseMessage=\u067e\u0627\u0633\u062e \u0646\u0627\u0645\u0639\u062a\u0628\u0631 \u0627\u0632 \u0627\u0631\u0627\u0626\u0647 \u062f\u0647\u0646\u062f\u0647 \u0647\u0648\u06cc\u062a.
|
||||
identityProviderInvalidSignatureMessage=\u0627\u0645\u0636\u0627\u06cc \u0646\u0627\u0645\u0639\u062a\u0628\u0631 \u062f\u0631 \u067e\u0627\u0633\u062e \u0627\u0632 \u0627\u0631\u0627\u0626\u0647 \u062f\u0647\u0646\u062f\u0647 \u0647\u0648\u06cc\u062a.
|
||||
identityProviderNotFoundMessage=\u0627\u0631\u0627\u0626\u0647 \u062f\u0647\u0646\u062f\u0647 \u0647\u0648\u06cc\u062a \u0628\u0627 \u0634\u0646\u0627\u0633\u0647 \u06cc\u0627\u0641\u062a \u0646\u0634\u062f.
|
||||
identityProviderLinkSuccess=\u0634\u0645\u0627 \u0628\u0627 \u0645\u0648\u0641\u0642\u06cc\u062a \u0627\u06cc\u0645\u06cc\u0644 \u062e\u0648\u062f \u0631\u0627 \u062a\u0623\u06cc\u06cc\u062f \u06a9\u0631\u062f\u06cc\u062f. \u0644\u0637\u0641\u0627\u064b \u0628\u0647 \u0645\u0631\u0648\u0631\u06af\u0631 \u0627\u0635\u0644\u06cc \u062e\u0648\u062f \u0628\u0631\u06af\u0631\u062f\u06cc\u062f \u0648 \u062f\u0631 \u0622\u0646\u062c\u0627 \u0628\u0627 \u0648\u0631\u0648\u062f \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645 \u0627\u062f\u0627\u0645\u0647 \u062f\u0647\u06cc\u062f.
|
||||
staleCodeMessage=\u0627\u06cc\u0646 \u0635\u0641\u062d\u0647 \u062f\u06cc\u06af\u0631 \u0645\u0639\u062a\u0628\u0631 \u0646\u06cc\u0633\u062a\u060c \u0644\u0637\u0641\u0627\u064b \u0628\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f \u0628\u0631\u06af\u0631\u062f\u06cc\u062f \u0648 \u062f\u0648\u0628\u0627\u0631\u0647 \u0648\u0627\u0631\u062f \u0634\u0648\u06cc\u062f
|
||||
realmSupportsNoCredentialsMessage=\u0642\u0644\u0645\u0631\u0648 \u0627\u0632 \u0647\u06cc\u0686 \u0646\u0648\u0639 \u0627\u0639\u062a\u0628\u0627\u0631\u0646\u0627\u0645\u0647 \u0627\u06cc \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0646\u0645\u06cc \u06a9\u0646\u062f.
|
||||
credentialSetupRequired=\u0646\u0645\u06cc \u062a\u0648\u0627\u0646 \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645 \u0648\u0627\u0631\u062f \u0634\u062f\u060c \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u0627\u0639\u062a\u0628\u0627\u0631\u0646\u0627\u0645\u0647 \u0644\u0627\u0632\u0645 \u0627\u0633\u062a.
|
||||
identityProviderNotUniqueMessage=\u0642\u0644\u0645\u0631\u0648 \u0627\u0632 \u0686\u0646\u062f\u06cc\u0646 \u0627\u0631\u0627\u0626\u0647 \u062f\u0647\u0646\u062f\u0647 \u0647\u0648\u06cc\u062a \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0645\u06cc \u06a9\u0646\u062f. \u0646\u0645\u06cc \u062a\u0648\u0627\u0646 \u062a\u0639\u06cc\u06cc\u0646 \u06a9\u0631\u062f \u06a9\u0647 \u0628\u0627 \u06a9\u062f\u0627\u0645 \u0627\u0631\u0627\u0626\u0647 \u062f\u0647\u0646\u062f\u0647 \u0647\u0648\u06cc\u062a \u0628\u0627\u06cc\u062f \u0628\u0631\u0627\u06cc \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0634\u0648\u062f.
|
||||
emailVerifiedMessage=\u0622\u062f\u0631\u0633 \u0627\u06cc\u0645\u06cc\u0644 \u0634\u0645\u0627 \u062a\u0627\u06cc\u06cc\u062f \u0634\u062f\u0647 \u0627\u0633\u062a.
|
||||
staleEmailVerificationLink=\u067e\u06cc\u0648\u0646\u062f\u06cc \u06a9\u0647 \u0631\u0648\u06cc \u0622\u0646 \u06a9\u0644\u06cc\u06a9 \u06a9\u0631\u062f\u06cc\u062f \u06cc\u06a9 \u067e\u06cc\u0648\u0646\u062f \u0642\u062f\u06cc\u0645\u06cc \u0627\u0633\u062a \u0648 \u062f\u06cc\u06af\u0631 \u0645\u0639\u062a\u0628\u0631 \u0646\u06cc\u0633\u062a. \u0634\u0627\u06cc\u062f \u0642\u0628\u0644\u0627 \u0627\u06cc\u0645\u06cc\u0644 \u062e\u0648\u062f \u0631\u0627 \u062a\u0627\u06cc\u06cc\u062f \u06a9\u0631\u062f\u0647 \u0628\u0627\u0634\u06cc\u062f.
|
||||
identityProviderAlreadyLinkedMessage=\u0647\u0648\u06cc\u062a \u0641\u062f\u0631\u0627\u0644 \u0628\u0627\u0632\u06af\u0631\u062f\u0627\u0646\u062f\u0647 \u0634\u062f\u0647 \u062a\u0648\u0633\u0637 {0} \u0642\u0628\u0644\u0627\u064b \u0628\u0647 \u06a9\u0627\u0631\u0628\u0631 \u062f\u06cc\u06af\u0631\u06cc \u067e\u06cc\u0648\u0646\u062f \u062f\u0627\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a.
|
||||
confirmAccountLinking=\u067e\u06cc\u0648\u0646\u062f \u062d\u0633\u0627\u0628 {0} \u0627\u0631\u0627\u0626\u0647 \u062f\u0647\u0646\u062f\u0647 \u0647\u0648\u06cc\u062a {1} \u0631\u0627 \u0628\u0627 \u062d\u0633\u0627\u0628 \u062e\u0648\u062f \u062a\u0623\u06cc\u06cc\u062f \u06a9\u0646\u06cc\u062f.
|
||||
confirmEmailAddressVerification=\u0627\u0639\u062a\u0628\u0627\u0631 \u0622\u062f\u0631\u0633 \u0627\u06cc\u0645\u06cc\u0644 {0} \u0631\u0627 \u062a\u0623\u06cc\u06cc\u062f \u06a9\u0646\u06cc\u062f.
|
||||
confirmExecutionOfActions=\u0639\u0645\u0644(\u0647\u0627\u06cc) \u0632\u06cc\u0631 \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u062f
|
||||
backToApplication=« \u0628\u0627\u0632\u06af\u0634\u062a \u0628\u0647 \u0628\u0631\u0646\u0627\u0645\u0647
|
||||
missingParameterMessage=\u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc \u0627\u0632 \u062f\u0633\u062a \u0631\u0641\u062a\u0647\: {0}
|
||||
clientNotFoundMessage=\u0645\u0634\u062a\u0631\u06cc \u06cc\u0627\u0641\u062a \u0646\u0634\u062f
|
||||
clientDisabledMessage=\u0645\u0634\u062a\u0631\u06cc \u063a\u06cc\u0631\u0641\u0639\u0627\u0644 \u0627\u0633\u062a.
|
||||
invalidParameterMessage=\u067e\u0627\u0631\u0627\u0645\u062a\u0631 \u0646\u0627\u0645\u0639\u062a\u0628\u0631\: {0}
|
||||
alreadyLoggedIn=\u0634\u0645\u0627 \u067e\u06cc\u0634\u062a\u0631 \u0648\u0627\u0631\u062f \u0634\u062f\u0647\u0627\u06cc\u062f - \u0644\u0627\u06af\u06cc\u0646 \u06a9\u0631\u062f\u0647 \u0627\u06cc\u062f.
|
||||
differentUserAuthenticated=\u0634\u0645\u0627 \u0642\u0628\u0644\u0627\u064b \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06a9\u0627\u0631\u0628\u0631 \u062f\u06cc\u06af\u0631\u06cc ''{0}'' \u062f\u0631 \u0627\u06cc\u0646 \u062c\u0644\u0633\u0647 \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0634\u062f\u0647 \u0627\u06cc\u062f. \u0644\u0637\u0641\u0627 \u0627\u0628\u062a\u062f\u0627 \u0627\u0632 \u0633\u06cc\u0633\u062a\u0645 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f.
|
||||
brokerLinkingSessionExpired=\u062f\u0631\u062e\u0648\u0627\u0633\u062a \u067e\u06cc\u0648\u0646\u062f \u062d\u0633\u0627\u0628 \u06a9\u0627\u0631\u06af\u0632\u0627\u0631\u06cc \u062f\u0627\u062f\u0647 \u0627\u0633\u062a\u060c \u0627\u0645\u0627 \u062c\u0644\u0633\u0647 \u0641\u0639\u0644\u06cc \u062f\u06cc\u06af\u0631 \u0645\u0639\u062a\u0628\u0631 \u0646\u06cc\u0633\u062a.
|
||||
proceedWithAction=» \u0628\u0631\u0627\u06cc \u0627\u062f\u0627\u0645\u0647 \u0627\u06cc\u0646\u062c\u0627 \u0631\u0627 \u06a9\u0644\u06cc\u06a9 \u06a9\u0646\u06cc\u062f
|
||||
acrNotFulfilled=\u0627\u0644\u0632\u0627\u0645\u0627\u062a \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0628\u0631\u0622\u0648\u0631\u062f\u0647 \u0646\u0634\u062f\u0647 \u0627\u0633\u062a
|
||||
requiredAction.CONFIGURE_TOTP=OTP \u0631\u0627 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f
|
||||
requiredAction.TERMS_AND_CONDITIONS=\u0634\u0631\u0627\u06cc\u0637 \u0648 \u0636\u0648\u0627\u0628\u0637
|
||||
requiredAction.UPDATE_PASSWORD=\u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u0631\u0627 \u0628\u0647 \u0631\u0648\u0632 \u06a9\u0646\u06cc\u062f
|
||||
requiredAction.UPDATE_PROFILE=\u0628\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u067e\u0631\u0648\u0641\u0627\u06cc\u0644
|
||||
requiredAction.VERIFY_EMAIL=\u062a\u0623\u06cc\u06cc\u062f \u0627\u06cc\u0645\u06cc\u0644
|
||||
requiredAction.CONFIGURE_RECOVERY_AUTHN_CODES=\u06a9\u062f\u0647\u0627\u06cc \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f
|
||||
requiredAction.webauthn-register-passwordless=Webauthn \u062b\u0628\u062a \u0646\u0627\u0645 \u0628\u062f\u0648\u0646 \u0631\u0645\u0632 \u0639\u0628\u0648\u0631
|
||||
invalidTokenRequiredActions=\u0627\u0642\u062f\u0627\u0645\u0627\u062a \u0644\u0627\u0632\u0645 \u0645\u0648\u062c\u0648\u062f \u062f\u0631 \u067e\u06cc\u0648\u0646\u062f \u0645\u0639\u062a\u0628\u0631 \u0646\u06cc\u0633\u062a\u0646\u062f
|
||||
doX509Login=\u0634\u0645\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646\: \u0648\u0627\u0631\u062f \u0633\u06cc\u0633\u062a\u0645 \u062e\u0648\u0627\u0647\u06cc\u062f \u0634\u062f\:
|
||||
clientCertificate=\u06af\u0648\u0627\u0647\u06cc \u0645\u0634\u062a\u0631\u06cc X509\:
|
||||
noCertificate=[\u0628\u062f\u0648\u0646 \u06af\u0648\u0627\u0647\u06cc]
|
||||
pageNotFound=\u0635\u0641\u062d\u0647 \u06cc\u0627\u0641\u062a \u0646\u0634\u062f
|
||||
internalServerError=\u06cc\u06a9 \u062e\u0637\u0627\u06cc \u0633\u0631\u0648\u0631 \u062f\u0627\u062e\u0644\u06cc \u0631\u062e \u062f\u0627\u062f\u0647 \u0627\u0633\u062a
|
||||
console-username=\u0646\u0627\u0645 \u06a9\u0627\u0631\u0628\u0631\u06cc\:
|
||||
console-password=\u0631\u0645\u0632 \u0639\u0628\u0648\u0631\:
|
||||
console-otp=\u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u06cc\u06a9\u0628\u0627\u0631 \u0645\u0635\u0631\u0641\:
|
||||
console-new-password=\u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u062c\u062f\u06cc\u062f\:
|
||||
console-confirm-password=\u062a\u0627\u06cc\u06cc\u062f \u0631\u0645\u0632 \u0639\u0628\u0648\u0631\:
|
||||
console-update-password=\u0628\u0647 \u0631\u0648\u0632 \u0631\u0633\u0627\u0646\u06cc \u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u0634\u0645\u0627 \u0627\u0644\u0632\u0627\u0645\u06cc \u0627\u0633\u062a.
|
||||
console-verify-email=\u0634\u0645\u0627 \u0628\u0627\u06cc\u062f \u0622\u062f\u0631\u0633 \u0627\u06cc\u0645\u06cc\u0644 \u062e\u0648\u062f \u0631\u0627 \u062a\u0623\u06cc\u06cc\u062f \u06a9\u0646\u06cc\u062f. \u0645\u0627 \u06cc\u06a9 \u0627\u06cc\u0645\u06cc\u0644 \u0628\u0647 {0} \u0627\u0631\u0633\u0627\u0644 \u06a9\u0631\u062f\u06cc\u0645 \u06a9\u0647 \u062d\u0627\u0648\u06cc \u06a9\u062f \u062a\u0623\u06cc\u06cc\u062f \u0627\u0633\u062a. \u0644\u0637\u0641\u0627 \u0627\u06cc\u0646 \u06a9\u062f \u0631\u0627 \u062f\u0631 \u0648\u0631\u0648\u062f\u06cc \u0632\u06cc\u0631 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f.
|
||||
console-email-code=\u06a9\u062f \u0627\u06cc\u0645\u06cc\u0644\:
|
||||
console-accept-terms=\u0634\u0631\u0627\u06cc\u0637 \u0631\u0627 \u0645\u06cc\u200c\u067e\u0630\u06cc\u0631\u06cc\u062f\u061f [y/n]\:
|
||||
console-accept=y
|
||||
openshift.scope.user_info=\u0627\u0637\u0644\u0627\u0639\u0627\u062a \u06a9\u0627\u0631\u0628\u0631
|
||||
openshift.scope.user_check-access=\u0627\u0637\u0644\u0627\u0639\u0627\u062a \u062f\u0633\u062a\u0631\u0633\u06cc \u06a9\u0627\u0631\u0628\u0631
|
||||
openshift.scope.user_full=\u062f\u0633\u062a\u0631\u0633\u06cc \u06a9\u0627\u0645\u0644
|
||||
openshift.scope.list-projects=\u0644\u06cc\u0633\u062a \u067e\u0631\u0648\u0698\u0647 \u0647\u0627
|
||||
saml.post-form.title=\u062a\u063a\u06cc\u06cc\u0631 \u0645\u0633\u06cc\u0631 \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a
|
||||
saml.post-form.message=\u062f\u0631 \u062d\u0627\u0644 \u062a\u063a\u06cc\u06cc\u0631 \u0645\u0633\u06cc\u0631\u060c \u0644\u0637\u0641\u0627 \u0635\u0628\u0631 \u06a9\u0646\u06cc\u062f.
|
||||
saml.post-form.js-disabled=\u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u063a\u06cc\u0631\u0641\u0639\u0627\u0644 \u0627\u0633\u062a. \u0645\u0627 \u0642\u0648\u06cc\u0627\u064b \u062a\u0648\u0635\u06cc\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645 \u0622\u0646 \u0631\u0627 \u0641\u0639\u0627\u0644 \u06a9\u0646\u06cc\u062f. \u0628\u0631\u0627\u06cc \u0627\u062f\u0627\u0645\u0647 \u0631\u0648\u06cc \u062f\u06a9\u0645\u0647 \u0632\u06cc\u0631 \u06a9\u0644\u06cc\u06a9 \u06a9\u0646\u06cc\u062f.
|
||||
saml.artifactResolutionServiceInvalidResponse=\u0642\u0627\u062f\u0631 \u0628\u0647 \u062d\u0644 \u0645\u0635\u0646\u0648\u0639 \u0646\u06cc\u0633\u062a.
|
||||
otp-display-name=\u0628\u0631\u0646\u0627\u0645\u0647 Authenticator
|
||||
otp-help-text=\u06cc\u06a9 \u06a9\u062f \u062a\u0623\u06cc\u06cc\u062f \u0631\u0627 \u0627\u0632 \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f.
|
||||
password-display-name=\u0631\u0645\u0632 \u0639\u0628\u0648\u0631
|
||||
password-help-text=\u0628\u0627 \u0648\u0627\u0631\u062f \u06a9\u0631\u062f\u0646 \u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u062e\u0648\u062f \u0648\u0627\u0631\u062f \u0634\u0648\u06cc\u062f.
|
||||
auth-username-form-display-name=\u0646\u0627\u0645 \u06a9\u0627\u0631\u0628\u0631\u06cc
|
||||
auth-username-form-help-text=\u0628\u0627 \u0648\u0627\u0631\u062f \u06a9\u0631\u062f\u0646 \u0646\u0627\u0645 \u06a9\u0627\u0631\u0628\u0631\u06cc \u062e\u0648\u062f \u0648\u0627\u0631\u062f \u0633\u06cc\u0633\u062a\u0645 \u0634\u0648\u06cc\u062f
|
||||
auth-username-password-form-display-name=\u0646\u0627\u0645 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0648 \u0631\u0645\u0632 \u0639\u0628\u0648\u0631
|
||||
auth-username-password-form-help-text=\u0628\u0627 \u0648\u0627\u0631\u062f \u06a9\u0631\u062f\u0646 \u0646\u0627\u0645 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0648 \u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u062e\u0648\u062f \u0648\u0627\u0631\u062f \u0634\u0648\u06cc\u062f.
|
||||
auth-recovery-authn-code-form-display-name=\u06a9\u062f \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc
|
||||
auth-recovery-authn-code-form-help-text=\u06cc\u06a9 \u06a9\u062f \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u0631\u0627 \u0627\u0632 \u0644\u06cc\u0633\u062a\u06cc \u06a9\u0647 \u0642\u0628\u0644\u0627 \u0627\u06cc\u062c\u0627\u062f \u0634\u062f\u0647 \u0627\u0633\u062a \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f.
|
||||
auth-recovery-code-info-message=\u06a9\u062f \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u0645\u0634\u062e\u0635 \u0634\u062f\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f.
|
||||
auth-recovery-code-prompt=\u06a9\u062f \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \#{0}
|
||||
auth-recovery-code-header=\u0628\u0627 \u06cc\u06a9 \u06a9\u062f \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u0648\u0627\u0631\u062f \u0634\u0648\u06cc\u062f
|
||||
recovery-codes-error-invalid=\u06a9\u062f \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u0646\u0627\u0645\u0639\u062a\u0628\u0631 \u0627\u0633\u062a
|
||||
recovery-code-config-header=\u06a9\u062f\u0647\u0627\u06cc \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc
|
||||
recovery-code-config-warning-title=\u0627\u06cc\u0646 \u06a9\u062f\u0647\u0627\u06cc \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u067e\u0633 \u0627\u0632 \u062e\u0631\u0648\u062c \u0627\u0632 \u0627\u06cc\u0646 \u0635\u0641\u062d\u0647 \u062f\u06cc\u06af\u0631 \u0638\u0627\u0647\u0631 \u0646\u0645\u06cc \u0634\u0648\u0646\u062f
|
||||
recovery-code-config-warning-message=\u0645\u0637\u0645\u0626\u0646 \u0634\u0648\u06cc\u062f \u06a9\u0647 \u0622\u0646\u0647\u0627 \u0631\u0627 \u0686\u0627\u067e\u060c \u062f\u0627\u0646\u0644\u0648\u062f \u06cc\u0627 \u062f\u0631 \u06cc\u06a9 \u0645\u062f\u06cc\u0631 \u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u06a9\u067e\u06cc \u06a9\u0646\u06cc\u062f \u0648 \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0646\u06cc\u062f. \u0644\u063a\u0648 \u0627\u06cc\u0646 \u062a\u0646\u0638\u06cc\u0645\u060c \u0627\u06cc\u0646 \u06a9\u062f\u0647\u0627\u06cc \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u0631\u0627 \u0627\u0632 \u062d\u0633\u0627\u0628 \u0634\u0645\u0627 \u062d\u0630\u0641 \u0645\u06cc \u06a9\u0646\u062f.
|
||||
recovery-codes-print=\u0686\u0627\u067e
|
||||
recovery-codes-download=\u062f\u0627\u0646\u0644\u0648\u062f
|
||||
recovery-codes-copy=\u06a9\u067e\u06cc
|
||||
recovery-codes-copied=\u06a9\u067e\u06cc \u0634\u062f
|
||||
recovery-codes-confirmation-message=\u0645\u0646 \u0627\u06cc\u0646 \u06a9\u062f\u0647\u0627 \u0631\u0627 \u062f\u0631 \u062c\u0627\u06cc\u06cc \u0627\u0645\u0646 \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0631\u062f\u0647 \u0627\u0645
|
||||
recovery-codes-action-complete=\u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0627\u0645\u0644
|
||||
recovery-codes-action-cancel=\u0644\u063a\u0648 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc
|
||||
recovery-codes-download-file-header=\u0627\u06cc\u0646 \u06a9\u062f\u0647\u0627\u06cc \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u0631\u0627 \u062f\u0631 \u062c\u0627\u06cc\u06cc \u0627\u0645\u0646 \u0646\u06af\u0647 \u062f\u0627\u0631\u06cc\u062f.
|
||||
recovery-codes-download-file-description=\u06a9\u062f\u0647\u0627\u06cc \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u06af\u0630\u0631\u0648\u0627\u0698\u0647 \u0647\u0627\u06cc \u06cc\u06a9\u0628\u0627\u0631 \u0645\u0635\u0631\u0641 \u0647\u0633\u062a\u0646\u062f \u06a9\u0647 \u0628\u0647 \u0634\u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc \u062f\u0647\u0646\u062f \u062f\u0631 \u0635\u0648\u0631\u062a \u0639\u062f\u0645 \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u062e\u0648\u062f \u0648\u0627\u0631\u062f \u062d\u0633\u0627\u0628 \u06a9\u0627\u0631\u0628\u0631\u06cc \u062e\u0648\u062f \u0634\u0648\u06cc\u062f.
|
||||
recovery-codes-download-file-date=\u0627\u06cc\u0646 \u06a9\u062f\u0647\u0627 \u062f\u0631 \u062a\u0627\u0631\u06cc\u062e \u062a\u0648\u0644\u06cc\u062f \u0634\u062f\u0646\u062f
|
||||
recovery-codes-label-default=\u06a9\u062f\u0647\u0627\u06cc \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc
|
||||
webauthn-display-name=\u06a9\u0644\u06cc\u062f \u0627\u0645\u0646\u06cc\u062a\u06cc
|
||||
webauthn-help-text=\u0628\u0631\u0627\u06cc \u0648\u0631\u0648\u062f \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645 \u0627\u0632 \u06a9\u0644\u06cc\u062f \u0627\u0645\u0646\u06cc\u062a\u06cc \u062e\u0648\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.
|
||||
webauthn-passwordless-display-name=\u06a9\u0644\u06cc\u062f \u0627\u0645\u0646\u06cc\u062a\u06cc
|
||||
webauthn-passwordless-help-text=\u0627\u0632 \u06a9\u0644\u06cc\u062f \u0627\u0645\u0646\u06cc\u062a\u06cc \u062e\u0648\u062f \u0628\u0631\u0627\u06cc \u0648\u0631\u0648\u062f \u0628\u062f\u0648\u0646 \u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.
|
||||
webauthn-login-title=\u0648\u0631\u0648\u062f \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645 \u06a9\u0644\u06cc\u062f \u0627\u0645\u0646\u06cc\u062a\u06cc
|
||||
webauthn-registration-title=\u062b\u0628\u062a \u06a9\u0644\u06cc\u062f \u0627\u0645\u0646\u06cc\u062a\u06cc
|
||||
webauthn-available-authenticators=\u06a9\u0644\u06cc\u062f\u0647\u0627\u06cc \u0627\u0645\u0646\u06cc\u062a\u06cc \u0645\u0648\u062c\u0648\u062f
|
||||
webauthn-unsupported-browser-text=WebAuthn \u062a\u0648\u0633\u0637 \u0627\u06cc\u0646 \u0645\u0631\u0648\u0631\u06af\u0631 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0646\u0645\u06cc \u0634\u0648\u062f. \u06cc\u06a9\u06cc \u062f\u06cc\u06af\u0631 \u0631\u0627 \u0627\u0645\u062a\u062d\u0627\u0646 \u06a9\u0646\u06cc\u062f \u06cc\u0627 \u0628\u0627 \u0633\u0631\u067e\u0631\u0633\u062a \u062e\u0648\u062f \u062a\u0645\u0627\u0633 \u0628\u06af\u06cc\u0631\u06cc\u062f.
|
||||
webauthn-doAuthenticate=\u0628\u0627 \u06a9\u0644\u06cc\u062f \u0627\u0645\u0646\u06cc\u062a\u06cc \u0648\u0627\u0631\u062f \u0634\u0648\u06cc\u062f
|
||||
webauthn-createdAt-label=\u0627\u06cc\u062c\u0627\u062f \u0634\u062f\u0647 \u062f\u0631
|
||||
webauthn-error-title=\u062e\u0637\u0627\u06cc \u06a9\u0644\u06cc\u062f \u0627\u0645\u0646\u06cc\u062a\u06cc
|
||||
webauthn-error-registration=\u06a9\u0644\u06cc\u062f \u0627\u0645\u0646\u06cc\u062a\u06cc \u0634\u0645\u0627 \u062b\u0628\u062a \u0646\u0634\u062f.<br/> {0}
|
||||
webauthn-error-api-get=\u0628\u0627 \u06a9\u0644\u06cc\u062f \u0627\u0645\u0646\u06cc\u062a\u06cc \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0627\u0646\u062c\u0627\u0645 \u0646\u0634\u062f.<br/> {0}
|
||||
webauthn-error-different-user=\u0627\u0648\u0644\u06cc\u0646 \u06a9\u0627\u0631\u0628\u0631 \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0634\u062f\u0647 \u06a9\u0633\u06cc \u0646\u06cc\u0633\u062a \u06a9\u0647 \u062a\u0648\u0633\u0637 \u06a9\u0644\u06cc\u062f \u0627\u0645\u0646\u06cc\u062a\u06cc \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0634\u062f\u0647 \u0627\u0633\u062a.
|
||||
webauthn-error-auth-verification=\u0646\u062a\u06cc\u062c\u0647 \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u06a9\u0644\u06cc\u062f \u0627\u0645\u0646\u06cc\u062a\u06cc \u0646\u0627\u0645\u0639\u062a\u0628\u0631 \u0627\u0633\u062a.<br/> {0}
|
||||
webauthn-error-register-verification=\u0646\u062a\u06cc\u062c\u0647 \u062b\u0628\u062a \u06a9\u0644\u06cc\u062f \u0627\u0645\u0646\u06cc\u062a\u06cc \u0646\u0627\u0645\u0639\u062a\u0628\u0631 \u0627\u0633\u062a.<br/> {0}
|
||||
webauthn-error-user-not-found=\u06a9\u0627\u0631\u0628\u0631 \u0646\u0627\u0634\u0646\u0627\u0633 \u0628\u0627 \u06a9\u0644\u06cc\u062f \u0627\u0645\u0646\u06cc\u062a\u06cc \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0634\u062f\u0647 \u0627\u0633\u062a.
|
||||
identity-provider-redirector=\u0628\u0627 \u06cc\u06a9 \u0627\u0631\u0627\u0626\u0647\u200c\u062f\u0647\u0646\u062f\u0647 \u0647\u0648\u06cc\u062a \u062f\u06cc\u06af\u0631 \u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u0631\u0642\u0631\u0627\u0631 \u06a9\u0646\u06cc\u062f
|
||||
identity-provider-login-label=\u06cc\u0627 \u0628\u0627 \u0648\u0627\u0631\u062f \u0634\u0648\u06cc\u062f
|
||||
idp-email-verification-display-name=\u062a\u0627\u06cc\u06cc\u062f \u0627\u06cc\u0645\u06cc\u0644
|
||||
idp-email-verification-help-text=\u062d\u0633\u0627\u0628 \u062e\u0648\u062f \u0631\u0627 \u0628\u0627 \u0627\u0639\u062a\u0628\u0627\u0631\u0633\u0646\u062c\u06cc \u0627\u06cc\u0645\u06cc\u0644 \u062e\u0648\u062f \u067e\u06cc\u0648\u0646\u062f \u062f\u0647\u06cc\u062f.
|
||||
idp-username-password-form-display-name=\u0646\u0627\u0645 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0648 \u0631\u0645\u0632 \u0639\u0628\u0648\u0631
|
||||
idp-username-password-form-help-text=\u0628\u0627 \u0648\u0631\u0648\u062f \u062d\u0633\u0627\u0628 \u06a9\u0627\u0631\u0628\u0631\u06cc \u062e\u0648\u062f \u0631\u0627 \u067e\u06cc\u0648\u0646\u062f \u062f\u0647\u06cc\u062f.
|
||||
finalDeletionConfirmation=\u0627\u06af\u0631 \u062d\u0633\u0627\u0628 \u062e\u0648\u062f \u0631\u0627 \u062d\u0630\u0641 \u06a9\u0646\u06cc\u062f\u060c \u0642\u0627\u0628\u0644 \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u0646\u06cc\u0633\u062a. \u0628\u0631\u0627\u06cc \u062d\u0641\u0638 \u062d\u0633\u0627\u0628 \u062e\u0648\u062f\u060c \u0631\u0648\u06cc \u0644\u063a\u0648 \u06a9\u0644\u06cc\u06a9 \u06a9\u0646\u06cc\u062f.
|
||||
irreversibleAction=\u0627\u06cc\u0646 \u0639\u0645\u0644 \u0628\u0631\u06af\u0634\u062a \u0646\u0627\u067e\u0630\u06cc\u0631 \u0627\u0633\u062a
|
||||
deleteAccountConfirm=\u062a\u0627\u06cc\u06cc\u062f \u062d\u0630\u0641 \u062d\u0633\u0627\u0628
|
||||
deletingImplies=\u062d\u0630\u0641 \u062d\u0633\u0627\u0628 \u0628\u0647 \u0627\u06cc\u0646 \u0645\u0639\u0646\u06cc \u0627\u0633\u062a\:
|
||||
errasingData=\u067e\u0627\u06a9 \u06a9\u0631\u062f\u0646 \u062a\u0645\u0627\u0645 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0634\u0645\u0627
|
||||
loggingOutImmediately=\u062e\u0631\u0648\u062c \u0628\u0644\u0627\u0641\u0627\u0635\u0644\u0647 \u0634\u0645\u0627
|
||||
accountUnusable=\u0647\u0631 \u06af\u0648\u0646\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0628\u0639\u062f\u06cc \u0627\u0632 \u0628\u0631\u0646\u0627\u0645\u0647 \u0628\u0627 \u0627\u06cc\u0646 \u062d\u0633\u0627\u0628 \u0627\u0645\u06a9\u0627\u0646 \u067e\u0630\u06cc\u0631 \u0646\u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f
|
||||
userDeletedSuccessfully=\u06a9\u0627\u0631\u0628\u0631 \u0628\u0627 \u0645\u0648\u0641\u0642\u06cc\u062a \u062d\u0630\u0641 \u0634\u062f
|
||||
access-denied=\u062f\u0633\u062a\u0631\u0633\u06cc \u0631\u062f \u0634\u062f
|
||||
access-denied-when-idp-auth=\u0647\u0646\u06af\u0627\u0645 \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0628\u0627 {0}\u060c \u062f\u0633\u062a\u0631\u0633\u06cc \u0645\u0645\u0646\u0648\u0639 \u0634\u062f
|
||||
frontchannel-logout.title=\u062e\u0631\u0648\u062c \u0627\u0632 \u0633\u06cc\u0633\u062a\u0645
|
||||
frontchannel-logout.message=\u0634\u0645\u0627 \u062f\u0631 \u062d\u0627\u0644 \u062e\u0631\u0648\u062c \u0627\u0632 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u0632\u06cc\u0631 \u0647\u0633\u062a\u06cc\u062f
|
||||
logoutConfirmTitle=\u062e\u0631\u0648\u062c
|
||||
logoutConfirmHeader=\u0622\u06cc\u0627 \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u062f \u0627\u0632 \u0633\u06cc\u0633\u062a\u0645 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f\u061f
|
||||
doLogout=\u062e\u0631\u0648\u062c
|
||||
readOnlyUsernameMessage=\u0634\u0645\u0627 \u0646\u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0646\u0627\u0645 \u06a9\u0627\u0631\u0628\u0631\u06cc \u062e\u0648\u062f \u0631\u0627 \u0628\u0647 \u0631\u0648\u0632 \u06a9\u0646\u06cc\u062f \u0632\u06cc\u0631\u0627 \u0641\u0642\u0637 \u062e\u0648\u0627\u0646\u062f\u0646\u06cc \u0627\u0633\u062a.
|
||||
shouldBeEqual={0} \u0628\u0627\u06cc\u062f \u0628\u0631\u0627\u0628\u0631 \u0628\u0627\u0634\u062f \u0628\u0627 {1}
|
||||
shouldBeDifferent={0} \u0628\u0627\u06cc\u062f \u0645\u062a\u0641\u0627\u0648\u062a \u0628\u0627\u0634\u062f \u0627\u0632 {1}
|
||||
shouldMatchPattern=\u0627\u0644\u06af\u0648 \u0628\u0627\u06cc\u062f \u0645\u0637\u0627\u0628\u0642\u062a \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f\: `/{0}/`
|
||||
mustBeAnInteger=\u0628\u0627\u06cc\u062f \u06cc\u06a9 \u0639\u062f\u062f \u0635\u062d\u06cc\u062d \u0628\u0627\u0634\u062f
|
||||
notAValidOption=\u06cc\u06a9 \u06af\u0632\u06cc\u0646\u0647 \u0645\u0639\u062a\u0628\u0631 \u0646\u06cc\u0633\u062a
|
||||
selectAnOption=\u06cc\u06a9 \u06af\u0632\u06cc\u0646\u0647 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u06cc\u062f
|
||||
remove=\u062d\u0630\u0641
|
||||
addValue=\u0627\u0641\u0632\u0648\u062f\u0646 \u0645\u0642\u062f\u0627\u0631
|
||||
languages=\u0632\u0628\u0627\u0646\u200c\u0647\u0627
|
@ -0,0 +1,375 @@
|
||||
|
||||
doLogIn=Kirjaudu
|
||||
doRegister=Rekister\u00f6idy
|
||||
doRegisterSecurityKey=Rekister\u00f6idy
|
||||
doCancel=Peruuta
|
||||
doSubmit=L\u00e4het\u00e4
|
||||
doBack=Takaisin
|
||||
doYes=Kyll\u00e4
|
||||
doNo=Ei
|
||||
doContinue=Jatka
|
||||
doIgnore=Sivuuta
|
||||
doAccept=Hyv\u00e4ksy
|
||||
doDecline=En hyv\u00e4ksy
|
||||
doForgotPassword=Unohditko salasanan?
|
||||
doClickHere=Klikkaa t\u00e4st\u00e4
|
||||
doImpersonate=Edusta
|
||||
doTryAgain=Yrit\u00e4 uudelleen
|
||||
doTryAnotherWay=Yrit\u00e4 toista tapaa
|
||||
doConfirmDelete=Vahvista poisto
|
||||
errorDeletingAccount=Tilin poistossa tapahtui virhe
|
||||
deletingAccountForbidden=Sinulla ei ole riitt\u00e4vi\u00e4 oikeuksia poistaakseesi omaa tili\u00e4, ota yhteytt\u00e4 j\u00e4rjestelm\u00e4nvalvojaan.
|
||||
kerberosNotConfigured=Kerberosta ei ole konfiguroitu
|
||||
kerberosNotConfiguredTitle=Kerberosta ei ole konfiguroitu
|
||||
bypassKerberosDetail=Joko et ole kirjautunut Kerberoksen kautta tai selaintasi ei ole asetettu k\u00e4ytt\u00e4m\u00e4\u00e4n Kerberosta kirjautumiseen. Klikkaa jatkaaksesi kirjautumista jollain toisella tavalla
|
||||
kerberosNotSetUp=Kerberosta ei ole asennettu. Et voi kirjautua sis\u00e4\u00e4n.
|
||||
registerTitle=Rekister\u00f6idy
|
||||
loginAccountTitle=Kirjaudu sis\u00e4\u00e4n
|
||||
loginTitle=Kirjaudu {0}
|
||||
loginTitleHtml={0}
|
||||
impersonateTitle={0} Edusta k\u00e4ytt\u00e4j\u00e4\u00e4
|
||||
impersonateTitleHtml=<strong>{0}</strong> Edusta k\u00e4ytt\u00e4j\u00e4\u00e4
|
||||
realmChoice=Realm
|
||||
unknownUser=Tuntematon k\u00e4ytt\u00e4j\u00e4
|
||||
loginTotpTitle=Mobiili-todentajan asetukset
|
||||
loginProfileTitle=P\u00e4ivit\u00e4 k\u00e4ytt\u00e4j\u00e4tilin tiedot
|
||||
loginIdpReviewProfileTitle=P\u00e4ivit\u00e4 k\u00e4ytt\u00e4j\u00e4tilin tiedot
|
||||
loginTimeout=Kirjautumisyritys kesti liian kauan. Kirjautuminen aloitetaan alusta.
|
||||
oauthGrantTitle=My\u00f6nn\u00e4 p\u00e4\u00e4sy {0}
|
||||
oauthGrantTitleHtml={0}
|
||||
errorTitle=Pahoittelut...
|
||||
errorTitleHtml=Olemme <strong>pahoillamme</strong> ...
|
||||
emailVerifyTitle=S\u00e4hk\u00f6postiosoitteen varmistus
|
||||
emailForgotTitle=Unohditko salasanasi?
|
||||
updatePasswordTitle=P\u00e4ivit\u00e4 salasana
|
||||
codeSuccessTitle=Success-koodi
|
||||
codeErrorTitle=Virhekoodi\: {0}
|
||||
displayUnsupported=Pyydetty n\u00e4ytt\u00f6tyyppi ei ole tuettu
|
||||
browserRequired=Selain vaatii sis\u00e4\u00e4nkirjautumista
|
||||
browserContinue=Selain vaatii sis\u00e4\u00e4nkirjautumisen viimeistely\u00e4
|
||||
browserContinuePrompt=Avaa selain ja jatka kirjautumista? [k/e]\:
|
||||
browserContinueAnswer=k
|
||||
termsTitle=K\u00e4ytt\u00f6ehdot
|
||||
termsText=
|
||||
termsPlainText=K\u00e4ytt\u00f6ehdot ja niiden m\u00e4\u00e4rittely.
|
||||
recaptchaFailed=Virheellinen Recaptcha
|
||||
recaptchaNotConfigured=Recaptcha vaaditaan, mutta sit\u00e4 ei ole konfiguroitu
|
||||
consentDenied=Suostumus kielletty.
|
||||
noAccount=Uusi k\u00e4ytt\u00e4j\u00e4?
|
||||
username=K\u00e4ytt\u00e4j\u00e4tunnus
|
||||
usernameOrEmail=K\u00e4ytt\u00e4j\u00e4tunnus tai s\u00e4hk\u00f6postiosoite
|
||||
firstName=Etunimi
|
||||
givenName=Sukunimi
|
||||
fullName=Koko nimi
|
||||
lastName=Sukunimi
|
||||
familyName=Sukunimi
|
||||
email=S\u00e4hk\u00f6posti
|
||||
password=Salasana
|
||||
passwordConfirm=Salasana uudelleen
|
||||
passwordNew=Uusi salasana
|
||||
passwordNewConfirm=Uusi salasana uudelleen
|
||||
rememberMe=Muista minut
|
||||
authenticatorCode=Kertak\u00e4ytt\u00f6koodi
|
||||
address=Osoite
|
||||
street=Katu
|
||||
locality=Kaupunki
|
||||
region=Osavaltio, Provinssi, tai Alue
|
||||
postal_code=Postinumero
|
||||
country=Maa
|
||||
emailVerified=S\u00e4hk\u00f6posti vahvistettu
|
||||
website=Verkkosivu
|
||||
phoneNumber=Puhelinnumero
|
||||
phoneNumberVerified=Puhelinnumero varmennettu
|
||||
gender=Sukupuoli
|
||||
birthday=Syntym\u00e4p\u00e4iv\u00e4
|
||||
zoneinfo=Aikavy\u00f6hyke
|
||||
gssDelegationCredential=GSS Delegation Credential
|
||||
logoutOtherSessions=Kirjaudu ulos muilta laitteilta
|
||||
profileScopeConsentText=K\u00e4ytt\u00e4j\u00e4n profiili
|
||||
emailScopeConsentText=S\u00e4hk\u00f6postiosoite
|
||||
addressScopeConsentText=Osoite
|
||||
phoneScopeConsentText=Puhelinnumero
|
||||
offlineAccessScopeConsentText=Offline-k\u00e4ytt\u00f6
|
||||
samlRoleListScopeConsentText=Omat roolit
|
||||
rolesScopeConsentText=K\u00e4ytt\u00e4j\u00e4roolit
|
||||
restartLoginTooltip=Aloita kirjautuminen alusta
|
||||
loginTotpIntro=Sinun t\u00e4ytyy asentaa OTP (One Time Password) luontity\u00f6kalu p\u00e4\u00e4st\u00e4ksesi t\u00e4lle tilille
|
||||
loginTotpStep1=Asenna yksi seuraavista sovelluksista puhelimeesi\:
|
||||
loginTotpStep2=Avaa sovellus ja skannaa viivakoodi
|
||||
loginTotpStep3=Liit\u00e4 sovelluksesta saatu kertaluontoinen koodi ja paina L\u00e4het\u00e4 viimeistell\u00e4ksesi asennuksen
|
||||
loginTotpStep3DeviceName=Anna laitteelle nimi, jotta voit hallinnoida OTP-laitteitasi.
|
||||
loginTotpManualStep2=Avaa sovellus ja liit\u00e4 avain
|
||||
loginTotpManualStep3=K\u00e4yt\u00e4 seuraavia konfiguraatioarvoja jos sovellus antaa asettaa ne\:
|
||||
loginTotpUnableToScan=Ongelmia skannauksessa?
|
||||
loginTotpScanBarcode=Skannaa viivakoodi?
|
||||
loginCredential=Kirjautumistieto
|
||||
loginTotpOneTime=Kertaluontoinen koodi
|
||||
loginTotpType=Tyyppi
|
||||
loginTotpAlgorithm=Algoritmi
|
||||
loginTotpDigits=Numerot
|
||||
loginTotpInterval=Intervalli
|
||||
loginTotpCounter=Laskuri
|
||||
loginTotpDeviceName=Laitteen nimi
|
||||
loginTotp.totp=Aikapohjainen
|
||||
loginTotp.hotp=Laskuripohjainen
|
||||
loginChooseAuthenticator=Valitse kirjautumistapa
|
||||
oauthGrantRequest=My\u00f6nn\u00e4tk\u00f6 n\u00e4m\u00e4 k\u00e4ytt\u00f6oikeudet?
|
||||
inResource=in
|
||||
oauth2DeviceVerificationTitle=Laitekirjautuminen
|
||||
verifyOAuth2DeviceUserCode=Liit\u00e4 laitteeltasi saamasi kertaluontoinen koodi ja paina L\u00e4het\u00e4
|
||||
oauth2DeviceInvalidUserCodeMessage=Virheellinen koodi. yrit\u00e4 uudelleen.
|
||||
oauth2DeviceExpiredUserCodeMessage=Koodi on vanhentunut. Ole hyv\u00e4 ja mene takaisin laitteellesi ja yrit\u00e4 yhdist\u00e4mist\u00e4 uudellleen.
|
||||
oauth2DeviceVerificationCompleteHeader=Laitekirjautuminen onnistui
|
||||
oauth2DeviceVerificationCompleteMessage=Voit sulkea t\u00e4m\u00e4n ikkunan ja menn\u00e4 takaisin laitteellesi.
|
||||
oauth2DeviceVerificationFailedHeader=Laitekirjautuminen ep\u00e4onnistui
|
||||
oauth2DeviceVerificationFailedMessage=Voit sulkea t\u00e4m\u00e4n ikkunan, menn\u00e4 takaisin laitteellesi ja yritt\u00e4\u00e4 kirjautumista uudelleen.
|
||||
oauth2DeviceConsentDeniedMessage=Laitteen kirjautumisen suostumus ev\u00e4tty.
|
||||
oauth2DeviceAuthorizationGrantDisabledMessage=Client is not allowed to initiate OAuth 2.0 Device Authorization Grant. The flow is disabled for the client.
|
||||
emailVerifyInstruction1=S\u00e4hk\u00f6postin vahvistamisohjeet sis\u00e4lt\u00e4v\u00e4 viesti on l\u00e4hetetty s\u00e4hk\u00f6postiisi.
|
||||
emailVerifyInstruction2=Etk\u00f6 ole saanut vahvistuskoodia s\u00e4hk\u00f6postiisi?
|
||||
emailVerifyInstruction3=saadaksesi uuden s\u00e4hk\u00f6postiviestin.
|
||||
emailLinkIdpTitle=Linkit\u00e4 {0}
|
||||
emailLinkIdp1=Sinulle on l\u00e4hetetty ohjeet tunnuksen linkitt\u00e4miseen palvelun {0} kanssa.
|
||||
emailLinkIdp2=Etk\u00f6 saanut vahvistuskoodia s\u00e4hk\u00f6postiisi?
|
||||
emailLinkIdp3=saadaksesi uuden s\u00e4hk\u00f6postiviestin.
|
||||
emailLinkIdp4=Jos olet jo vahvistanut s\u00e4hk\u00f6postisi toisella selaimella,
|
||||
emailLinkIdp5=jatkaaksesi.
|
||||
backToLogin=« Takaisin kirjautumiseen
|
||||
emailInstruction=Sy\u00f6t\u00e4 k\u00e4ytt\u00e4j\u00e4tunnuksesi tai s\u00e4hk\u00f6postiosoitteesi niin l\u00e4het\u00e4mme sinulle ohjeet salasanan palauttamista varten.
|
||||
emailInstructionUsername=Sy\u00f6t\u00e4 k\u00e4ytt\u00e4j\u00e4nimesi niin l\u00e4het\u00e4mme sinulle ohjeet uuden salasanan luomiseksi.
|
||||
copyCodeInstruction=Ole hyv\u00e4 ja kopioi t\u00e4m\u00e4 koodi ja liit\u00e4 se sovellukseesi\:
|
||||
pageExpiredTitle=Sivu on vanhentunut
|
||||
pageExpiredMsg1=Aloita kirjautuminen alusta
|
||||
pageExpiredMsg2=Jatka kirjautumista
|
||||
personalInfo=Henkil\u00f6kohtaiset tiedot\:
|
||||
role_admin=J\u00e4rjestelm\u00e4nvalvoja
|
||||
role_realm-admin=Realm J\u00e4rjestelm\u00e4nvalvoja
|
||||
role_create-realm=Luo realm
|
||||
role_create-client=Luo asiakas
|
||||
role_view-realm=N\u00e4yt\u00e4 realm
|
||||
role_view-users=N\u00e4yt\u00e4 k\u00e4ytt\u00e4j\u00e4t
|
||||
role_view-applications=N\u00e4yt\u00e4 sovellukset
|
||||
role_view-clients=N\u00e4yt\u00e4 asiakkaat
|
||||
role_view-events=N\u00e4yt\u00e4 tapahtumat
|
||||
role_view-identity-providers=N\u00e4yt\u00e4 henkil\u00f6llisyyden tarjoajat
|
||||
role_manage-realm=Hallinnoi realmia
|
||||
role_manage-users=Hallinnoi k\u00e4ytt\u00e4ji\u00e4
|
||||
role_manage-applications=Hallinnoi sovelluksia
|
||||
role_manage-identity-providers=Hallinnoi henkil\u00f6llisyyden tarjoajia
|
||||
role_manage-clients=Hallinnoi asiakkaita
|
||||
role_manage-events=Hallinnoi tapahtumia
|
||||
role_view-profile=N\u00e4yt\u00e4 profiili
|
||||
role_manage-account=Hallitse tili\u00e4
|
||||
role_manage-account-links=Hallitse tilin linkkej\u00e4
|
||||
role_read-token=Lue token
|
||||
role_offline-access=Offline-p\u00e4\u00e4sy
|
||||
client_account=Tili
|
||||
client_account-console=Tilin konsoli
|
||||
client_security-admin-console=Turvallisuus-hallintapaneeli
|
||||
client_admin-cli=Admin CLI
|
||||
client_realm-management=Realm Hallinta
|
||||
client_broker=Broker
|
||||
requiredFields=Vaaditut kent\u00e4t
|
||||
invalidUserMessage=Virheellinen k\u00e4ytt\u00e4j\u00e4tunnus tai salasana.
|
||||
invalidUsernameMessage=V\u00e4\u00e4r\u00e4 salasana.
|
||||
invalidUsernameOrEmailMessage=V\u00e4\u00e4r\u00e4 salasana tai s\u00e4hk\u00f6posti.
|
||||
invalidPasswordMessage=V\u00e4\u00e4r\u00e4 salasana.
|
||||
invalidEmailMessage=Virheellinen s\u00e4hk\u00f6postiosoite.
|
||||
accountDisabledMessage=Tili on poistettu k\u00e4yt\u00f6st\u00e4, ota yhteytt\u00e4 j\u00e4rjestelm\u00e4nvalvojaan.
|
||||
accountTemporarilyDisabledMessage=Tili on v\u00e4liaikaisesti poissa k\u00e4yt\u00f6st\u00e4, ota yhteytt\u00e4 j\u00e4rjestelm\u00e4nvalvojaan tai yrit\u00e4 my\u00f6hemmin uudelleen.
|
||||
expiredCodeMessage=Kirjautuminen kesti liian kauan. Ole hyv\u00e4 ja kirjaudu uudestaan.
|
||||
expiredActionMessage=Toiminto kesti liian kauan. Ole hyv\u00e4 ja jatka kirjautumiseen.
|
||||
expiredActionTokenNoSessionMessage=Toiminto vanhentui.
|
||||
expiredActionTokenSessionExistsMessage=Toiminto vanhentui. Aloita alusta.
|
||||
missingFirstNameMessage=Anna etunimi.
|
||||
missingLastNameMessage=Anna sukunimi.
|
||||
missingEmailMessage=Anna s\u00e4hk\u00f6postiosoite.
|
||||
missingUsernameMessage=Anna k\u00e4ytt\u00e4j\u00e4tunnus.
|
||||
missingPasswordMessage=Anna salasana.
|
||||
missingTotpMessage=Ole hyv\u00e4 ja m\u00e4\u00e4rittele todentajan koodi.
|
||||
missingTotpDeviceNameMessage=Ole hyv\u00e4 ja m\u00e4\u00e4rittele laitteen nimi.
|
||||
notMatchPasswordMessage=Salasanat eiv\u00e4t t\u00e4sm\u00e4\u00e4.
|
||||
error-invalid-value=V\u00e4\u00e4r\u00e4 arvo.
|
||||
error-invalid-blank=Ole hyv\u00e4 ja m\u00e4\u00e4rit\u00e4 arvo.
|
||||
error-empty=Ole hyv\u00e4 ja m\u00e4\u00e4rit\u00e4 arvo.
|
||||
error-invalid-length=Ominaisuudella {0} t\u00e4ytyy olla pituus v\u00e4lilt\u00e4 {1} ja {2}.
|
||||
error-invalid-length-too-short=Ominaisuudella {0} t\u00e4ytyy olla minimipituus {1}.
|
||||
error-invalid-length-too-long=Ominaisuudella {0} t\u00e4ytyy olla maksimipituus {2}.
|
||||
error-invalid-email=V\u00e4\u00e4r\u00e4 s\u00e4hk\u00f6postiosoite.
|
||||
error-invalid-number=V\u00e4\u00e4r\u00e4 numero.
|
||||
error-number-out-of-range=Ominaisuuden {0} t\u00e4ytyy olla numero v\u00e4lilt\u00e4 {1} ja {2}.
|
||||
error-number-out-of-range-too-small=Ominaisuudella {0} t\u00e4ytyy olla minimiarvona {1}.
|
||||
error-number-out-of-range-too-big=Ominaisuudella {0} t\u00e4ytyy olla maksimiarvona {2}.
|
||||
error-pattern-no-match=V\u00e4\u00e4r\u00e4 arvo.
|
||||
error-invalid-uri=V\u00e4\u00e4r\u00e4 URL.
|
||||
error-invalid-uri-scheme=V\u00e4\u00e4r\u00e4 URL\:n malli.
|
||||
error-invalid-uri-fragment=V\u00e4\u00e4r\u00e4 URL\:n osa.
|
||||
error-user-attribute-required=Ole hyv\u00e4 ja m\u00e4\u00e4rit\u00e4 ominaisuus {0}.
|
||||
error-invalid-date=V\u00e4\u00e4r\u00e4 p\u00e4iv\u00e4m\u00e4\u00e4r\u00e4.
|
||||
error-user-attribute-read-only=Kentt\u00e4 {0} on "vain luku"-tilassa.
|
||||
error-username-invalid-character=K\u00e4ytt\u00e4j\u00e4nimi sis\u00e4lt\u00e4\u00e4 v\u00e4\u00e4ri\u00e4 merkkej\u00e4.
|
||||
error-person-name-invalid-character=Nimi sis\u00e4lt\u00e4\u00e4 v\u00e4\u00e4ri\u00e4 merkkej\u00e4.
|
||||
invalidPasswordExistingMessage=Vanha salasana on virheellinen.
|
||||
invalidPasswordBlacklistedMessage=V\u00e4\u00e4r\u00e4 salasana\: salasana on lis\u00e4tty mustalle listalle.
|
||||
invalidPasswordConfirmMessage=Salasanan vahvistus ei t\u00e4sm\u00e4\u00e4.
|
||||
invalidTotpMessage=V\u00e4\u00e4r\u00e4 todentaja-koodi.
|
||||
usernameExistsMessage=K\u00e4ytt\u00e4j\u00e4nimi on varattu.
|
||||
emailExistsMessage=S\u00e4hk\u00f6postiosoite on jo k\u00e4yt\u00f6ss\u00e4.
|
||||
federatedIdentityExistsMessage=K\u00e4ytt\u00e4j\u00e4 {0} {1} on jo olemassa. Kirjaudu tilihallintaan linkitt\u00e4\u00e4ksesi tilin.
|
||||
federatedIdentityUnavailableMessage=K\u00e4ytt\u00e4j\u00e4 {0} joka on tunnistettu henkil\u00f6llisyyden tarjoajalla {1} ei ole olemassa. Ota yhteytt\u00e4 j\u00e4rjestelm\u00e4nvalvojaan.
|
||||
confirmLinkIdpTitle=K\u00e4ytt\u00e4j\u00e4tunnus on jo olemassa
|
||||
federatedIdentityConfirmLinkMessage=K\u00e4ytt\u00e4j\u00e4tunnus, jolla {0} on {1} on jo olemassa. Kuinka haluat jatkaa?
|
||||
federatedIdentityConfirmReauthenticateMessage=Tunnistaudu linkitt\u00e4\u00e4ksesi {0}-tilin.
|
||||
nestedFirstBrokerFlowMessage={0} k\u00e4ytt\u00e4j\u00e4 {1} ei ole linkitetty tunnettuun k\u00e4ytt\u00e4j\u00e4\u00e4n.
|
||||
confirmLinkIdpReviewProfile=Tarkastele profiilia
|
||||
confirmLinkIdpContinue=Lis\u00e4\u00e4 olemassa olevaan tiliin
|
||||
configureTotpMessage=Sinun t\u00e4ytyy asentaa mobiili-todentaja aktivoidaksesi tilin.
|
||||
updateProfileMessage=Sinun tulee p\u00e4ivitt\u00e4\u00e4 profiilisi aktivoidaksesi tilisi.
|
||||
updatePasswordMessage=Sinun tulee vaihtaa salasanasi aktivoidaksesi tilisi.
|
||||
resetPasswordMessage=Sinun tulee p\u00e4ivitt\u00e4\u00e4 salasanasi.
|
||||
verifyEmailMessage=Sinun tulee vahvistaa s\u00e4hk\u00f6postiosoitteesi aktivoidaksesi tilisi.
|
||||
linkIdpMessage=Sinun tulee vahvistaa s\u00e4hk\u00f6postiosoitteesi linkitt\u00e4\u00e4ksesi tilin palvelun {0} kanssa.
|
||||
emailSentMessage=Sinun pit\u00e4isi saada s\u00e4hk\u00f6postiisi lis\u00e4ohjeita hetken kuluttua.
|
||||
emailSendErrorMessage=S\u00e4hk\u00f6postin l\u00e4hett\u00e4minen ep\u00e4onnistui. Yrit\u00e4 hetken kuluttua uudelleen.
|
||||
accountUpdatedMessage=K\u00e4ytt\u00e4j\u00e4tiedot p\u00e4ivitetty.
|
||||
accountPasswordUpdatedMessage=Salasana vaihdettu.
|
||||
delegationCompleteHeader=Kirjautuminen onnistui
|
||||
delegationCompleteMessage=Voit sulkea t\u00e4m\u00e4n ikkunan ja siirty\u00e4 takaisin konsolisovellukseen.
|
||||
delegationFailedHeader=Kirjautuminen ep\u00e4onnistui
|
||||
delegationFailedMessage=Voit sulkea t\u00e4m\u00e4n selaimen, siirty\u00e4 takaisin konsolisovellukseen ja yritt\u00e4\u00e4 kirjautumista uudelleen.
|
||||
noAccessMessage=Ei p\u00e4\u00e4sy\u00e4
|
||||
invalidPasswordMinLengthMessage=Virheellinen salasana\: v\u00e4himm\u00e4ispituus {0}.
|
||||
invalidPasswordMaxLengthMessage=Virheellinen salasana\: maksimipituus {0}.
|
||||
invalidPasswordMinDigitsMessage=Virheellinen salasana\: salasanassa tulee olla v\u00e4hint\u00e4\u00e4n {0} numeroa.
|
||||
invalidPasswordMinLowerCaseCharsMessage=Virheellinen salasana\: salasanassa tulee olla v\u00e4hint\u00e4\u00e4n {0} pient\u00e4 kirjainta.
|
||||
invalidPasswordMinUpperCaseCharsMessage=Virheellinen salasana\: salasanassa tulee olla v\u00e4hint\u00e4\u00e4n {0} isoa kirjainta.
|
||||
invalidPasswordMinSpecialCharsMessage=Virheellinen salasana\: salasanassa tulee olla v\u00e4hint\u00e4\u00e4n {0} erikoismerkki\u00e4.
|
||||
invalidPasswordNotUsernameMessage=Virheellinen salasana\: salasana ei saa olla sama kuin k\u00e4ytt\u00e4j\u00e4tunnus.
|
||||
invalidPasswordNotEmailMessage=Virheellinen salasana\: ei voi olla sama kuin s\u00e4hk\u00f6posti.
|
||||
invalidPasswordRegexPatternMessage=Virheellinen salasana\: ei vastaa "regex pattern(s)".
|
||||
invalidPasswordHistoryMessage=Virheellinen salasana\: salasana ei saa olla sama kuin {0} edellist\u00e4 salasanaasi.
|
||||
invalidPasswordGenericMessage=Virheellinen salasana\: uusi salasana ei t\u00e4yt\u00e4 salasanavaatimuksia.
|
||||
failedToProcessResponseMessage=Vastauksen k\u00e4sittely ep\u00e4onnistui
|
||||
httpsRequiredMessage=HTTPS vaaditaan
|
||||
realmNotEnabledMessage=Realm ei otettu k\u00e4ytt\u00f6\u00f6n
|
||||
invalidRequestMessage=Virheellinen pyynt\u00f6
|
||||
failedLogout=Uloskirjautuminen ep\u00e4onnistui
|
||||
unknownLoginRequesterMessage=Tuntematon kirjautumispyynn\u00f6n tekij\u00e4
|
||||
loginRequesterNotEnabledMessage=kirjautumispyynn\u00f6n tekij\u00e4\u00e4 ei ole otettu k\u00e4ytt\u00f6\u00f6n
|
||||
bearerOnlyMessage="Bearer-only" sovellusten ei ole sallittua aloittaa selainkirjautumista
|
||||
standardFlowDisabledMessage=Asiakas ei saa aloittaa selainkirjautumista annetulla vastaustyypill\u00e4 ("response_type"). "Standard flow" on poistettu k\u00e4yt\u00f6st\u00e4 asiakkaalla.
|
||||
implicitFlowDisabledMessage=Asiakas ei saa aloittaa selainkirjautumista annetulla vastaustyypill\u00e4 ("response_type"). "Implicit flow" on poistettu k\u00e4yt\u00f6st\u00e4 asiakkaalla.
|
||||
invalidRedirectUriMessage=Virheellinen uudelleenohjaus-uri
|
||||
unsupportedNameIdFormatMessage=Ei-tuettu "NameIDFormat"
|
||||
invalidRequesterMessage=Virheellinen pyynn\u00f6n tekij\u00e4
|
||||
registrationNotAllowedMessage=Rekister\u00f6inti ei ole sallittu
|
||||
resetCredentialNotAllowedMessage=Kirjautumistietojen nollaus ei ole sallittu
|
||||
permissionNotApprovedMessage=Lupaa ei my\u00f6nnetty
|
||||
noRelayStateInResponseMessage="relay state" puuttuu henkil\u00f6llisyyden tarjoajan vastauksesta.
|
||||
insufficientPermissionMessage=Riitt\u00e4m\u00e4tt\u00f6m\u00e4t oikeudet henkil\u00f6llisyyksien linkitt\u00e4miseksi.
|
||||
couldNotProceedWithAuthenticationRequestMessage=Tunnistuspyynt\u00f6\u00e4 henkil\u00f6llisyyden tarjoajalle ei voitu jatkaa.
|
||||
couldNotObtainTokenMessage=Ei voitu saada tokenia henkil\u00f6llisyyden tarjoajalta.
|
||||
unexpectedErrorRetrievingTokenMessage=Odottamaton virhe hankkiessa tokenia henkil\u00f6llisyyden tarjoajalta.
|
||||
unexpectedErrorHandlingResponseMessage=Odottamaton virhe k\u00e4sitelt\u00e4ess\u00e4 vastausta henkil\u00f6llisyyden tarjoajalta.
|
||||
identityProviderAuthenticationFailedMessage=Tunnistautuminen ep\u00e4onnistui. Ei voitu tunnistautua henkil\u00f6llisyyden tarjoajan kautta.
|
||||
identityProviderDifferentUserMessage=Tunnistautunut {0}, vaikka pit\u00e4isi olla tunnistautunut {1}
|
||||
couldNotSendAuthenticationRequestMessage=Ei voitu l\u00e4hett\u00e4\u00e4 tunnistautumispyynt\u00f6 henkil\u00f6llisyyden tarjoajalle.
|
||||
unexpectedErrorHandlingRequestMessage=Odottamaton virhe k\u00e4sitelt\u00e4ess\u00e4 tunnistautumispyynt\u00f6 henkil\u00f6llisyyden tarjoajalle.
|
||||
invalidAccessCodeMessage=Virheellinen p\u00e4\u00e4sykoodi
|
||||
sessionNotActiveMessage=Istunto ei ole aktiivinen.
|
||||
invalidCodeMessage=Tapahtui virhe, ole hyv\u00e4 ja kirjaudu uudelleen sovelluksesi kautta.
|
||||
identityProviderUnexpectedErrorMessage=Tunnistautumisen yhteydess\u00e4 tapahtui virhe tunnistetietojen tarjoajan kanssa.
|
||||
identityProviderNotFoundMessage=Tunnisteella ei l\u00f6ytynyt henkil\u00f6llisyyden tarjoajaa.
|
||||
identityProviderLinkSuccess=S\u00e4hk\u00f6postin vahvistus onnistui Ole hyv\u00e4 ja palaa alkuper\u00e4iseen selainikkunaan jatkaaksesi kirjautumista.
|
||||
staleCodeMessage=T\u00e4m\u00e4 sivu ei ole en\u00e4\u00e4 voimassa, ole hyv\u00e4 ja palaa sovellukseesi ja kirjaudu uudelleen
|
||||
realmSupportsNoCredentialsMessage=Realm ei tue mit\u00e4\u00e4n kirjautumistiedon tyyppi\u00e4.
|
||||
credentialSetupRequired=Ei voida kirjautua, kirjautumistietojen asetukset vaaditaan.
|
||||
identityProviderNotUniqueMessage=Realm tukee useita henkil\u00f6llisyyden tarjoajia. Ei voitu m\u00e4\u00e4ritt\u00e4\u00e4, mit\u00e4 henkil\u00f6llisyyden tarjoajaa pit\u00e4isi k\u00e4ytt\u00e4\u00e4 tunnistautumiseen.
|
||||
emailVerifiedMessage=S\u00e4hk\u00f6postisi on vahvistettu.
|
||||
staleEmailVerificationLink=Klikkaamasi linkki on vanhentunut eik\u00e4 en\u00e4\u00e4 toimi. Oletko jo vahvistanut s\u00e4hk\u00f6postisi?
|
||||
identityProviderAlreadyLinkedMessage=Yhdistetty henkil\u00f6llisyys, mink\u00e4 {0} palautti, on jo linkitetty toiseen k\u00e4ytt\u00e4j\u00e4\u00e4n.
|
||||
confirmAccountLinking=Vahvista tilin {0} linkitys, henkil\u00f6llisyyden tarjoajalta {1}, tiliisi.
|
||||
confirmEmailAddressVerification=Vahvista s\u00e4hk\u00f6postiosoitteen {0} voimassaolo.
|
||||
confirmExecutionOfActions=Suorita seuraavat toiminnot
|
||||
backToApplication=« Takaisin sovellukseen
|
||||
missingParameterMessage=Puuttuva parametri\: {0}
|
||||
clientNotFoundMessage=Asiakasta ei l\u00f6ytynyt.
|
||||
clientDisabledMessage=Asiakas ei ole k\u00e4yt\u00f6ss\u00e4.
|
||||
invalidParameterMessage=Ep\u00e4kelpo parametri\: {0}
|
||||
alreadyLoggedIn=Olet jo kirjautunut sis\u00e4\u00e4n
|
||||
differentUserAuthenticated=Olet kirjautunut sis\u00e4\u00e4n tilill\u00e4 ''{0}''. Ole hyv\u00e4 ja kirjaudu ulos ensin.
|
||||
brokerLinkingSessionExpired=Pyysit tilin yhdist\u00e4mist\u00e4 mutta sessio on vanhentunut.
|
||||
proceedWithAction=» Klikkaa t\u00e4st\u00e4 jatkaaksesi
|
||||
requiredAction.CONFIGURE_TOTP=Konfiguroi OTP
|
||||
requiredAction.TERMS_AND_CONDITIONS=K\u00e4ytt\u00f6ehdot
|
||||
requiredAction.UPDATE_PASSWORD=P\u00e4ivit\u00e4 salasana
|
||||
requiredAction.UPDATE_PROFILE=P\u00e4ivit\u00e4 profiili
|
||||
requiredAction.VERIFY_EMAIL=Vahvista s\u00e4hk\u00f6posti
|
||||
doX509Login=Kirjaudut sis\u00e4\u00e4n nimell\u00e4\:
|
||||
clientCertificate=X509 asiakas-varmenne\:
|
||||
noCertificate=[No Certificate]
|
||||
pageNotFound=Sivua ei l\u00f6ytynyt
|
||||
internalServerError=Tapahtui sis\u00e4inen virhe palvelimella.
|
||||
console-username=K\u00e4ytt\u00e4j\u00e4nimi\:
|
||||
console-password=Salasana\:
|
||||
console-otp=One Time Password\:
|
||||
console-new-password=Uusi salasana\:
|
||||
console-confirm-password=Vahvista salana\:
|
||||
console-update-password=Salasanan p\u00e4ivitys vaaditaan.
|
||||
console-verify-email=Sinun t\u00e4ytyy vahvistaa s\u00e4hk\u00f6postiosoitteesi. S\u00e4hk\u00f6posti, mik\u00e4 sis\u00e4lt\u00e4\u00e4 vahvistuskoodin, on l\u00e4hetetty osoitteeseen {0}. Ole hyv\u00e4 ja kirjoita t\u00e4m\u00e4 koodi alapuolella olevaan kentt\u00e4\u00e4n.
|
||||
console-email-code=S\u00e4hk\u00f6posti-koodi\:
|
||||
console-accept-terms=Hyv\u00e4ksy k\u00e4ytt\u00f6ehdot? [k/e]\:
|
||||
console-accept=k
|
||||
openshift.scope.user_info=K\u00e4ytt\u00e4j\u00e4n tiedot
|
||||
openshift.scope.user_check-access=K\u00e4ytt\u00e4j\u00e4n k\u00e4ytt\u00f6oikeustiedot
|
||||
openshift.scope.user_full=T\u00e4ysi k\u00e4ytt\u00f6oikeus
|
||||
openshift.scope.list-projects=Listaa projektit
|
||||
saml.post-form.title=Tunnistautumisen uudelleenohjaus
|
||||
saml.post-form.message=Uudelleenohjataan, odota hetki..
|
||||
saml.post-form.js-disabled=JavaScript on pois k\u00e4yt\u00f6st\u00e4. Suosittelemme vahvasti sen k\u00e4ytt\u00f6\u00f6nottoa. Klikkaa alla olevaa nappia jatkaaksesi.
|
||||
saml.artifactResolutionServiceInvalidResponse=Unable to resolve artifact.
|
||||
otp-display-name=Todentajasovellus
|
||||
otp-help-text=Sy\u00f6t\u00e4 todentajasovelluksen tarjoama vahvistuskoodi.
|
||||
password-display-name=Salasana
|
||||
password-help-text=Kirjaudu sis\u00e4\u00e4n sy\u00f6tt\u00e4m\u00e4ll\u00e4 salasanasi.
|
||||
auth-username-form-display-name=K\u00e4ytt\u00e4j\u00e4nimi
|
||||
auth-username-form-help-text=Aloita kirjautuminen sy\u00f6tt\u00e4m\u00e4ll\u00e4 k\u00e4ytt\u00e4j\u00e4nimesi
|
||||
auth-username-password-form-display-name=k\u00e4ytt\u00e4j\u00e4nimi ja salasana
|
||||
auth-username-password-form-help-text=Kirjaudu sis\u00e4\u00e4n sy\u00f6tt\u00e4m\u00e4ll\u00e4 k\u00e4ytt\u00e4j\u00e4nimi ja salasana.
|
||||
webauthn-display-name=Turva-avain
|
||||
webauthn-help-text=K\u00e4yt\u00e4 Turva-avaintasi kirjatuaksesi sis\u00e4\u00e4n.
|
||||
webauthn-passwordless-display-name=Turva-avain
|
||||
webauthn-passwordless-help-text=K\u00e4yt\u00e4 Turva-avaintasi kirjatuaksesi sis\u00e4\u00e4n ilman salasanaa.
|
||||
webauthn-login-title=Turva-avain kirjautuminen
|
||||
webauthn-registration-title=Turva-avain rekister\u00f6inti
|
||||
webauthn-available-authenticators=Saatavilla olevat todentajat
|
||||
webauthn-unsupported-browser-text="WebAuthn" ei ole tuettu t\u00e4ll\u00e4 selaimella. Kokeile jotain toista tai ota yhteytt\u00e4 j\u00e4rjestelm\u00e4nvalvojaan.
|
||||
webauthn-doAuthenticate=Kirjaudu sis\u00e4\u00e4n Turva-avaimella
|
||||
webauthn-error-title=Turva-avain virhe
|
||||
webauthn-error-registration=Turva-avaimen rekister\u00f6inti ep\u00e4onnistui.<br/> {0}
|
||||
webauthn-error-api-get=Tunnistautuminen Turva-avaimella ep\u00e4onnistui.<br/> {0}
|
||||
webauthn-error-different-user=Ensiksi tunnistautunut k\u00e4ytt\u00e4j\u00e4 ei ole sama kuin Turva-avaimella tunnistaunut.
|
||||
webauthn-error-auth-verification=Turva-avain -tunnistautumisen tulos on virheellinen.<br/> {0}
|
||||
webauthn-error-register-verification=Turva-avaimen rekister\u00f6innin tulos on virheellinen.<br/> {0}
|
||||
webauthn-error-user-not-found=Tuntematon k\u00e4ytt\u00e4j\u00e4 tunnistautui Turva-avaimella.
|
||||
identity-provider-redirector=Yhdist\u00e4 k\u00e4ytt\u00e4m\u00e4ll\u00e4 toista henkil\u00f6llisyyden tarjoajaa
|
||||
identity-provider-login-label=Tai kirjaudu jollain n\u00e4ist\u00e4\:
|
||||
finalDeletionConfirmation=Jos poistat tilisi, sit\u00e4 ei voida en\u00e4\u00e4 palauttaa. S\u00e4ilytt\u00e4\u00e4ksesi tilisi, paina Peruuta.
|
||||
irreversibleAction=T\u00e4t\u00e4 toimintoa ei voi peruuttaa
|
||||
deleteAccountConfirm=Tilin poistamisen vahvistus
|
||||
deletingImplies=Tilin poisto tarkoittaa sit\u00e4, ett\u00e4\:
|
||||
errasingData=Kaikki tietosi poistetaan
|
||||
loggingOutImmediately=Sinut kirjataan ulos v\u00e4litt\u00f6m\u00e4sti
|
||||
accountUnusable=T\u00e4m\u00e4n sovelluksen k\u00e4ytt\u00f6 ei my\u00f6hemmin en\u00e4\u00e4 ole mahdollista t\u00e4ll\u00e4 k\u00e4ytt\u00e4j\u00e4tilill\u00e4
|
||||
userDeletedSuccessfully=K\u00e4ytt\u00e4j\u00e4 poistettu onnistuneesti
|
||||
access-denied=P\u00e4\u00e4sy ev\u00e4tty
|
||||
readOnlyUsernameMessage=Et voi p\u00e4ivitt\u00e4\u00e4 k\u00e4ytt\u00e4j\u00e4nime\u00e4si, koska se on "vain-luku"-tilassa.
|
||||
shouldBeEqual={0} pit\u00e4isi olla yht\u00e4 suuri kuin {1}
|
||||
shouldBeDifferent={0} pit\u00e4isi olla erilainen kuin {1}
|
||||
shouldMatchPattern=Mallin tulisi vastata\: `/{0}/`
|
||||
mustBeAnInteger=On oltava kokonaisluku
|
||||
notAValidOption=Ei ole kelvollinen vaihtoehto
|
||||
selectAnOption=Valitse vaihtoehto
|
||||
remove=Poista
|
||||
addValue=Lis\u00e4\u00e4 arvo
|
||||
languages=Kielet
|
@ -0,0 +1,391 @@
|
||||
|
||||
doLogIn=Connexion
|
||||
doRegister=Enregistrement
|
||||
doRegisterSecurityKey=Enregistrement
|
||||
doCancel=Annuler
|
||||
doSubmit=Soumettre
|
||||
doBack=Retour
|
||||
doYes=Oui
|
||||
doNo=Non
|
||||
doContinue=Continuer
|
||||
doIgnore=Ignorer
|
||||
doAccept=Accepter
|
||||
doDecline=D\u00e9cliner
|
||||
doForgotPassword=Mot de passe oubli\u00e9 ?
|
||||
doClickHere=Cliquez ici
|
||||
doImpersonate=Usurper l''identit\u00e9
|
||||
doTryAgain=R\u00e9essayer
|
||||
doTryAnotherWay=Essayer une autre m\u00e9thode
|
||||
doConfirmDelete=Confirmer la suppression
|
||||
errorDeletingAccount=Erreur lors de la suppression du compte
|
||||
deletingAccountForbidden=Permissions insuffisantes pour supprimer votre propre compte, contactez un administrateur.
|
||||
kerberosNotConfigured=Kerberos non configur\u00e9
|
||||
kerberosNotConfiguredTitle=Kerberos non configur\u00e9
|
||||
bypassKerberosDetail=Si vous n''\u00eates pas connect\u00e9 via Kerberos ou bien que votre navigateur n''est pas configur\u00e9 pour la connexion via Kerberos. Veuillez cliquer pour vous connecter via un autre moyen.
|
||||
kerberosNotSetUp=Kerberos n''est pas configur\u00e9. Connexion impossible.
|
||||
registerTitle=S''enregistrer
|
||||
loginAccountTitle=Connectez-vous \u00e0 votre compte
|
||||
registerWithTitle=Enregistrement avec {0}
|
||||
registerWithTitleHtml={0}
|
||||
loginTitle=Se connecter \u00e0 {0}
|
||||
loginTitleHtml={0}
|
||||
impersonateTitle={0} utilisateur usurp\u00e9
|
||||
impersonateTitleHtml=<strong>{0}</strong> utilisateur usurp\u00e9
|
||||
realmChoice=Domaine
|
||||
unknownUser=Utilisateur inconnu
|
||||
loginTotpTitle=Configuration de l''authentification par mobile
|
||||
loginProfileTitle=Mise \u00e0 jour du compte
|
||||
loginIdpReviewProfileTitle=V\u00e9rifiez vos informations de profil
|
||||
loginTimeout=Le temps imparti pour la connexion est \u00e9coul\u00e9. Le processus de connexion red\u00e9marre depuis le d\u00e9but.
|
||||
oauthGrantTitle=Accorder l''acc\u00e8s \u00e0 {0}
|
||||
oauthGrantTitleHtml={0}
|
||||
oauthGrantInformation=Assurez-vous de faire confiance \u00e0 {0} en apprenant comment {0} traitera vos donn\u00e9es.
|
||||
oauthGrantReview=Vous pourriez examiner
|
||||
oauthGrantTos=les conditions g\u00e9n\u00e9rales d''utilisation.
|
||||
oauthGrantPolicy=la politique de confidentialit\u00e9.
|
||||
errorTitle=Nous sommes d\u00e9sol\u00e9s...
|
||||
errorTitleHtml=Nous sommes <strong>d\u00e9sol\u00e9s</strong>...
|
||||
emailVerifyTitle=V\u00e9rification du courriel
|
||||
emailForgotTitle=Mot de passe oubli\u00e9 ?
|
||||
updateEmailTitle=Mise \u00e0 jour du courriel
|
||||
emailUpdateConfirmationSentTitle=Courriel de confirmation envoy\u00e9
|
||||
emailUpdateConfirmationSent=Un courriel de confirmation a \u00e9t\u00e9 envoy\u00e9 \u00e0 {0}. Vous devez suivre les instructions de ce dernier afin de compl\u00e9ter la mise \u00e0 jour.
|
||||
emailUpdatedTitle=Adresse courriel mis \u00e0 jour
|
||||
emailUpdated=La mise \u00e0 jour de votre adresse courriel vers {0} a \u00e9t\u00e9 compl\u00e9t\u00e9e avec succ\u00e8s.
|
||||
updatePasswordTitle=Mise \u00e0 jour du mot de passe
|
||||
codeSuccessTitle=Code succ\u00e8s
|
||||
codeErrorTitle=Code d''erreur \: {0}
|
||||
displayUnsupported=Type d''affichage demand\u00e9 non support\u00e9
|
||||
browserRequired=Navigateur requis pour se connecter
|
||||
browserContinue=Navigateur requis pour continuer la connexion
|
||||
browserContinuePrompt=Ouvrir le navigateur et continuer la connexion? [y/n]\:
|
||||
browserContinueAnswer=y
|
||||
termsTitle=Termes et Conditions
|
||||
termsTitleHtml=Termes et Conditions
|
||||
termsText=
|
||||
termsPlainText=Termes et conditions \u00e0 d\u00e9finir
|
||||
termsAcceptanceRequired=Vous devez accepter les termes et conditions.
|
||||
acceptTerms=J''accepte les termes et conditions
|
||||
recaptchaFailed=Re-captcha invalide
|
||||
recaptchaNotConfigured=Re-captcha est requis, mais il n''est pas configur\u00e9
|
||||
consentDenied=Consentement refus\u00e9.
|
||||
noAccount=Nouvel utilisateur ?
|
||||
username=Nom d''utilisateur
|
||||
usernameOrEmail=Nom d''utilisateur ou courriel
|
||||
firstName=Pr\u00e9nom
|
||||
givenName=Pr\u00e9nom
|
||||
fullName=Nom complet
|
||||
lastName=Nom
|
||||
familyName=Nom de famille
|
||||
email=Courriel
|
||||
password=Mot de passe
|
||||
passwordConfirm=Confirmation du mot de passe
|
||||
passwordNew=Nouveau mot de passe
|
||||
passwordNewConfirm=Confirmation du nouveau mot de passe
|
||||
rememberMe=Se souvenir de moi
|
||||
authenticatorCode=Code \u00e0 usage unique
|
||||
address=Adresse
|
||||
street=Rue
|
||||
locality=Ville ou Localit\u00e9
|
||||
region=\u00c9tat, Province ou R\u00e9gion
|
||||
postal_code=Code postal
|
||||
country=Pays
|
||||
emailVerified=Courriel v\u00e9rifi\u00e9
|
||||
website=Page web
|
||||
phoneNumber=Num\u00e9ro de t\u00e9l\u00e9phone
|
||||
phoneNumberVerified=Num\u00e9ro de t\u00e9l\u00e9phone v\u00e9rifi\u00e9
|
||||
gender=Sexe
|
||||
birthday=Date de naissance
|
||||
zoneinfo=Fuseau horaire
|
||||
gssDelegationCredential=Accr\u00e9ditation de d\u00e9l\u00e9gation GSS
|
||||
logoutOtherSessions=Se d\u00e9connecter des autres appareils
|
||||
profileScopeConsentText=Profil utilisateur
|
||||
emailScopeConsentText=Courriel
|
||||
addressScopeConsentText=Adresse
|
||||
phoneScopeConsentText=Num\u00e9ro de t\u00e9l\u00e9phone
|
||||
offlineAccessScopeConsentText=Acc\u00e8s hors-ligne
|
||||
samlRoleListScopeConsentText=Mes r\u00f4les
|
||||
rolesScopeConsentText=R\u00f4les utilisateur
|
||||
restartLoginTooltip=Red\u00e9marrer la connexion
|
||||
loginTotpIntro=Il est n\u00e9cessaire de configurer un g\u00e9n\u00e9rateur One Time Password pour acc\u00e9der \u00e0 ce compte
|
||||
loginTotpStep1=Installez une des applications suivantes sur votre mobile\:
|
||||
loginTotpStep2=Ouvrez l''application et scannez le code-barres ou entrez la clef.
|
||||
loginTotpStep3=Entrez le code \u00e0 usage unique fourni par l''application et cliquez sur Sauvegarder pour terminer.
|
||||
loginTotpStep3DeviceName=Renseignez un nom d''appareil pour vous aider \u00e0 g\u00e9rer vos a appareils OTP.
|
||||
loginTotpManualStep2=Ouvrez l''application et saisissez la cl\u00e9
|
||||
loginTotpManualStep3=Utilisez la configuration de valeur suivante si l''application permet son \u00e9dition
|
||||
loginTotpUnableToScan=Impossible de scanner?
|
||||
loginTotpScanBarcode=Scanner le code barre ?
|
||||
loginCredential=Accr\u00e9ditation
|
||||
loginOtpOneTime=Code \u00e0 usage unique
|
||||
loginTotpType=Type
|
||||
loginTotpAlgorithm=Algorithme
|
||||
loginTotpDigits=Chiffres
|
||||
loginTotpInterval=Intervalle
|
||||
loginTotpCounter=Compteur
|
||||
loginTotpDeviceName=Nom d''appareil
|
||||
loginTotp.totp=Bas\u00e9 sur le temps
|
||||
loginTotp.hotp=Bas\u00e9 sur les compteurs
|
||||
loginChooseAuthenticator=S\u00e9lectionnez une m\u00e9thode de connexion
|
||||
oauthGrantRequest=Voulez-vous accorder ces privil\u00e8ges d''acc\u00e8s ?
|
||||
inResource=dans
|
||||
oauth2DeviceVerificationTitle=Connexion de l''appareil
|
||||
verifyOAuth2DeviceUserCode=Entrez le code \u00e0 usage unique fourni par votre appareil et cliquez sur Soumettre.
|
||||
oauth2DeviceInvalidUserCodeMessage=Code invalide, veuillez r\u00e9essayer.
|
||||
oauth2DeviceExpiredUserCodeMessage=Le code a expir\u00e9. Veuillez r\u00e9essayer de vous connecter depuis votre appareil.
|
||||
oauth2DeviceVerificationCompleteHeader=Connexion de l''appareil r\u00e9ussie
|
||||
oauth2DeviceVerificationCompleteMessage=Vous pouvez fermer cette fen\u00eatre de navigateur et retourner sur votre appareil.
|
||||
oauth2DeviceVerificationFailedHeader=\u00c9chec de la connexion au dispositif
|
||||
oauth2DeviceVerificationFailedMessage=Vous pouvez fermer cette fen\u00eatre de navigateur et retourner sur votre appareil, puis r\u00e9essayer de vous connecter.
|
||||
oauth2DeviceConsentDeniedMessage=Consentement refus\u00e9 pour connecter l''appareil.
|
||||
oauth2DeviceAuthorizationGrantDisabledMessage=Le client n''est pas autoris\u00e9 \u00e0 initier OAuth 2.0 Device Authorization Grant. Le flux est d\u00e9sactiv\u00e9 pour ce client.
|
||||
emailVerifyInstruction1=Un courriel avec des instructions \u00e0 suivre a \u00e9t\u00e9 envoy\u00e9 \u00e0 votre adresse {0}.
|
||||
emailVerifyInstruction2=Vous n''avez pas re\u00e7u de code dans le courriel ?
|
||||
emailVerifyInstruction3=pour renvoyer le courriel.
|
||||
emailLinkIdpTitle=Association avec {0}
|
||||
emailLinkIdp1=Un courriel avec des instructions pour associer le compte {1} sur {0} avec votre compte {2} vous a \u00e9t\u00e9 envoy\u00e9.
|
||||
emailLinkIdp2=Vous n''avez pas re\u00e7u de code dans le courriel ?
|
||||
emailLinkIdp3=pour renvoyer le courriel.
|
||||
emailLinkIdp4=Si vous avez d\u00e9j\u00e0 v\u00e9rifi\u00e9 votre courriel dans un autre navigateur
|
||||
emailLinkIdp5=pour continuer.
|
||||
backToLogin=« Retour \u00e0 la connexion
|
||||
emailInstruction=Entrez votre nom d''utilisateur ou votre courriel ; un courriel va vous \u00eatre envoy\u00e9 vous permettant de cr\u00e9er un nouveau mot de passe.
|
||||
emailInstructionUsername=Entrez votre nom d''utilisateur ; un courriel va vous \u00eatre envoy\u00e9 vous permettant de cr\u00e9er un nouveau mot de passe.
|
||||
copyCodeInstruction=Copiez le code et recopiez le dans votre application \:
|
||||
pageExpiredTitle=La page a expir\u00e9
|
||||
pageExpiredMsg1=Pour recommencer le processus d''authentification
|
||||
pageExpiredMsg2=Pour continuer le processus d''authentification
|
||||
personalInfo=Information personnelle \:
|
||||
role_admin=Administrateur
|
||||
role_realm-admin=Administrateur du domaine
|
||||
role_create-realm=Cr\u00e9er un domaine
|
||||
role_create-client=Cr\u00e9er un client
|
||||
role_view-realm=Voir un domaine
|
||||
role_view-users=Voir les utilisateurs
|
||||
role_view-applications=Voir les applications
|
||||
role_view-clients=Voir les clients
|
||||
role_view-events=Voir les \u00e9v\u00e9nements
|
||||
role_view-identity-providers=Voir les fournisseurs d''identit\u00e9
|
||||
role_manage-realm=G\u00e9rer le domaine
|
||||
role_manage-users=G\u00e9rer les utilisateurs
|
||||
role_manage-applications=G\u00e9rer les applications
|
||||
role_manage-identity-providers=G\u00e9rer les fournisseurs d''identit\u00e9
|
||||
role_manage-clients=G\u00e9rer les clients
|
||||
role_manage-events=G\u00e9rer les \u00e9v\u00e9nements
|
||||
role_view-profile=Voir le profil
|
||||
role_manage-account=G\u00e9rer le compte
|
||||
role_manage-account-links=G\u00e9rer les liens de compte
|
||||
role_read-token=Lire le jeton d''authentification
|
||||
role_offline-access=Acc\u00e8s hors-ligne
|
||||
client_account=Compte
|
||||
client_account-console=Console de gestion du compte
|
||||
client_security-admin-console=Console d''administration de la s\u00e9curit\u00e9
|
||||
client_admin-cli=Admin CLI
|
||||
client_realm-management=Gestion du domaine
|
||||
client_broker=Broker
|
||||
requiredFields=Champs requis
|
||||
invalidUserMessage=Nom d''utilisateur ou mot de passe invalide.
|
||||
invalidUsernameMessage=Nom d''utilisateur invalide.
|
||||
invalidUsernameOrEmailMessage=Nom d''utilisateur ou courriel invalide.
|
||||
invalidPasswordMessage=Mot de passe invalide.
|
||||
invalidEmailMessage=Courriel invalide.
|
||||
accountDisabledMessage=Compte d\u00e9sactiv\u00e9, contactez votre administrateur.
|
||||
accountTemporarilyDisabledMessage=Ce compte est temporairement d\u00e9sactiv\u00e9, contactez votre administrateur ou bien r\u00e9essayez plus tard.
|
||||
expiredCodeMessage=Connexion expir\u00e9e. Veuillez vous reconnecter.
|
||||
expiredActionMessage=Action expir\u00e9e. Merci de continuer la connexion.
|
||||
expiredActionTokenNoSessionMessage=Action expir\u00e9e.
|
||||
expiredActionTokenSessionExistsMessage=Action expir\u00e9e. Merci de recommencer.
|
||||
missingFirstNameMessage=Veuillez entrer votre pr\u00e9nom.
|
||||
missingLastNameMessage=Veuillez entrer votre nom.
|
||||
missingEmailMessage=Veuillez entrer votre courriel.
|
||||
missingUsernameMessage=Veuillez entrer votre nom d''utilisateur.
|
||||
missingPasswordMessage=Veuillez entrer votre mot de passe.
|
||||
missingTotpMessage=Veuillez entrer votre code d''authentification.
|
||||
missingTotpDeviceNameMessage=Veuillez entrer le nom de votre appareil.
|
||||
notMatchPasswordMessage=Les mots de passe ne sont pas identiques.
|
||||
error-invalid-value=Valeur invalide.
|
||||
error-invalid-blank=Veuillez entrer une valeur.
|
||||
error-empty=Veuillez entrer une valeur.
|
||||
error-invalid-length=La longueur doit \u00eatre entre {1} et {2}.
|
||||
error-invalid-length-too-short=La longueur minimale est {1}.
|
||||
error-invalid-length-too-long=La longueur maximale est {2}.
|
||||
error-invalid-email=Courriel invalide.
|
||||
error-invalid-number=Nombre invalide.
|
||||
error-number-out-of-range=Le nombre doit \u00eatre entre {1} et {2}.
|
||||
error-number-out-of-range-too-small=Le nombre doit avoir une valeur minimale de {1}.
|
||||
error-number-out-of-range-too-big=Le nombre doit avoir une valeur maximale de {2}.
|
||||
error-pattern-no-match=Valeur invalide.
|
||||
error-invalid-uri=URL invalide.
|
||||
error-invalid-uri-scheme=Sch\u00e9ma d''URL invalide.
|
||||
error-invalid-uri-fragment=Fragment d''URL invalide.
|
||||
error-user-attribute-required=Veuillez renseigner ce champ.
|
||||
error-invalid-date=Date invalide.
|
||||
error-user-attribute-read-only=Ce champ est en lecture seule.
|
||||
error-username-invalid-character=La valeur contient des caract\u00e8res invalides.
|
||||
error-person-name-invalid-character=La valeur contient des caract\u00e8res invalides.
|
||||
invalidPasswordExistingMessage=Mot de passe existant invalide.
|
||||
invalidPasswordBlacklistedMessage=Mot de passe invalide \: ce mot de passe est blacklist\u00e9.
|
||||
invalidPasswordConfirmMessage=Le mot de passe de confirmation ne correspond pas.
|
||||
invalidTotpMessage=Le code d''authentification est invalide.
|
||||
usernameExistsMessage=Le nom d''utilisateur existe d\u00e9j\u00e0.
|
||||
emailExistsMessage=Le courriel existe d\u00e9j\u00e0.
|
||||
federatedIdentityExistsMessage=L''utilisateur avec {0} {1} existe d\u00e9j\u00e0. Veuillez acc\u00e9der \u00e0 au gestionnaire de compte pour lier le compte.
|
||||
federatedIdentityEmailExistsMessage=Cet utilisateur avec ce courriel existe d\u00e9j\u00e0. Veuillez vous connecter au gestionnaire de compte pour lier le compte.
|
||||
confirmLinkIdpTitle=Ce compte existe d\u00e9j\u00e0
|
||||
federatedIdentityConfirmLinkMessage=L''utilisateur {0} {1} existe d\u00e9j\u00e0. Que souhaitez-vous faire ?
|
||||
federatedIdentityConfirmReauthenticateMessage=Identifiez vous afin de lier votre compte avec {0}
|
||||
nestedFirstBrokerFlowMessage=L''utilisateur {0} {1} n''est li\u00e9 \u00e0 aucun utilisateur connu.
|
||||
confirmLinkIdpReviewProfile=V\u00e9rifiez vos informations de profil
|
||||
confirmLinkIdpContinue=Souhaitez-vous lier {0} \u00e0 votre compte existant
|
||||
configureTotpMessage=Vous devez configurer l''authentification par mobile pour activer votre compte.
|
||||
updateProfileMessage=Vous devez mettre \u00e0 jour votre profil pour activer votre compte.
|
||||
updatePasswordMessage=Vous devez changer votre mot de passe pour activer votre compte.
|
||||
updateEmailMessage=Vous devez mettre \u00e0 votre addresse de courriel pour activer votre compte.
|
||||
resetPasswordMessage=Vous devez changer votre mot de passe.
|
||||
verifyEmailMessage=Vous devez v\u00e9rifier votre courriel pour activer votre compte.
|
||||
linkIdpMessage=Vous devez v\u00e9rifier votre courriel pour lier votre compte avec {0}.
|
||||
emailSentMessage=Vous devriez recevoir rapidement un courriel avec de plus amples instructions.
|
||||
emailSendErrorMessage=Erreur lors de l''envoi du courriel, veuillez essayer plus tard.
|
||||
accountUpdatedMessage=Votre compte a \u00e9t\u00e9 mis \u00e0 jour.
|
||||
accountPasswordUpdatedMessage=Votre mot de passe a \u00e9t\u00e9 mis \u00e0 jour.
|
||||
delegationCompleteHeader=Connexion r\u00e9ussie
|
||||
delegationCompleteMessage=Vous pouvez fermer cette fen\u00eatre de navigateur et retourner sur votre application console.
|
||||
delegationFailedHeader=Connexion \u00e9chou\u00e9e
|
||||
delegationFailedMessage=Vous pouvez fermer cette fen\u00eatre de navigateur et retourner sur votre application console, puis r\u00e9essayer de vous connecter.
|
||||
noAccessMessage=Aucun acc\u00e8s
|
||||
invalidPasswordMinLengthMessage=Mot de passe invalide \: longueur minimale requise de {0}.
|
||||
invalidPasswordMaxLengthMessage=Mot de passe invalide \: longueur maximale de {0}.
|
||||
invalidPasswordMinDigitsMessage=Mot de passe invalide \: doit contenir au moins {0} chiffre(s).
|
||||
invalidPasswordMinLowerCaseCharsMessage=Mot de passe invalide \: doit contenir au moins {0} lettre(s) en minuscule.
|
||||
invalidPasswordMinUpperCaseCharsMessage=Mot de passe invalide \: doit contenir au moins {0} lettre(s) en majuscule.
|
||||
invalidPasswordMinSpecialCharsMessage=Mot de passe invalide \: doit contenir au moins {0} caract\u00e8re(s) sp\u00e9ciaux.
|
||||
invalidPasswordNotUsernameMessage=Mot de passe invalide \: ne doit pas \u00eatre identique au nom d''utilisateur.
|
||||
invalidPasswordNotEmailMessage=Mot de passe invalide\: ne doit pas \u00eatre identique au courriel.
|
||||
invalidPasswordRegexPatternMessage=Mot de passe invalide \: ne valide pas l''expression rationnelle.
|
||||
invalidPasswordHistoryMessage=Mot de passe invalide \: ne doit pas \u00eatre \u00e9gal aux {0} derniers mots de passe.
|
||||
invalidPasswordGenericMessage=Mot de passe invalide \: le nouveau mot de passe ne r\u00e9pond pas \u00e0 la politique de mot de passe.
|
||||
failedToProcessResponseMessage=Erreur lors du traitement de la r\u00e9ponse
|
||||
httpsRequiredMessage=Le protocole HTTPS est requis
|
||||
realmNotEnabledMessage=Le domaine n''est pas activ\u00e9
|
||||
invalidRequestMessage=Requ\u00eate invalide
|
||||
successLogout=Vous \u00eates d\u00e9connect\u00e9
|
||||
failedLogout=La d\u00e9connexion a \u00e9chou\u00e9e
|
||||
unknownLoginRequesterMessage=Compte inconnu du demandeur
|
||||
loginRequesterNotEnabledMessage=La connexion du demandeur n''est pas active
|
||||
bearerOnlyMessage=Les applications Bearer-only ne sont pas autoris\u00e9es \u00e0 initier la connexion par navigateur.
|
||||
standardFlowDisabledMessage=Le client n''est pas autoris\u00e9 \u00e0 initier une connexion avec le navigateur avec ce response_type. Le flux standard est d\u00e9sactiv\u00e9 pour le client.
|
||||
implicitFlowDisabledMessage=Le client n''est pas autoris\u00e9 \u00e0 initier une connexion avec le navigateur avec ce response_type. Le flux implicite est d\u00e9sactiv\u00e9 pour le client.
|
||||
invalidRedirectUriMessage=L''URI de redirection est invalide
|
||||
unsupportedNameIdFormatMessage=NameIDFormat non support\u00e9
|
||||
invalidRequesterMessage=Demandeur invalide
|
||||
registrationNotAllowedMessage=L''enregistrement n''est pas autoris\u00e9
|
||||
resetCredentialNotAllowedMessage=La remise \u00e0 z\u00e9ro n''est pas autoris\u00e9e
|
||||
permissionNotApprovedMessage=La permission n''est pas approuv\u00e9e.
|
||||
noRelayStateInResponseMessage=Aucun \u00e9tat de relais dans la r\u00e9ponse du fournisseur d''identit\u00e9.
|
||||
insufficientPermissionMessage=Permissions insuffisantes pour lier les identit\u00e9s.
|
||||
couldNotProceedWithAuthenticationRequestMessage=Impossible de continuer avec la requ\u00eate d''authentification vers le fournisseur d''identit\u00e9.
|
||||
couldNotObtainTokenMessage=Impossible de r\u00e9cup\u00e9rer le jeton du fournisseur d''identit\u00e9.
|
||||
unexpectedErrorRetrievingTokenMessage=Erreur inattendue lors de la r\u00e9cup\u00e9ration du jeton provenant du fournisseur d''identit\u00e9.
|
||||
unexpectedErrorHandlingResponseMessage=Erreur inattendue lors du traitement de la r\u00e9ponse provenant du fournisseur d''identit\u00e9.
|
||||
identityProviderAuthenticationFailedMessage=L''authentification a \u00e9chou\u00e9e. Impossible de s''authentifier avec le fournisseur d''identit\u00e9.
|
||||
couldNotSendAuthenticationRequestMessage=Impossible d''envoyer la requ\u00eate d''authentification vers le fournisseur d''identit\u00e9.
|
||||
unexpectedErrorHandlingRequestMessage=Erreur inattendue lors du traitement de la requ\u00eate vers le fournisseur d''identit\u00e9.
|
||||
invalidAccessCodeMessage=Code d''acc\u00e8s invalide.
|
||||
sessionNotActiveMessage=La session n''est pas active.
|
||||
invalidCodeMessage=Une erreur est survenue, veuillez vous reconnecter \u00e0 votre application.
|
||||
cookieNotFoundMessage=Cookie introuvable. Assurez-vous que les cookies soient activ\u00e9s dans votre navigateur.
|
||||
identityProviderUnexpectedErrorMessage=Erreur inattendue lors de l''authentification avec fournisseur d''identit\u00e9.
|
||||
identityProviderMissingStateMessage=Param\u00e8tre d''\u00e9tat manquant dans la r\u00e9ponse du fournisseur d''identit\u00e9.
|
||||
identityProviderNotFoundMessage=Impossible de trouver le fournisseur d''identit\u00e9 avec cet identifiant.
|
||||
identityProviderLinkSuccess=Votre compte a \u00e9t\u00e9 correctement li\u00e9 avec {0} compte {1} .
|
||||
staleCodeMessage=Cette page n''est plus valide, merci de retourner \u00e0 votre application et de vous connecter \u00e0 nouveau.
|
||||
realmSupportsNoCredentialsMessage=Ce domaine ne supporte aucun type d''accr\u00e9ditation.
|
||||
credentialSetupRequired=Connexion impossible, configuration d''accr\u00e9ditation requise.
|
||||
identityProviderNotUniqueMessage=Ce domaine autorise plusieurs fournisseurs d''identit\u00e9. Impossible de d\u00e9terminer le fournisseur d''identit\u00e9 avec lequel s''authentifier.
|
||||
emailVerifiedMessage=Votre courriel a \u00e9t\u00e9 v\u00e9rifi\u00e9.
|
||||
staleEmailVerificationLink=Le lien que vous avez cliqu\u00e9 est p\u00e9rim\u00e9 et n''est plus valide. Peut-\u00eatre avez vous d\u00e9j\u00e0 v\u00e9rifi\u00e9 votre mot de passe ?
|
||||
identityProviderAlreadyLinkedMessage=L''identit\u00e9 f\u00e9d\u00e9r\u00e9e retourn\u00e9e par {0} est d\u00e9j\u00e0 li\u00e9e \u00e0 un autre utilisateur.
|
||||
confirmAccountLinking=Confirmez la liaison du compte {0} du fournisseur d''entit\u00e9 {1} avec votre compte.
|
||||
confirmEmailAddressVerification=Confirmez la validit\u00e9 de l''adresse courriel {0}.
|
||||
confirmExecutionOfActions=Suivez les instructions suivantes
|
||||
backToApplication=« Revenir \u00e0 l''application
|
||||
missingParameterMessage=Param\u00e8tres manquants \: {0}
|
||||
clientNotFoundMessage=Client inconnu.
|
||||
clientDisabledMessage=Client d\u00e9sactiv\u00e9.
|
||||
invalidParameterMessage=Param\u00e8tre invalide \: {0}
|
||||
alreadyLoggedIn=Vous \u00eates d\u00e9j\u00e0 connect\u00e9.
|
||||
differentUserAuthenticated=Vous \u00eates d\u00e9j\u00e0 authentifi\u00e9 avec un autre utilisateur ''{0}'' dans cette session. Merci de vous d\u00e9connecter.
|
||||
brokerLinkingSessionExpired=La liaison entre comptes broker a \u00e9t\u00e9 demand\u00e9e, mais la session n''est plus valide.
|
||||
proceedWithAction=\u00bb Cliquez ici
|
||||
requiredAction.CONFIGURE_TOTP=Configurer OTP
|
||||
requiredAction.TERMS_AND_CONDITIONS=Termes et conditions
|
||||
requiredAction.UPDATE_PASSWORD=Mettre \u00e0 jour votre mot de passe
|
||||
requiredAction.UPDATE_PROFILE=Mettre \u00e0 jour votre profil
|
||||
requiredAction.VERIFY_EMAIL=Valider votre adresse email
|
||||
doX509Login=Vous allez \u00eatre connect\u00e9 en tant que\:
|
||||
clientCertificate=X509 certificat client\:
|
||||
noCertificate=[Pas de certificat]
|
||||
pageNotFound=Page non trouv\u00e9e
|
||||
internalServerError=Une erreur interne du serveur s''est produite
|
||||
identity-provider-redirector=Connexion avec un autre fournisseur d''identit\u00e9
|
||||
identity-provider-login-label=Ou se connecter avec
|
||||
idp-email-verification-display-name=V\u00e9rification du courriel
|
||||
idp-email-verification-help-text=Lier votre compte en validant votre courriel.
|
||||
idp-username-password-form-display-name=Nom d''utilisateur et mot de passe
|
||||
idp-username-password-form-help-text=Lier votre compte en vous connectant.
|
||||
console-username=Nom d''utilisateur\:
|
||||
console-password=Mot de passe\:
|
||||
console-otp=Code \u00e0 usage unique\:
|
||||
console-new-password=Nouveau mot de passe\:
|
||||
console-confirm-password=Confirmez les mot de passe\:
|
||||
console-update-password=La mise \u00e0 jour de votre mot de passe est requise.
|
||||
console-verify-email=Vous devez v\u00e9rifier votre adresse courriel. Nous avons envoy\u00e9 un courriel \u00e0 {0} contenant un code de v\u00e9rification. Veuillez saisir ce code ci-dessous.
|
||||
console-email-code=Code courriel\:
|
||||
console-accept-terms=Accepter les conditions? [o/n]\:
|
||||
console-accept=o
|
||||
password-display-name=Mot de passe
|
||||
password-help-text=Connectez-vous en saisissant votre mot de passe.
|
||||
auth-username-form-display-name=Nom d''utilisateur
|
||||
auth-username-form-help-text=Commencez la connexion en saisissant votre nom d''utilisateur.
|
||||
auth-username-password-form-display-name=Nom d''utilisateur et mot de passe
|
||||
auth-username-password-form-help-text=Connectez-vous en saisissant votre nom d''utilisateur et votre mot de passe.
|
||||
webauthn-display-name=Cl\u00e9 de S\u00e9curit\u00e9
|
||||
webauthn-help-text=Utilisez votre cl\u00e9 de s\u00e9curit\u00e9 pour vous connecter.
|
||||
webauthn-passwordless-display-name=Cl\u00e9 de S\u00e9curit\u00e9
|
||||
webauthn-passwordless-help-text=Utilisez votre cl\u00e9 de s\u00e9curit\u00e9 pour vous connecter sans mot de passe.
|
||||
webauthn-login-title=Connexion avec une Cl\u00e9 de S\u00e9curit\u00e9
|
||||
webauthn-registration-title=Enregistrement d''une Cl\u00e9 de S\u00e9curit\u00e9
|
||||
webauthn-available-authenticators=Cl\u00e9s de S\u00e9curit\u00e9 disponibles
|
||||
webauthn-unsupported-browser-text=WebAuthn n''est pas support\u00e9 par ce navigateur. Essayez une autre m\u00e9thode ou contactez votre administrateur.
|
||||
webauthn-doAuthenticate=Se connecter avec une Cl\u00e9 de S\u00e9curit\u00e9
|
||||
webauthn-createdAt-label=Cr\u00e9\u00e9 le
|
||||
webauthn-error-title=Erreur lors de l''utilisation de la Cl\u00e9 de S\u00e9curit\u00e9
|
||||
webauthn-error-registration=L''enregistrement de la Cl\u00e9 de S\u00e9curit\u00e9 a \u00e9chou\u00e9.<br/> {0}
|
||||
webauthn-error-api-get=L''authentification via la Cl\u00e9 de S\u00e9curit\u00e9 a \u00e9chou\u00e9.<br/> {0}
|
||||
webauthn-error-different-user=Le premier utilisateur authentifi\u00e9 ne correspond pas \u00e0 celui qui est authentifi\u00e9 par la Cl\u00e9 de S\u00e9curit\u00e9.
|
||||
webauthn-error-auth-verification=Le r\u00e9sultat de l''authentification produite par la cl\u00e9 de s\u00e9curit\u00e9 est invalide.<br/> {0}
|
||||
webauthn-error-register-verification=Le r\u00e9sultat de l''enregistrement de la cl\u00e9 de s\u00e9curit\u00e9 est invalide.<br/> {0}
|
||||
webauthn-error-user-not-found=La Cl\u00e9 de S\u00e9curit\u00e9 a authentifi\u00e9 un utilisateur inconnu.
|
||||
finalDeletionConfirmation=Si vous supprimez votre compte, il ne pourra pas \u00eatre restaur\u00e9. Pour conserver votre compte, cliquez sur Annuler.
|
||||
irreversibleAction=Cette action est irr\u00e9versible
|
||||
deleteAccountConfirm=Confirmation de suppression de compte
|
||||
deletingImplies=Supprimer votre compte implique\:
|
||||
errasingData=Supprimer toutes vos donn\u00e9es
|
||||
loggingOutImmediately=Vous d\u00e9connecter imm\u00e9diatement
|
||||
accountUnusable=Toute utilisation future de l''application sera impossible avec ce compte
|
||||
userDeletedSuccessfully=Utilisateur supprim\u00e9 avec succ\u00e8s
|
||||
access-denied=Acc\u00e8s refus\u00e9
|
||||
frontchannel-logout.title=D\u00e9connexion
|
||||
frontchannel-logout.message=Vous \u00eates d\u00e9connect\u00e9 des applications suivantes
|
||||
logoutConfirmTitle=D\u00e9connexion
|
||||
logoutConfirmHeader=\u00cates-vous s\u00fbr de vouloir vous d\u00e9connecter ?
|
||||
doLogout=Se d\u00e9connecter
|
||||
shouldBeEqual={0} devrait \u00eatre \u00e9gal \u00e0 {1}
|
||||
shouldBeDifferent={0} devrait \u00eatre diff\u00e9rent de {1}
|
||||
shouldMatchPattern=Le motif devrait correspondre\: `/{0}/`
|
||||
mustBeAnInteger=Doit \u00eatre un entier
|
||||
notAValidOption=Pas une option valide
|
||||
selectAnOption=S\u00e9lectionnez une option
|
||||
remove=Supprimer
|
||||
addValue=Ajouter une valeur
|
||||
languages=Langues
|
@ -0,0 +1,441 @@
|
||||
|
||||
doLogIn=Bel\u00e9p\u00e9s
|
||||
doRegister=Regisztr\u00e1ci\u00f3
|
||||
doRegisterSecurityKey=Regisztr\u00e1ci\u00f3
|
||||
doCancel=M\u00e9gsem
|
||||
doSubmit=Elk\u00fcld
|
||||
doBack=Vissza
|
||||
doYes=Igen
|
||||
doNo=Nem
|
||||
doContinue=Folytat
|
||||
doIgnore=Mell\u0151z
|
||||
doAccept=Elfogad
|
||||
doDecline=Elutas\u00edt
|
||||
doForgotPassword=Elfelejtette a jelszav\u00e1t?
|
||||
doClickHere=Kattintson ide
|
||||
doImpersonate=Megszem\u00e9lyes\u00edt\u00e9s
|
||||
doTryAgain=Pr\u00f3b\u00e1lja \u00fajra
|
||||
doTryAnotherWay=P\u00f3rb\u00e1lja m\u00e1shogyan
|
||||
doConfirmDelete=T\u00f6rl\u00e9s meger\u0151s\u00edt\u00e9se
|
||||
errorDeletingAccount=Hiba t\u00f6rt\u00e9nt a fi\u00f3k t\u00f6rl\u00e9se k\u00f6zben
|
||||
deletingAccountForbidden=Nincs jogosults\u00e1ga a felhaszn\u00e1l\u00f3i fi\u00f3kj\u00e1nak t\u00f6rl\u00e9s\u00e9hez. K\u00e9rem, vegye fel a kapcsolatot az alkalmaz\u00e1s adminisztr\u00e1tor\u00e1val.
|
||||
kerberosNotConfigured=Nincs be\u00e1ll\u00edtva Kerberos
|
||||
kerberosNotConfiguredTitle=Nincs be\u00e1ll\u00edtva Kerberos
|
||||
bypassKerberosDetail=Vagy nem Kerberosszal l\u00e9pett be, vagy a b\u00f6ng\u00e9sz\u0151je nem kezeli a Kerberos alap\u00fa bel\u00e9p\u00e9st. K\u00e9rem, kattintson a Folytat gombra, egy m\u00e1sik bel\u00e9p\u00e9si m\u00f3dhoz.
|
||||
kerberosNotSetUp=Nincs be\u00e1ll\u00edtva Kerberos, nem lehet bel\u00e9pni.
|
||||
registerTitle=Regisztr\u00e1ci\u00f3
|
||||
loginAccountTitle=Jelentkezzen be a fi\u00f3kj\u00e1ba
|
||||
loginTitle=Bel\u00e9p\u00e9s ide\: {0}
|
||||
loginTitleHtml={0}
|
||||
impersonateTitle={0} megszem\u00e9lyes\u00edtett felhaszn\u00e1l\u00f3
|
||||
impersonateTitleHtml=<strong>{0}</strong> megszem\u00e9lyes\u00edtett felhaszn\u00e1l\u00f3
|
||||
realmChoice=Tartom\u00e1ny
|
||||
unknownUser=Ismeretlen felhaszn\u00e1l\u00f3
|
||||
loginTotpTitle=Mobil hiteles\u00edt\u0151 eszk\u00f6z be\u00e1ll\u00edt\u00e1sa
|
||||
loginProfileTitle=Felhaszn\u00e1l\u00f3i fi\u00f3k adatok m\u00f3dos\u00edt\u00e1sa
|
||||
loginIdpReviewProfileTitle=Fi\u00f3k adatainak m\u00f3dos\u00edt\u00e1sa
|
||||
loginTimeout=Bel\u00e9p\u00e9si k\u00eds\u00e9rlete id\u0151t\u00fall\u00e9p\u00e9s miatt meghi\u00fasult, a bel\u00e9p\u00e9si elj\u00e1r\u00e1s \u00fajraindul.
|
||||
reauthenticate=K\u00e9rem, jelentkezzen be \u00fajra a folytat\u00e1shoz
|
||||
oauthGrantTitle=Hozz\u00e1f\u00e9r\u00e9s enged\u00e9lyez\u00e9se a k\u00f6vetkez\u0151 sz\u00e1m\u00e1ra\: {0}
|
||||
oauthGrantTitleHtml={0}
|
||||
oauthGrantInformation=Gy\u0151z\u0151dj\u00f6n meg arr\u00f3l, hogy megb\u00edzik a(z) {0} alkalmaz\u00e1sban az\u00e1ltal, hogy megismeri, hogyan kezeli az adatait.
|
||||
oauthGrantReview=Tekintse \u00e1t
|
||||
oauthGrantTos=a Felhaszn\u00e1l\u00e1si felt\u00e9teleket.
|
||||
oauthGrantPolicy=az Adatv\u00e9delmi ir\u00e1nyelveket.
|
||||
errorTitle=Nagyon sajn\u00e1ljuk...
|
||||
errorTitleHtml=Nagyon <strong>sajn\u00e1ljuk</strong> ...
|
||||
emailVerifyTitle=E-mail ellen\u0151rz\u00e9s
|
||||
emailForgotTitle=Elfelejtette a jelszav\u00e1t?
|
||||
updateEmailTitle=E-mail c\u00edm m\u00f3dos\u00edt\u00e1sa
|
||||
emailUpdateConfirmationSentTitle=Meger\u0151s\u00edt\u0151 e-mail elk\u00fcldve
|
||||
emailUpdateConfirmationSent=Egy meger\u0151s\u00edt\u0151 e-mail ker\u00fclt elk\u00fcld\u00e9sre a(z) {0} c\u00edmre. K\u00f6vesse az abban tal\u00e1lhat\u00f3 utas\u00edt\u00e1sokat a v\u00e1ltoztat\u00e1sok v\u00e9gleges\u00edt\u00e9s\u00e9hez.
|
||||
emailUpdatedTitle=E-mail c\u00edm m\u00f3dos\u00edtva
|
||||
emailUpdated=A fi\u00f3k e-mail c\u00edme a k\u00f6vetkez\u0151re m\u00f3dosult\: {0}.
|
||||
updatePasswordTitle=Jelsz\u00f3 m\u00f3dos\u00edt\u00e1sa
|
||||
codeSuccessTitle=Sikeres k\u00e9r\u00e9s k\u00f3dja
|
||||
codeErrorTitle=Hibak\u00f3d\: {0}
|
||||
displayUnsupported=A k\u00e9rt megjelen\u00edt\u00e9si m\u00f3d nem t\u00e1mogatott
|
||||
browserRequired=A bel\u00e9p\u00e9shez b\u00f6ng\u00e9sz\u0151 sz\u00fcks\u00e9ges
|
||||
browserContinue=A bel\u00e9p\u00e9s befejez\u00e9s\u00e9hez b\u00f6ng\u00e9sz\u0151 sz\u00fcks\u00e9ges
|
||||
browserContinuePrompt=Megnyitja a b\u00f6ng\u00e9sz\u0151t \u00e9s folytatja a bel\u00e9p\u00e9st? [i/n]\:
|
||||
browserContinueAnswer=i
|
||||
usb=USB
|
||||
nfc=NFC
|
||||
bluetooth=Bluetooth
|
||||
internal=Bels\u0151
|
||||
unknown=Ismeretlen
|
||||
termsTitle=Felhaszn\u00e1l\u00e1si felt\u00e9telek
|
||||
termsText=
|
||||
termsPlainText=Felhaszn\u00e1l\u00e1si felt\u00e9telek helye
|
||||
termsAcceptanceRequired=El kell fogadnia a felhaszn\u00e1l\u00e1si felt\u00e9teleket.
|
||||
acceptTerms=Elfogadom a felhaszn\u00e1l\u00e1si felt\u00e9teleket
|
||||
recaptchaFailed=\u00c9rv\u00e9nytelen Recaptcha
|
||||
recaptchaNotConfigured=Recaptcha sz\u00fcks\u00e9ges, de nincsen be\u00e1ll\u00edtva
|
||||
consentDenied=J\u00f3v\u00e1hagy\u00f3 nyilatkozat elutas\u00edtva.
|
||||
noAccount=\u00daj felhaszn\u00e1l\u00f3?
|
||||
username=Felhaszn\u00e1l\u00f3n\u00e9v
|
||||
usernameOrEmail=Felhaszn\u00e1l\u00f3n\u00e9v vagy email
|
||||
firstName=Keresztn\u00e9v
|
||||
givenName=Keresztn\u00e9v
|
||||
fullName=Teljes n\u00e9v
|
||||
lastName=Vezet\u00e9kn\u00e9v
|
||||
familyName=Vezet\u00e9kn\u00e9v
|
||||
email=E-mail c\u00edm
|
||||
password=Jelsz\u00f3
|
||||
passwordConfirm=Jelsz\u00f3 meger\u0151s\u00edt\u00e9se
|
||||
passwordNew=\u00daj jelsz\u00f3
|
||||
passwordNewConfirm=\u00daj jelsz\u00f3 meger\u0151s\u00edt\u00e9se
|
||||
rememberMe=Automatikus bejelentkez\u00e9s
|
||||
authenticatorCode=Egyszer haszn\u00e1latos hiteles\u00edt\u0151 k\u00f3d
|
||||
address=C\u00edm
|
||||
street=K\u00f6zter\u00fclet
|
||||
locality=Telep\u00fcl\u00e9s
|
||||
region=\u00c1llam, Tartom\u00e1ny, Megye, R\u00e9gi\u00f3
|
||||
postal_code=Ir\u00e1ny\u00edt\u00f3sz\u00e1m
|
||||
country=Orsz\u00e1g
|
||||
emailVerified=Ellen\u0151rz\u00f6tt e-mail c\u00edm
|
||||
website=Weboldal
|
||||
phoneNumber=Telefonsz\u00e1m
|
||||
phoneNumberVerified=Ellen\u0151rz\u00f6tt telefonsz\u00e1m
|
||||
gender=Nem
|
||||
birthday=Sz\u00fclet\u00e9si d\u00e1tum
|
||||
zoneinfo=Id\u0151z\u00f3na
|
||||
gssDelegationCredential=GSS deleg\u00e1lt hiteles\u00edt\u00e9s
|
||||
logoutOtherSessions=Kijelentkez\u00e9s m\u00e1s eszk\u00f6z\u00f6kr\u0151l
|
||||
profileScopeConsentText=Felhaszn\u00e1l\u00f3i fi\u00f3k
|
||||
emailScopeConsentText=E-mail c\u00edm
|
||||
addressScopeConsentText=C\u00edm
|
||||
phoneScopeConsentText=Telefonsz\u00e1m
|
||||
offlineAccessScopeConsentText=Offline hozz\u00e1f\u00e9r\u00e9s
|
||||
samlRoleListScopeConsentText=Szerepk\u00f6reim
|
||||
rolesScopeConsentText=Felhaszn\u00e1l\u00f3i szerepk\u00f6r\u00f6k
|
||||
restartLoginTooltip=Bel\u00e9p\u00e9s \u00fajrakezd\u00e9se
|
||||
loginTotpIntro=A felhaszn\u00e1l\u00f3i fi\u00f3k hozz\u00e1f\u00e9r\u00e9shez be kell \u00e1ll\u00edtania egy egyszer haszn\u00e1latos jelsz\u00f3t (OTP) gener\u00e1l\u00f3 alkalmaz\u00e1st.
|
||||
loginTotpStep1=K\u00e9rem, telep\u00edtse az itt felsorolt alkalmaz\u00e1sok egyik\u00e9t a mobil eszk\u00f6z\u00e9re\:
|
||||
loginTotpStep2=Ind\u00edtsa el az alkalmaz\u00e1st a mobil eszk\u00f6z\u00e9n \u00e9s olvassa be ezt a (QR) k\u00f3dot\:
|
||||
loginTotpStep3=Adja meg az alkalmaz\u00e1s \u00e1ltal gener\u00e1lt egyszer haszn\u00e1latos k\u00f3dot majd kattintson az Elk\u00fcld gombra a be\u00e1ll\u00edt\u00e1s befejez\u00e9s\u00e9hez.
|
||||
loginTotpStep3DeviceName=Adja meg a mobil eszk\u00f6z nev\u00e9t. Ez a k\u00e9s\u0151bbiekben seg\u00edthet az eszk\u00f6z azonos\u00edt\u00e1s\u00e1ban.
|
||||
loginTotpManualStep2=Ind\u00edtsa el az alkalmaz\u00e1st \u00e9s adja meg a k\u00f6vetkez\u0151 kulcsot\:
|
||||
loginTotpManualStep3=Haszn\u00e1lja a k\u00f6vetkez\u0151 be\u00e1ll\u00edt\u00e1sokat, ha az alkalmaz\u00e1sa t\u00e1mogatja ezeket\:
|
||||
loginTotpUnableToScan=Nem tud (QR) k\u00f3dot beolvasni?
|
||||
loginTotpScanBarcode=Ink\u00e1bb (QR) k\u00f3dot olvasna be?
|
||||
loginCredential=Jelsz\u00f3
|
||||
loginOtpOneTime=Egyszer haszn\u00e1latos k\u00f3d
|
||||
loginTotpType=T\u00edpus
|
||||
loginTotpAlgorithm=Algoritmus
|
||||
loginTotpDigits=Sz\u00e1mjegyek
|
||||
loginTotpInterval=Intervallum
|
||||
loginTotpCounter=Sz\u00e1ml\u00e1l\u00f3
|
||||
loginTotpDeviceName=Eszk\u00f6z neve
|
||||
loginTotp.totp=Id\u0151 alap\u00fa
|
||||
loginTotp.hotp=Sz\u00e1ml\u00e1l\u00f3 alap\u00fa
|
||||
totpAppFreeOTPName=FreeOTP
|
||||
totpAppGoogleName=Google Authenticator
|
||||
totpAppMicrosoftAuthenticatorName=Microsoft Authenticator
|
||||
loginChooseAuthenticator=V\u00e1lasszon egy bel\u00e9p\u00e9si m\u00f3dszert
|
||||
oauthGrantRequest=Enged\u00e9lyezi a k\u00f6vetkez\u0151 hozz\u00e1f\u00e9r\u00e9s jogosults\u00e1gokat?
|
||||
inResource=Itt\:
|
||||
oauth2DeviceVerificationTitle=Eszk\u00f6z hiteles\u00edt\u00e9se
|
||||
verifyOAuth2DeviceUserCode=\u00cdrja be az eszk\u00f6z \u00e1ltal gener\u00e1lt k\u00f3dot, majd kattintson az Elk\u00fcld gombra
|
||||
oauth2DeviceInvalidUserCodeMessage=\u00c9rv\u00e9nytelen k\u00f3d, k\u00e9rem, pr\u00f3b\u00e1lja \u00fajra.
|
||||
oauth2DeviceExpiredUserCodeMessage=A k\u00f3d \u00e9rv\u00e9nyess\u00e9ge lej\u00e1rt. K\u00e9rem, t\u00e9rjen vissza az eszk\u00f6zh\u00f6z \u00e9s pr\u00f3b\u00e1lja \u00fajra.
|
||||
oauth2DeviceVerificationCompleteHeader=Eszk\u00f6z hiteles\u00edt\u00e9se sikeres
|
||||
oauth2DeviceVerificationCompleteMessage=Bez\u00e1rhatja ezt az oldalt \u00e9s visszat\u00e9rhet az eszk\u00f6zh\u00f6z.
|
||||
oauth2DeviceVerificationFailedHeader=Eszk\u00f6z hiteles\u00edt\u00e9se sikertelen
|
||||
oauth2DeviceVerificationFailedMessage=Bez\u00e1rhatja ezt az oldalt. K\u00e9rem, t\u00e9rjen vissza az eszk\u00f6zh\u00f6z \u00e9s pr\u00f3b\u00e1ljon meg csatlakozni \u00fajra.
|
||||
oauth2DeviceConsentDeniedMessage=J\u00f3v\u00e1hagy\u00f3 nyilatkozat elutas\u00edtva az eszk\u00f6z sz\u00e1m\u00e1ra.
|
||||
oauth2DeviceAuthorizationGrantDisabledMessage=Az alkalmaz\u00e1s nem ind\u00edthat OAuth 2.0 Eszk\u00f6z Hiteles\u00edt\u00e9st. Ez a folyamat nincsen enged\u00e9lyezve ezen alkalmaz\u00e1s sz\u00e1m\u00e1ra.
|
||||
emailVerifyInstruction1=A megadott e-mail c\u00edmre elk\u00fcldt\u00fck az e-mail c\u00edm meger\u0151s\u00edt\u00e9s\u00e9hez sz\u00fcks\u00e9ges l\u00e9p\u00e9seket tartalmaz\u00f3 \u00fczenetet.
|
||||
emailVerifyInstruction2=Nem kapott meger\u0151s\u00edt\u0151 k\u00f3dot tartalmaz\u00f3 e-mail \u00fczenetet?
|
||||
emailVerifyInstruction3=az ellen\u0151rz\u0151 k\u00f3d ism\u00e9telt kik\u00fcld\u00e9s\u00e9hez.
|
||||
emailLinkIdpTitle={0} \u00f6sszek\u00f6t\u00e9s
|
||||
emailLinkIdp1=A(z) {1} {0} fi\u00f3k \u00e9s a(z) {2} fi\u00f3kj\u00e1nak \u00f6sszek\u00f6t\u00e9s\u00e9hez sz\u00fcks\u00e9ges tudnival\u00f3kat e-mail \u00fczenetben elk\u00fcldt\u00fck \u00d6nnek.
|
||||
emailLinkIdp2=Nem kapott meger\u0151s\u00edt\u0151 k\u00f3dot tartalmaz\u00f3 e-mail \u00fczenetet?
|
||||
emailLinkIdp3=az ellen\u0151rz\u0151 k\u00f3d ism\u00e9telt kik\u00fcld\u00e9s\u00e9hez.
|
||||
emailLinkIdp4=Ha egy m\u00e1sik b\u00f6ng\u00e9sz\u0151ben m\u00e1r j\u00f3v\u00e1hagyta az e-mail c\u00edm\u00e9t
|
||||
emailLinkIdp5=a folytat\u00e1shoz.
|
||||
backToLogin=« Vissza a bel\u00e9p\u00e9shez
|
||||
emailInstruction=Adja meg a felhaszn\u00e1l\u00f3nev\u00e9t vagy e-mail c\u00edm\u00e9t, hogy az \u00faj jelsz\u00f3 be\u00e1ll\u00edt\u00e1s\u00e1hoz sz\u00fcks\u00e9ges tudnival\u00f3kat elk\u00fcldhess\u00fck \u00d6nnek.
|
||||
emailInstructionUsername=Adja meg a felhaszn\u00e1l\u00f3nev\u00e9t, hogy az \u00faj jelsz\u00f3 be\u00e1ll\u00edt\u00e1s\u00e1hoz sz\u00fcks\u00e9ges tudnival\u00f3kat elk\u00fcldhess\u00fck \u00d6nnek.
|
||||
copyCodeInstruction=K\u00e9rem, m\u00e1solja ki ezt a k\u00f3dot \u00e9s illessze be az alkalmaz\u00e1s\u00e1ba\:
|
||||
pageExpiredTitle=A lap \u00e9rv\u00e9nyess\u00e9ge lej\u00e1rt
|
||||
pageExpiredMsg1=Ahhoz, hogy \u00fajrakezdje a bel\u00e9p\u00e9si elj\u00e1r\u00e1st
|
||||
pageExpiredMsg2=Ahhoz, hogy folytassa a bel\u00e9p\u00e9si elj\u00e1r\u00e1st
|
||||
personalInfo=Szem\u00e9lyes adatok\:
|
||||
role_admin=Adminisztr\u00e1tor
|
||||
role_realm-admin=Tartom\u00e1ny Adminisztr\u00e1tor
|
||||
role_create-realm=Tartom\u00e1ny l\u00e9trehoz\u00e1sa
|
||||
role_create-client=Kliens l\u00e9trehoz\u00e1sa
|
||||
role_view-realm=Tartom\u00e1nyok megtekint\u00e9se
|
||||
role_view-users=Felhaszn\u00e1l\u00f3k megtekint\u00e9se
|
||||
role_view-applications=Alkalmaz\u00e1sok megtekint\u00e9se
|
||||
role_view-clients=Kliensek megtekint\u00e9se
|
||||
role_view-events=Esem\u00e9nyek megtekint\u00e9se
|
||||
role_view-identity-providers=Szem\u00e9lyazonoss\u00e1g-kezel\u0151k megtekint\u00e9se
|
||||
role_manage-realm=Tartom\u00e1nyok kezel\u00e9se
|
||||
role_manage-users=Felhaszn\u00e1l\u00f3k kezel\u00e9se
|
||||
role_manage-applications=Alkalmaz\u00e1sok kezel\u00e9se
|
||||
role_manage-identity-providers=Szem\u00e9lyazonoss\u00e1g-kezel\u0151k karbantart\u00e1sa
|
||||
role_manage-clients=Kliensek kezel\u00e9se
|
||||
role_manage-events=Esem\u00e9nyek kezel\u00e9se
|
||||
role_view-profile=Fi\u00f3k megtekint\u00e9se
|
||||
role_manage-account=Fi\u00f3k kezel\u00e9se
|
||||
role_manage-account-links=Fi\u00f3k \u00f6sszek\u00f6t\u00e9sek kezel\u00e9se
|
||||
role_read-token=Olvas\u00e1si token
|
||||
role_offline-access=Offline hozz\u00e1f\u00e9r\u00e9s
|
||||
client_account=Fi\u00f3k
|
||||
client_account-console=Fi\u00f3k kezel\u00e9s
|
||||
client_security-admin-console=Biztons\u00e1gi, adminisztr\u00e1tor fi\u00f3k kezel\u00e9s
|
||||
client_admin-cli=Admin CLI
|
||||
client_realm-management=Tartom\u00e1ny kezel\u00e9s
|
||||
client_broker=\u00dcgyn\u00f6k
|
||||
requiredFields=K\u00f6telez\u0151en kit\u00f6ltend\u0151 mez\u0151k
|
||||
invalidUserMessage=\u00c9rv\u00e9nytelen felhaszn\u00e1l\u00f3n\u00e9v vagy jelsz\u00f3.
|
||||
invalidUsernameMessage=\u00c9rv\u00e9nytelen felhaszn\u00e1l\u00f3n\u00e9v.
|
||||
invalidUsernameOrEmailMessage=\u00c9rv\u00e9nytelen felhaszn\u00e1l\u00f3n\u00e9v vagy e-mail c\u00edm.
|
||||
invalidPasswordMessage=\u00c9rv\u00e9nytelen jelsz\u00f3.
|
||||
invalidEmailMessage=\u00c9rv\u00e9nytelen e-mail c\u00edm.
|
||||
accountDisabledMessage=Felhaszn\u00e1l\u00f3i fi\u00f3kja inakt\u00edv, k\u00e9rem, vegye fel a kapcsolatot az alkalmaz\u00e1s adminisztr\u00e1tor\u00e1val.
|
||||
accountTemporarilyDisabledMessage=Felhaszn\u00e1l\u00f3i fi\u00f3kja \u00e1tmenetileg inakt\u00edv, k\u00e9rem, vegye fel a kapcsolatot az alkalmaz\u00e1s adminisztr\u00e1tor\u00e1val, vagy pr\u00f3b\u00e1lkozzon k\u00e9s\u0151bb.
|
||||
expiredCodeMessage=Bel\u00e9p\u00e9si id\u0151t\u00fall\u00e9p\u00e9s, k\u00e9rem, l\u00e9pjen be \u00fajra.
|
||||
expiredActionMessage=A m\u0171velet \u00e9rv\u00e9nyess\u00e9gi ideje lej\u00e1rt. K\u00e9rem, l\u00e9pjen be \u00fajra.
|
||||
expiredActionTokenNoSessionMessage=A m\u0171velet \u00e9rv\u00e9nyess\u00e9gi ideje lej\u00e1rt.
|
||||
expiredActionTokenSessionExistsMessage=A m\u0171velet \u00e9rv\u00e9nyess\u00e9gi ideje lej\u00e1rt. K\u00e9rem, ism\u00e9telje meg a m\u0171veletet.
|
||||
sessionLimitExceeded=T\u00fal sok az akt\u00edv munkamenet
|
||||
missingFirstNameMessage=K\u00e9rem, adja meg a keresztnevet.
|
||||
missingLastNameMessage=K\u00e9rem, adja meg a vezet\u00e9knevet.
|
||||
missingEmailMessage=K\u00e9rem, adja meg az e-mail c\u00edmet.
|
||||
missingUsernameMessage=K\u00e9rem, adja meg a felhaszn\u00e1l\u00f3nev\u00e9t.
|
||||
missingPasswordMessage=K\u00e9rem, adja meg a jelsz\u00f3t.
|
||||
missingTotpMessage=K\u00e9rem, adja meg a hiteles\u00edt\u0151 k\u00f3dot.
|
||||
missingTotpDeviceNameMessage=K\u00e9rem, adja meg az eszk\u00f6z nev\u00e9t.
|
||||
notMatchPasswordMessage=A jelszavak nem egyeznek meg.
|
||||
error-invalid-value=\u00c9rv\u00e9nytelen \u00e9rt\u00e9k
|
||||
error-invalid-blank=K\u00e9rem, adja meg a mez\u0151 \u00e9rt\u00e9k\u00e9t.
|
||||
error-empty=K\u00e9rem, adja meg a mez\u0151 \u00e9rt\u00e9k\u00e9t.
|
||||
error-invalid-length=A hossznak {1} \u00e9s {2} karakter k\u00f6z\u00f6tt kell lennie.
|
||||
error-invalid-length-too-short=A minim\u00e1lis hossz {1} karakter.
|
||||
error-invalid-length-too-long=A maxim\u00e1lis hossz {2} karakter.
|
||||
error-invalid-email=\u00c9rv\u00e9nytelen e-mail c\u00edm.
|
||||
error-invalid-number=\u00c9rv\u00e9nytelen sz\u00e1m.
|
||||
error-number-out-of-range=A sz\u00e1m {1} \u00e9s {2} k\u00f6z\u00f6tti \u00e9rt\u00e9ket vehet fel.
|
||||
error-number-out-of-range-too-small=A sz\u00e1m minim\u00e1lis \u00e9rt\u00e9ke\: {1}.
|
||||
error-number-out-of-range-too-big=A sz\u00e1m maxim\u00e1lis \u00e9rt\u00e9ke\: {2}.
|
||||
error-pattern-no-match=\u00c9rv\u00e9nytelen \u00e9rt\u00e9k.
|
||||
error-invalid-uri=\u00c9rv\u00e9nytelen URL.
|
||||
error-invalid-uri-scheme=\u00c9rv\u00e9nytelen URL s\u00e9ma.
|
||||
error-invalid-uri-fragment=\u00c9rv\u00e9nytelen URL fragmens.
|
||||
error-user-attribute-required=K\u00e9rem, t\u00f6ltse ki ezt a mez\u0151t.
|
||||
error-invalid-date=\u00c9rv\u00e9nytelen d\u00e1tum.
|
||||
error-user-attribute-read-only=Ez a mez\u0151 csak olvashat\u00f3.
|
||||
error-username-invalid-character=A felhaszn\u00e1l\u00f3n\u00e9v \u00e9rv\u00e9nytelen karaktert tartalmaz.
|
||||
error-person-name-invalid-character=A n\u00e9v \u00e9rv\u00e9nytelen karaktert tartalmaz.
|
||||
error-reset-otp-missing-id=K\u00e9rem, v\u00e1lasszon egyszer haszn\u00e1latos hiteles\u00edt\u00e9si (OTP) elj\u00e1r\u00e1st.
|
||||
invalidPasswordExistingMessage=\u00c9rv\u00e9nytelen jelenlegi jelsz\u00f3.
|
||||
invalidPasswordBlacklistedMessage=\u00c9rv\u00e9nytelen jelsz\u00f3\: a jelsz\u00f3 tilt\u00f3 list\u00e1n szerepel.
|
||||
invalidPasswordConfirmMessage=A jelszavak nem egyeznek meg.
|
||||
invalidTotpMessage=\u00c9rv\u00e9nytelen hiteles\u00edt\u0151 k\u00f3d.
|
||||
usernameExistsMessage=Ez a felhaszn\u00e1l\u00f3n\u00e9v m\u00e1r foglalt.
|
||||
emailExistsMessage=Ez az e-mail c\u00edm m\u00e1r foglalt.
|
||||
federatedIdentityExistsMessage=A megadott {0} {1} felhaszn\u00e1l\u00f3 m\u00e1r l\u00e9tezik. K\u00e9rem, l\u00e9pjen be a Keycloak Fi\u00f3k Kezel\u0151be, hogy \u00f6sszek\u00f6thesse a fi\u00f3kokat.
|
||||
federatedIdentityUnavailableMessage=A(z) {1} szem\u00e9lyazonoss\u00e1g-kezel\u0151 \u00e1ltal hiteles\u00edtett felhaszn\u00e1l\u00f3, {0} nem l\u00e9tezik. K\u00e9rem, vegye fel a kapcsolatot az alkalmaz\u00e1s adminisztr\u00e1tor\u00e1val.
|
||||
federatedIdentityUnmatchedEssentialClaimMessage=A szem\u00e9lyazonoss\u00e1g-kezel\u0151 \u00e1ltal ki\u00e1ll\u00edtott ID token nem egyezik az alapvet\u0151 be\u00e1ll\u00edt\u00e1ssal. K\u00e9rem, vegye fel a kapcsolatot az alkalmaz\u00e1s adminisztr\u00e1tor\u00e1val.
|
||||
confirmLinkIdpTitle=A felhaszn\u00e1l\u00f3i fi\u00f3k m\u00e1r l\u00e9tezik
|
||||
federatedIdentityConfirmLinkMessage=A megadott {0} {1} felhaszn\u00e1l\u00f3 m\u00e1r l\u00e9tezik. Hogyan tov\u00e1bb?
|
||||
federatedIdentityConfirmReauthenticateMessage=Azonos\u00edtsa mag\u00e1t, hogy \u00f6sszek\u00f6thesse a felhaszn\u00e1l\u00f3i fi\u00f3kj\u00e1t a k\u00f6vetkez\u0151vel\: {0}
|
||||
nestedFirstBrokerFlowMessage=A(z) {0} {1} felhaszn\u00e1l\u00f3 nincs \u00f6sszek\u00f6tve egyetlen ismert felhaszn\u00e1l\u00f3val sem.
|
||||
confirmLinkIdpReviewProfile=Fi\u00f3k \u00e1ttekint\u00e9se
|
||||
confirmLinkIdpContinue=Hozz\u00e1ad\u00e1s megl\u00e9v\u0151 fi\u00f3khoz
|
||||
configureTotpMessage=Fi\u00f3kja aktiv\u00e1l\u00e1s\u00e1hoz el\u0151bb be kell \u00e1ll\u00edtania egy mobil hiteles\u00edt\u0151 eszk\u00f6zt.
|
||||
configureBackupCodesMessage=Fi\u00f3kja aktiv\u00e1l\u00e1s\u00e1hoz el\u0151bb l\u00e9tre kell hoznia Biztons\u00e1gi K\u00f3dokat.
|
||||
updateProfileMessage=Fi\u00f3kja aktiv\u00e1l\u00e1s\u00e1hoz el\u0151bb m\u00f3dos\u00edtania kell a felhaszn\u00e1l\u00f3i adatait.
|
||||
updatePasswordMessage=Fi\u00f3kja aktiv\u00e1l\u00e1s\u00e1hoz el\u0151bb le kell cser\u00e9lnie a jelszav\u00e1t.
|
||||
updateEmailMessage=Fi\u00f3kja aktiv\u00e1l\u00e1s\u00e1hoz el\u0151bb m\u00f3dos\u00edtania kell e-mail c\u00edm\u00e9t.
|
||||
resetPasswordMessage=Cser\u00e9lje le jelszav\u00e1t\!
|
||||
verifyEmailMessage=Fi\u00f3kja aktiv\u00e1l\u00e1s\u00e1hoz el\u0151bb er\u0151s\u00edtse meg e-mail c\u00edm\u00e9t.
|
||||
linkIdpMessage=Fi\u00f3kja \u00f6sszek\u00f6t\u00e9s\u00e9hez el\u0151bb er\u0151s\u00edtse meg e-mail c\u00edm\u00e9t a k\u00f6vetkez\u0151vel\: {0}.
|
||||
emailSentMessage=Hamarosan e-mail \u00fczenetet k\u00fcld\u00fcnk a tov\u00e1bbi tudnival\u00f3kr\u00f3l.
|
||||
emailSendErrorMessage=Az e-mail \u00fczenetet nem tudtuk elk\u00fcldeni. K\u00e9rem, pr\u00f3b\u00e1lja meg k\u00e9s\u0151bb.
|
||||
accountUpdatedMessage=A felhaszn\u00e1l\u00f3i fi\u00f3k adatai megv\u00e1ltoztak.
|
||||
accountPasswordUpdatedMessage=A jelszava megv\u00e1ltozott.
|
||||
delegationCompleteHeader=Sikeres bel\u00e9p\u00e9s
|
||||
delegationCompleteMessage=Becsukhatja a b\u00f6ng\u00e9sz\u0151 ablakot \u00e9s visszat\u00e9rhet a konzolos alkalmaz\u00e1s\u00e1hoz.
|
||||
delegationFailedHeader=Sikertelen bel\u00e9p\u00e9s
|
||||
delegationFailedMessage=Becsukhatja a b\u00f6ng\u00e9sz\u0151 ablakot \u00e9s visszat\u00e9rhet a konzolos alkalmaz\u00e1s\u00e1hoz, ahol \u00fajb\u00f3l megpr\u00f3b\u00e1lhat a bel\u00e9pni.
|
||||
noAccessMessage=Nincs hozz\u00e1f\u00e9r\u00e9s
|
||||
invalidPasswordMinLengthMessage=\u00c9rv\u00e9nytelen jelsz\u00f3\: minimum hossz\: {0}.
|
||||
invalidPasswordMaxLengthMessage=\u00c9rv\u00e9nytelen jelsz\u00f3\: maximum hossz\: {0}.
|
||||
invalidPasswordMinDigitsMessage=\u00c9rv\u00e9nytelen jelsz\u00f3\: legal\u00e1bb {0} darab sz\u00e1mjegyet kell tartalmaznia.
|
||||
invalidPasswordMinLowerCaseCharsMessage=\u00c9rv\u00e9nytelen jelsz\u00f3\: legal\u00e1bb {0} darab kisbet\u0171t kell tartalmaznia.
|
||||
invalidPasswordMinUpperCaseCharsMessage=\u00c9rv\u00e9nytelen jelsz\u00f3\: legal\u00e1bb {0} darab nagybet\u0171t kell tartalmaznia.
|
||||
invalidPasswordMinSpecialCharsMessage=\u00c9rv\u00e9nytelen jelsz\u00f3\: legal\u00e1bb {0} darab speci\u00e1lis karaktert (pl. \#\!$@ stb.) kell tartalmaznia.
|
||||
invalidPasswordNotUsernameMessage=\u00c9rv\u00e9nytelen jelsz\u00f3\: nem lehet azonos a felhaszn\u00e1l\u00f3n\u00e9vvel.
|
||||
invalidPasswordNotEmailMessage=\u00c9rv\u00e9nytelen jelsz\u00f3\: nem lehet azonos az e-mail c\u00edmmel.
|
||||
invalidPasswordRegexPatternMessage=\u00c9rv\u00e9nytelen jelsz\u00f3\: a jelsz\u00f3 nem illeszkedik a megadott regul\u00e1ris kifejez\u00e9s mint\u00e1ra.
|
||||
invalidPasswordHistoryMessage=\u00c9rv\u00e9nytelen jelsz\u00f3\: nem lehet azonos az utols\u00f3 {0} darab, kor\u00e1bban alkalmazott jelsz\u00f3val.
|
||||
invalidPasswordGenericMessage=\u00c9rv\u00e9nytelen jelsz\u00f3\: az \u00faj jelsz\u00f3 nem felel meg a jelsz\u00f3 h\u00e1zirendnek.
|
||||
failedToProcessResponseMessage=A v\u00e1lasz \u00fczenet feldolgoz\u00e1sa nem siker\u00fclt.
|
||||
httpsRequiredMessage=HTTPS protokoll haszn\u00e1lata k\u00f6telez\u0151.
|
||||
realmNotEnabledMessage=A tartom\u00e1ny inakt\u00edv.
|
||||
invalidRequestMessage=\u00c9rv\u00e9nytelen k\u00e9r\u00e9s.
|
||||
successLogout=Sikeres kil\u00e9p\u00e9s.
|
||||
failedLogout=A kil\u00e9p\u00e9s sikertelen.
|
||||
unknownLoginRequesterMessage=A bel\u00e9p\u00e9st k\u00e9relmez\u0151 ismeretlen.
|
||||
loginRequesterNotEnabledMessage=A bel\u00e9p\u00e9st k\u00e9relmez\u0151 inakt\u00edv.
|
||||
bearerOnlyMessage=Bearer-only alkalmaz\u00e1sok nem kezdem\u00e9nyezhetnek b\u00f6ng\u00e9sz\u0151 alap\u00fa bel\u00e9ptet\u00e9st.
|
||||
standardFlowDisabledMessage=Ez a kliens nem kezdem\u00e9nyezhet b\u00f6ng\u00e9sz\u0151 alap\u00fa bel\u00e9ptet\u00e9st a megadott v\u00e1lasz t\u00edpussal. A standard bel\u00e9p\u00e9si elj\u00e1r\u00e1s (flow) tiltott a kliensen.
|
||||
implicitFlowDisabledMessage=Ez a kliens nem kezdem\u00e9nyezhet b\u00f6ng\u00e9sz\u0151 alap\u00fa bel\u00e9ptet\u00e9st a megadott v\u00e1lasz t\u00edpussal. Az implicit bel\u00e9p\u00e9si elj\u00e1r\u00e1s (flow) tiltott a kliensen.
|
||||
invalidRedirectUriMessage=\u00c9rv\u00e9nytelen \u00e1tir\u00e1ny\u00edt\u00e1si c\u00edm (URI)
|
||||
unsupportedNameIdFormatMessage=Nem t\u00e1mogatott NameIDFormat
|
||||
invalidRequesterMessage=\u00c9rv\u00e9nytelen k\u00e9relmez\u0151
|
||||
registrationNotAllowedMessage=A felhaszn\u00e1l\u00f3 regisztr\u00e1ci\u00f3 tiltott.
|
||||
resetCredentialNotAllowedMessage=A jelsz\u00f3 vissza\u00e1ll\u00edt\u00e1s tiltott.
|
||||
permissionNotApprovedMessage=A jogosults\u00e1g nincsen j\u00f3v\u00e1hagyva.
|
||||
noRelayStateInResponseMessage=Nincsen "relay state" a szem\u00e9lyazonoss\u00e1g-kezel\u0151 v\u00e1lasz\u00fczenet\u00e9ben.
|
||||
insufficientPermissionMessage=Nincs el\u00e9g jogosults\u00e1g a fi\u00f3kok \u00f6sszek\u00f6t\u00e9s\u00e9hez.
|
||||
couldNotProceedWithAuthenticationRequestMessage=A szem\u00e9lyazonoss\u00e1g-kezel\u0151 fel\u00e9 ind\u00edtott hiteles\u00edt\u00e9si k\u00e9r\u00e9s sikertelen.
|
||||
couldNotObtainTokenMessage=Nem siker\u00fclt tokent ig\u00e9nyelni a szem\u00e9lyazonoss\u00e1g-kezel\u0151t\u0151l.
|
||||
unexpectedErrorRetrievingTokenMessage=V\u00e1ratlan hiba t\u00f6rt\u00e9nt a szem\u00e9lyazonoss\u00e1g-kezel\u0151 token ig\u00e9nyl\u00e9se k\u00f6zben.
|
||||
unexpectedErrorHandlingResponseMessage=V\u00e1ratlan hiba t\u00f6rt\u00e9nt a szem\u00e9lyazonoss\u00e1g-kezel\u0151 v\u00e1lasz\u00fczenet\u00e9nek feldolgoz\u00e1sa k\u00f6zben.
|
||||
identityProviderAuthenticationFailedMessage=Nem siker\u00fclt a szem\u00e9lyazonoss\u00e1g-kezel\u0151n kereszt\u00fcl int\u00e9zett hiteles\u00edt\u00e9s.
|
||||
couldNotSendAuthenticationRequestMessage=Nem siker\u00fclt a szem\u00e9lyazonoss\u00e1g-kezel\u0151h\u00f6z int\u00e9zett hiteles\u00edt\u00e9s k\u00e9r\u00e9s elk\u00fcld\u00e9se.
|
||||
unexpectedErrorHandlingRequestMessage=V\u00e1ratlan hiba t\u00f6rt\u00e9nt a szem\u00e9lyazonoss\u00e1g-kezel\u0151 hiteles\u00edt\u00e9s k\u00e9r\u00e9s feldolgoz\u00e1sa k\u00f6zben.
|
||||
invalidAccessCodeMessage=\u00c9rv\u00e9nytelen hozz\u00e1f\u00e9r\u00e9si k\u00f3d.
|
||||
sessionNotActiveMessage=A munkamenet inakt\u00edv.
|
||||
invalidCodeMessage=Hiba t\u00f6rt\u00e9nt, k\u00e9rem, l\u00e9pjen be \u00fajra az alkalmaz\u00e1s\u00e1n kereszt\u00fcl.
|
||||
cookieNotFoundMessage=S\u00fcti nem tal\u00e1lhat\u00f3. K\u00e9rem, ellen\u0151rizze, hogy a b\u00f6ng\u00e9sz\u0151j\u00e9ben enged\u00e9lyezve vannak-e a s\u00fctik.
|
||||
insufficientLevelOfAuthentication=A k\u00e9rt hiteles\u00edt\u00e9si szint nem teljes\u00fclt
|
||||
identityProviderUnexpectedErrorMessage=V\u00e1ratlan hiba t\u00f6rt\u00e9nt a szem\u00e9lyazonoss\u00e1g-kezel\u0151n kereszt\u00fcl int\u00e9zett hiteles\u00edt\u00e9s sor\u00e1n.
|
||||
identityProviderMissingStateMessage=Nincsen "state" a szem\u00e9lyazonoss\u00e1g-kezel\u0151 v\u00e1lasz\u00fczenet\u00e9ben.
|
||||
identityProviderInvalidResponseMessage=\u00c9rv\u00e9nytelen v\u00e1lasz a szem\u00e9lyazonoss\u00e1g-kezel\u0151t\u0151l.
|
||||
identityProviderInvalidSignatureMessage=\u00c9rv\u00e9nytelen al\u00e1\u00edr\u00e1s a szem\u00e9lyazonoss\u00e1g-kezel\u0151 v\u00e1lasz\u00fczenet\u00e9ben.
|
||||
identityProviderNotFoundMessage=A megadott azonos\u00edt\u00f3val szem\u00e9lyazonoss\u00e1g-kezel\u0151 nem tal\u00e1lhat\u00f3.
|
||||
identityProviderLinkSuccess=Sikeresen meger\u0151s\u00edtette e-mail c\u00edm\u00e9t. K\u00e9rem, t\u00e9rjen vissza az eredeti b\u00f6ng\u00e9sz\u0151j\u00e9be, \u00e9s onnan folytassa a bel\u00e9p\u00e9si elj\u00e1r\u00e1st.
|
||||
staleCodeMessage=Ez a lap m\u00e1r nem \u00e9rv\u00e9nyes, k\u00e9rem, t\u00e9rjen vissza az alkalmaz\u00e1s\u00e1ba \u00e9s l\u00e9pjen be ism\u00e9t.
|
||||
realmSupportsNoCredentialsMessage=Ez a tartom\u00e1ny nem t\u00e1mogat jelsz\u00f3 alap\u00fa azonos\u00edt\u00e1st.
|
||||
credentialSetupRequired=Bel\u00e9p\u00e9s sikertelen, jelsz\u00f3 be\u00e1ll\u00edt\u00e1s sz\u00fcks\u00e9ges.
|
||||
identityProviderNotUniqueMessage=Ez a tartom\u00e1ny t\u00f6bb szem\u00e9lyazonoss\u00e1g-kezel\u0151t t\u00e1mogat. Nem siker\u00fclt meghat\u00e1rozni, hogy melyik szem\u00e9lyazonoss\u00e1g-kezel\u0151t kellene a hiteles\u00edt\u00e9shez alkalmazni.
|
||||
emailVerifiedMessage=Az e-mail c\u00edm\u00e9t meger\u0151s\u00edtett\u00fck.
|
||||
staleEmailVerificationLink=Az a hivatkoz\u00e1s, amelyikre r\u00e1kattintott el\u00e9v\u00fclt \u00e9s \u00e9rv\u00e9ny\u00e9t vesztette. Tal\u00e1n m\u00e1r kor\u00e1bban meger\u0151s\u00edtette az e-mail c\u00edm\u00e9t?
|
||||
identityProviderAlreadyLinkedMessage=A(z) {0}-t\u00f3l/t\u0151l visszakapott \u00f6sszekapcsolt szem\u00e9lyazonoss\u00e1g m\u00e1r \u00f6ssze van k\u00f6tve egy m\u00e1sik felhaszn\u00e1l\u00f3i fi\u00f3kkal.
|
||||
confirmAccountLinking=Er\u0151s\u00edtse meg a(z) {0} szem\u00e9lyazonoss\u00e1g-kezel\u0151 {1} fi\u00f3kj\u00e1nak \u00f6sszek\u00f6t\u00e9s\u00e9t a felhaszn\u00e1l\u00f3i fi\u00f3kj\u00e1val.
|
||||
confirmEmailAddressVerification=Er\u0151s\u00edtse meg a(z) {0} e-mail c\u00edm \u00e9rv\u00e9nyess\u00e9g\u00e9t.
|
||||
confirmExecutionOfActions=Hajtsa v\u00e9gre a k\u00f6vetkez\u0151 m\u0171velet(ek)et
|
||||
backToApplication=« Vissza az alkalmaz\u00e1sba
|
||||
missingParameterMessage=Hi\u00e1nyz\u00f3 param\u00e9terek\: {0}
|
||||
clientNotFoundMessage=A kliens nem tal\u00e1lhat\u00f3.
|
||||
clientDisabledMessage=A kliens inakt\u00edv.
|
||||
invalidParameterMessage=\u00c9rv\u00e9nytelen param\u00e9ter\: {0}
|
||||
alreadyLoggedIn=M\u00e1r kor\u00e1bban bel\u00e9pett.
|
||||
differentUserAuthenticated=Ebben a munkamenetben m\u00e1r kor\u00e1bban bel\u00e9pett ''{0}'' felhaszn\u00e1l\u00f3n\u00e9vvel. K\u00e9rem, el\u0151bb l\u00e9pjen ki a munkamenetb\u0151l.
|
||||
brokerLinkingSessionExpired=\u00dcgyn\u00f6k fi\u00f3k \u00f6sszek\u00f6t\u00e9st kezdem\u00e9nyezett, de az aktu\u00e1lis munkamenete m\u00e1r \u00e9rv\u00e9nytelen.
|
||||
proceedWithAction=» Kattintson ide a folytat\u00e1shoz
|
||||
acrNotFulfilled=A hiteles\u00edt\u00e9si k\u00f6vetelm\u00e9nyek nem teljes\u00fcltek
|
||||
requiredAction.CONFIGURE_TOTP=Egyszer haszn\u00e1latos jelsz\u00f3 (OTP) be\u00e1ll\u00edt\u00e1sa
|
||||
requiredAction.TERMS_AND_CONDITIONS=Felhaszn\u00e1l\u00e1si felt\u00e9telek
|
||||
requiredAction.UPDATE_PASSWORD=Jelsz\u00f3 csere
|
||||
requiredAction.UPDATE_PROFILE=Fi\u00f3k adatok m\u00f3dos\u00edt\u00e1sa
|
||||
requiredAction.VERIFY_EMAIL=E-mail c\u00edm meger\u0151s\u00edt\u00e9se
|
||||
requiredAction.CONFIGURE_RECOVERY_AUTHN_CODES=Biztons\u00e1gi k\u00f3dok gener\u00e1l\u00e1sa
|
||||
requiredAction.webauthn-register-passwordless=Jelsz\u00f3 n\u00e9lk\u00fcli WebAuthn regisztr\u00e1l\u00e1sa
|
||||
invalidTokenRequiredActions=A linkben tal\u00e1lhat\u00f3 sz\u00fcks\u00e9ges m\u0171veletek \u00e9rv\u00e9nytelenek.
|
||||
doX509Login=Bel\u00e9ptet\u00e9s mint\:
|
||||
clientCertificate=X509 kliens tan\u00fas\u00edtv\u00e1ny\:
|
||||
noCertificate=[Nincs tan\u00fas\u00edtv\u00e1ny]
|
||||
pageNotFound=A k\u00e9rt lap nem tal\u00e1lhat\u00f3
|
||||
internalServerError=Bels\u0151 hiba t\u00f6rt\u00e9nt
|
||||
console-username=Felhaszn\u00e1l\u00f3n\u00e9v\:
|
||||
console-password=Jelsz\u00f3\:
|
||||
console-otp=Egyszer haszn\u00e1latos jelsz\u00f3 (OTP)\:
|
||||
console-new-password=\u00daj jelsz\u00f3\:
|
||||
console-confirm-password=Jelsz\u00f3 meger\u0151s\u00edt\u00e9s\:
|
||||
console-update-password=Cser\u00e9lje le jelszav\u00e1t.
|
||||
console-verify-email=Meg kell er\u0151s\u00edtenie az e-mail c\u00edm\u00e9t. Egy e-mail \u00fczenetet k\u00fcldt\u00fcnk a(z) {0} e-mail c\u00edmre amely egy meger\u0151s\u00edt\u0151 k\u00f3dot tartalmaz. K\u00e9rem, \u00edrja be a kapott k\u00f3dot a lenti beviteli mez\u0151be.
|
||||
console-email-code=e-mail \u00fczenetben kapott ellen\u0151rz\u0151 k\u00f3d\:
|
||||
console-accept-terms=Elfogadja a felhaszn\u00e1l\u00e1si felt\u00e9teleket? [i/n]\:
|
||||
console-accept=i
|
||||
openshift.scope.user_info=Felhaszn\u00e1l\u00f3 adatok
|
||||
openshift.scope.user_check-access=Felhaszn\u00e1l\u00f3 hozz\u00e1f\u00e9r\u00e9s adatok
|
||||
openshift.scope.user_full=Teljes hozz\u00e1f\u00e9r\u00e9s
|
||||
openshift.scope.list-projects=Projektek list\u00e1ja
|
||||
saml.post-form.title=Hiteles\u00edt\u00e9s \u00e1tir\u00e1ny\u00edt\u00e1s
|
||||
saml.post-form.message=\u00c1tir\u00e1ny\u00edt\u00e1s folyamatban, k\u00e9rem, v\u00e1rjon.
|
||||
saml.post-form.js-disabled=A JavaScript nincs enged\u00e9lyezve. A folytat\u00e1s el\u0151tt aj\u00e1nlott bekapcsolni a JavaScript t\u00e1mogat\u00e1st. Kattintson a lenti gombra a folytat\u00e1shoz.
|
||||
saml.artifactResolutionServiceInvalidResponse=Az artifact nem tal\u00e1lhat\u00f3.
|
||||
otp-display-name=Hiteles\u00edt\u0151 alkalmaz\u00e1s
|
||||
otp-help-text=Adja meg az ellen\u0151rz\u0151 k\u00f3dot a hiteles\u00edt\u0151 alkalmaz\u00e1sb\u00f3l
|
||||
otp-reset-description=Melyik OTP be\u00e1ll\u00edt\u00e1st kell elt\u00e1vol\u00edtani?
|
||||
password-display-name=Jelsz\u00f3
|
||||
password-help-text=L\u00e9pjen be a jelszava megad\u00e1s\u00e1val
|
||||
auth-username-form-display-name=Felhaszn\u00e1l\u00f3n\u00e9v
|
||||
auth-username-form-help-text=Kezdje meg a bel\u00e9p\u00e9st a felhaszn\u00e1l\u00f3nev\u00e9nek megad\u00e1s\u00e1val
|
||||
auth-username-password-form-display-name=Felhaszn\u00e1l\u00f3n\u00e9v \u00e9s jelsz\u00f3
|
||||
auth-username-password-form-help-text=L\u00e9pjen be a felhaszn\u00e1l\u00f3neve \u00e9s jelszava megad\u00e1s\u00e1val.
|
||||
auth-recovery-authn-code-form-display-name=Biztons\u00e1gi hiteles\u00edt\u0151 k\u00f3d
|
||||
auth-recovery-authn-code-form-help-text=\u00cdrjon be egy biztons\u00e1gi k\u00f3dot a kor\u00e1bban gener\u00e1ltak k\u00f6z\u00fcl.
|
||||
auth-recovery-code-info-message=\u00cdrja be a haszn\u00e1lni k\u00edv\u00e1nt biztons\u00e1gi k\u00f3dot
|
||||
auth-recovery-code-prompt=Biztons\u00e1gi k\u00f3d \#{0}
|
||||
auth-recovery-code-header=Bejelentkez\u00e9s egy biztons\u00e1gi k\u00f3d seg\u00edts\u00e9g\u00e9vel
|
||||
recovery-codes-error-invalid=\u00c9rv\u00e9nytelen biztons\u00e1gi k\u00f3d
|
||||
recovery-code-config-header=Biztons\u00e1gi hiteles\u00edt\u0151 k\u00f3dok
|
||||
recovery-code-config-warning-title=Ezen k\u00f3dok megtekint\u00e9s\u00e9re nincs lehet\u0151s\u00e9g az oldal elhagy\u00e1sa ut\u00e1n
|
||||
recovery-code-config-warning-message=Nyomtassa ki, t\u00f6ltse le vagy mentse el a k\u00f3dokat egy biztons\u00e1gos helyre. A be\u00e1ll\u00edt\u00e1s megszak\u00edt\u00e1sa t\u00f6rli ezeket a k\u00f3dokat a felhaszn\u00e1l\u00f3i fi\u00f3kj\u00e1b\u00f3l.
|
||||
recovery-codes-print=Nyomtat\u00e1s
|
||||
recovery-codes-download=Let\u00f6lt\u00e9s
|
||||
recovery-codes-copy=M\u00e1sol\u00e1s
|
||||
recovery-codes-copied=V\u00e1g\u00f3lapra m\u00e1solva
|
||||
recovery-codes-confirmation-message=Elmentettem a biztons\u00e1gi k\u00f3dokat egy biztons\u00e1gos helyre
|
||||
recovery-codes-action-complete=Be\u00e1ll\u00edt\u00e1s befejez\u00e9se
|
||||
recovery-codes-action-cancel=Be\u00e1ll\u00edt\u00e1s megszak\u00edt\u00e1sa
|
||||
recovery-codes-download-file-header=Tartsa a biztons\u00e1gi k\u00f3dokat egy biztons\u00e1gos helyen
|
||||
recovery-codes-download-file-description=A biztons\u00e1gi k\u00f3dok egyszer haszn\u00e1latos jelk\u00f3dok, melyek seg\u00edts\u00e9g\u00e9vel bejelentkezhet a fi\u00f3kj\u00e1ba, ha nem f\u00e9r hozz\u00e1 a hiteles\u00edt\u0151 alkalmaz\u00e1shoz.
|
||||
recovery-codes-download-file-date=Biztons\u00e1gi k\u00f3dok gener\u00e1lva
|
||||
recovery-codes-label-default=Biztons\u00e1gi k\u00f3dok
|
||||
webauthn-display-name=Biztons\u00e1gi kulcs
|
||||
webauthn-help-text=Haszn\u00e1lja a biztons\u00e1gi kulcs\u00e1t a bel\u00e9p\u00e9shez.
|
||||
webauthn-passwordless-display-name=Biztons\u00e1gi kulcs
|
||||
webauthn-passwordless-help-text=Haszn\u00e1lja a biztons\u00e1gi kulcs\u00e1t a jelsz\u00f3mentes bel\u00e9p\u00e9shez.
|
||||
webauthn-login-title=Biztons\u00e1gi kulcs alap\u00fa bel\u00e9p\u00e9s
|
||||
webauthn-registration-title=Biztons\u00e1gi kulcs regisztr\u00e1ci\u00f3
|
||||
webauthn-available-authenticators=El\u00e9rhet\u0151 hiteles\u00edt\u0151 alkalmaz\u00e1sok
|
||||
webauthn-unsupported-browser-text=A WebAuthn protokoll a b\u00f6ng\u00e9sz\u0151 \u00e1ltal nem t\u00e1mogatott. Pr\u00f3b\u00e1lja egy m\u00e1sikkal, vagy vegye fel a kapcsolatot az alkalmaz\u00e1s adminisztr\u00e1tor\u00e1val.
|
||||
webauthn-doAuthenticate=Bejelentkez\u00e9s biztons\u00e1gi kulccsal
|
||||
webauthn-createdAt-label=L\u00e9trehozva
|
||||
webauthn-error-title=Biztons\u00e1gi kulcs hiba
|
||||
webauthn-error-registration=Nem siker\u00fclt regisztr\u00e1lni a biztons\u00e1gi kulcsot.
|
||||
webauthn-error-api-get=Nem siker\u00fclt a hiteles\u00edt\u00e9s a biztons\u00e1gi kulccsal.
|
||||
webauthn-error-different-user=Az el\u0151sz\u00f6r hiteles\u00edtett felhaszn\u00e1l\u00f3 nem az, akit a biztons\u00e1gi kulccsal azonos\u00edtottunk.
|
||||
webauthn-error-auth-verification=A biztons\u00e1gi kulcs alap\u00fa hiteles\u00edt\u00e9s eredm\u00e9nye \u00e9rv\u00e9nytelen.
|
||||
webauthn-error-register-verification=A biztons\u00e1gi kulcs alap\u00fa regisztr\u00e1ci\u00f3 eredm\u00e9nye \u00e9rv\u00e9nytelen.
|
||||
webauthn-error-user-not-found=Ismeretlen felhaszn\u00e1l\u00f3t hiteles\u00edtett\u00fcnk a biztons\u00e1gi kulcs alapj\u00e1n.
|
||||
identity-provider-redirector=\u00d6sszek\u00f6t\u00e9s m\u00e1sik szem\u00e9lyazonoss\u00e1g-kezel\u0151vel
|
||||
identity-provider-login-label=Egy\u00e9b bejelentkez\u00e9si m\u00f3dok
|
||||
idp-email-verification-display-name=E-mail meger\u0151s\u00edt\u00e9s
|
||||
idp-email-verification-help-text=Felhaszn\u00e1l\u00f3i fi\u00f3k \u00f6sszekapcsol\u00e1sa az e-mail c\u00edm meger\u0151s\u00edt\u00e9s\u00e9vel.
|
||||
idp-username-password-form-display-name=Felhaszn\u00e1l\u00f3n\u00e9v \u00e9s jelsz\u00f3
|
||||
idp-username-password-form-help-text=Felhaszn\u00e1l\u00f3i fi\u00f3k \u00f6sszekapcsol\u00e1sa bejelentkez\u00e9ssel.
|
||||
finalDeletionConfirmation=A felhaszn\u00e1l\u00f3i fi\u00f3k t\u00f6rl\u00e9se ut\u00e1n annak vissza\u00e1ll\u00edt\u00e1s\u00e1ra nincs m\u00f3d. A fi\u00f3kja megtart\u00e1s\u00e1hoz kattintson a M\u00e9gse gombra.
|
||||
irreversibleAction=Ez a m\u0171velet visszavonhatatlan
|
||||
deleteAccountConfirm=Felhaszn\u00e1l\u00f3i fi\u00f3k t\u00f6rl\u00e9s\u00e9nek meger\u0151s\u00edt\u00e9se
|
||||
deletingImplies=A felhaszn\u00e1l\u00f3i fi\u00f3kj\u00e1nak t\u00f6rl\u00e9s\u00e9vel j\u00e1r\:
|
||||
errasingData=\u00d6sszes adat\u00e1nak t\u00f6rl\u00e9se
|
||||
loggingOutImmediately=Azonnali kijelentkez\u00e9s
|
||||
accountUnusable=Az alkalmaz\u00e1s tov\u00e1bbi haszn\u00e1lata nem lesz lehets\u00e9ges ezzel a felhaszn\u00e1l\u00f3i fi\u00f3kkal
|
||||
userDeletedSuccessfully=Felhaszn\u00e1l\u00f3i fi\u00f3k t\u00f6rl\u00e9se sikeres
|
||||
access-denied=Hozz\u00e1f\u00e9r\u00e9s megtagadva
|
||||
access-denied-when-idp-auth=Hozz\u00e1f\u00e9r\u00e9s megtagadva hiteles\u00edt\u00e9s sor\u00e1n\: {0}
|
||||
frontchannel-logout.title=Kijelentkez\u00e9s
|
||||
frontchannel-logout.message=A k\u00f6vetkez\u0151 alkalmaz\u00e1sokb\u00f3l jelentkezik ki
|
||||
logoutConfirmTitle=Kijelentkez\u00e9s
|
||||
logoutConfirmHeader=Val\u00f3ban ki szeretne jelentkezni?
|
||||
doLogout=Kijelentkez\u00e9s
|
||||
readOnlyUsernameMessage=A felhaszn\u00e1l\u00f3n\u00e9v nem m\u00f3dos\u00edthat\u00f3.
|
||||
shouldBeEqual={0} egyenl\u0151 kell legyen {1}-vel
|
||||
shouldBeDifferent={0} k\u00fcl\u00f6nb\u00f6z\u0151nek kell lennie, mint {1}
|
||||
shouldMatchPattern=A mint\u00e1nak egyeznie kell\: `/{0}/`
|
||||
mustBeAnInteger=Eg\u00e9sz sz\u00e1mnak kell lennie
|
||||
notAValidOption=Nem \u00e9rv\u00e9nyes opci\u00f3
|
||||
selectAnOption=V\u00e1lasszon egy lehet\u0151s\u00e9get
|
||||
remove=Elt\u00e1vol\u00edt\u00e1s
|
||||
addValue=\u00c9rt\u00e9k hozz\u00e1ad\u00e1sa
|
||||
languages=Nyelvek
|
@ -0,0 +1,316 @@
|
||||
|
||||
doLogIn=Accedi
|
||||
doRegister=Registrati
|
||||
doRegisterSecurityKey=Registrati
|
||||
doCancel=Annulla
|
||||
doSubmit=Invia
|
||||
doBack=Indietro
|
||||
doYes=S\u00ec
|
||||
doNo=No
|
||||
doContinue=Continua
|
||||
doIgnore=Ignora
|
||||
doAccept=Accetta
|
||||
doDecline=Nega
|
||||
doForgotPassword=Password dimenticata?
|
||||
doClickHere=Clicca qui
|
||||
doImpersonate=Impersona
|
||||
doTryAgain=Prova ancora
|
||||
doTryAnotherWay=Prova in un altro modo
|
||||
kerberosNotConfigured=Kerberos non configurato
|
||||
kerberosNotConfiguredTitle=Kerberos non configurato
|
||||
bypassKerberosDetail=Non sei connesso via Kerberos o il tuo browser non supporta l''autenticazione a Kerberos. Fai clic su Continua per accedere in modo alternativo.
|
||||
kerberosNotSetUp=Kerberos non \u00e8 configurato. Non puoi effettuare l''accesso.
|
||||
registerTitle=Registrati
|
||||
loginAccountTitle=Accedi
|
||||
loginTitle=Accedi a {0}
|
||||
loginTitleHtml={0}
|
||||
impersonateTitle={0} Impersona utente
|
||||
impersonateTitleHtml=<strong>{0}</strong> Impersona utente
|
||||
realmChoice=Realm
|
||||
unknownUser=Utente sconosciuto
|
||||
loginTotpTitle=Configura autenticazione mobile
|
||||
loginProfileTitle=Aggiorna profilo
|
||||
loginTimeout=Stai impiegando troppo tempo per accedere. Il processo di autenticazione verr\u00e0 riavviato.
|
||||
oauthGrantTitle=Autenticazione concessa
|
||||
oauthGrantTitleHtml={0}
|
||||
errorTitle=Siamo spiacenti\u2026
|
||||
errorTitleHtml=Siamo <strong>spiacenti</strong>...
|
||||
emailVerifyTitle=Verifica l''email
|
||||
emailForgotTitle=Password dimenticata?
|
||||
updatePasswordTitle=Aggiorna password
|
||||
codeSuccessTitle=Codice di successo
|
||||
codeErrorTitle=Codice di errore\: {0}
|
||||
displayUnsupported=Tipo display richiesto non supportato
|
||||
browserRequired=\u00c8 richiesto il browser per il login
|
||||
browserContinue=\u00c8 richiesto il browser per continuare il login
|
||||
browserContinuePrompt=Aprire il browser per continuare il login? [y/n]\:
|
||||
browserContinueAnswer=y
|
||||
termsTitle=Termini e condizioni
|
||||
termsText=
|
||||
termsPlainText=Termini e condizioni da definire.
|
||||
recaptchaFailed=Recaptcha non valido
|
||||
recaptchaNotConfigured=Il Recaptcha \u00e8 obbligatorio, ma non configurato
|
||||
consentDenied=Permesso negato.
|
||||
noAccount=Nuovo utente?
|
||||
username=Username
|
||||
usernameOrEmail=Username o email
|
||||
firstName=Nome
|
||||
givenName=Nome
|
||||
fullName=Nome completo
|
||||
lastName=Cognome
|
||||
familyName=Cognome
|
||||
email=Email
|
||||
password=Password
|
||||
passwordConfirm=Conferma password
|
||||
passwordNew=Nuova Password
|
||||
passwordNewConfirm=Conferma nuova password
|
||||
rememberMe=Ricordami
|
||||
authenticatorCode=Codice One-time
|
||||
address=Indirizzo
|
||||
locality=Citt\u00e0 o Localit\u00e0
|
||||
street=Via
|
||||
region=Stato, Provincia, o Regione
|
||||
postal_code=CAP
|
||||
country=Paese
|
||||
emailVerified=Email verificata
|
||||
gssDelegationCredential=Credenziali delega GSS
|
||||
profileScopeConsentText=Profilo utente
|
||||
emailScopeConsentText=Indirizzo email
|
||||
addressScopeConsentText=Indirizzo
|
||||
phoneScopeConsentText=Numero di telefono
|
||||
offlineAccessScopeConsentText=Accesso offline
|
||||
samlRoleListScopeConsentText=I miei ruoli
|
||||
rolesScopeConsentText=Ruoli utente
|
||||
restartLoginTooltip=Riavvia login
|
||||
loginTotpIntro=Devi impostare un generatore di OTP (password temporanea valida una volta sola) per accedere a questo account
|
||||
loginTotpStep1=Installa una delle seguenti applicazioni sul tuo dispositivo mobile
|
||||
loginTotpStep2=Apri l''applicazione e scansiona il codice QR
|
||||
loginTotpStep3=Scrivi il codice monouso fornito dall''applicazione e premi Invia per completare il setup
|
||||
loginTotpStep3DeviceName=Fornisci il nome del dispositivo per aiutarti a gestire i dispositivi di autenticazione.
|
||||
loginTotpManualStep2=Apri l''applicazione e scrivi la chiave
|
||||
loginTotpManualStep3=Usa le seguenti impostazioni se l''applicazione lo consente
|
||||
loginTotpUnableToScan=Non riesci a scansionare il codice QR?
|
||||
loginTotpScanBarcode=Vuoi scansionare il codice QR?
|
||||
loginCredential=Credenziali
|
||||
loginOtpOneTime=Codice monouso
|
||||
loginTotpType=Tipo
|
||||
loginTotpAlgorithm=Algoritmo
|
||||
loginTotpDigits=Cifre
|
||||
loginTotpInterval=Intervallo
|
||||
loginTotpCounter=Contatore
|
||||
loginTotpDeviceName=Nome del dispositivo di autenticazione
|
||||
loginTotp.totp=Basato sull''ora
|
||||
loginTotp.hotp=Basato sul contatore
|
||||
loginChooseAuthenticator=Seleziona il tuo metodo di autenticazione
|
||||
oauthGrantRequest=Vuoi assegnare questi privilegi di accesso?
|
||||
inResource=per
|
||||
emailVerifyInstruction1=Ti \u00e8 stata inviata una email con le istruzioni per la verifica della tua email.
|
||||
emailVerifyInstruction2=Non hai ricevuto un codice di verifica nella tua email?
|
||||
emailVerifyInstruction3=per rinviare la email.
|
||||
emailLinkIdpTitle=Collega {0}
|
||||
emailLinkIdp1=Ti \u00e8 stata inviata una email con le istruzioni per collegare l''account {0} {1} con il tuo account {2}.
|
||||
emailLinkIdp2=Non hai ricevuto un codice di verifica nella tua email?
|
||||
emailLinkIdp3=Per rinviare la email.
|
||||
emailLinkIdp4=Se hai gi\u00e0 verificato l''indirizzo email in un altro browser
|
||||
emailLinkIdp5=per continuare.
|
||||
backToLogin=« Torna al Login
|
||||
emailInstruction=Inserisci la tua username o l''indirizzo email e ti manderemo le istruzioni per creare una nuova password.
|
||||
copyCodeInstruction=Copia questo codice e incollalo nella tua applicazione\:
|
||||
pageExpiredTitle=La pagina \u00e8 scaduta
|
||||
pageExpiredMsg1=Per ripetere il login
|
||||
pageExpiredMsg2=Per continuare con il login
|
||||
personalInfo=Informazioni personali\:
|
||||
role_admin=Admin
|
||||
role_realm-admin=Realm Admin
|
||||
role_create-realm=Crea realm
|
||||
role_create-client=Crea client
|
||||
role_view-realm=Visualizza realm
|
||||
role_view-users=Visualizza utenti
|
||||
role_view-applications=Visualizza applicazioni
|
||||
role_view-clients=Visualizza client
|
||||
role_view-events=Visualizza eventi
|
||||
role_view-identity-providers=Visualizza identity provider
|
||||
role_manage-realm=Gestisci realm
|
||||
role_manage-users=Gestisci utenti
|
||||
role_manage-applications=Gestisci applicazioni
|
||||
role_manage-identity-providers=Gestisci identity provider
|
||||
role_manage-clients=Gestisci client
|
||||
role_manage-events=Gestisci eventi
|
||||
role_view-profile=Visualizza profilo
|
||||
role_manage-account=Gestisci account
|
||||
role_manage-account-links=Gestisci i link per l''account
|
||||
role_read-token=Leggi il token
|
||||
role_offline-access=Accesso offline
|
||||
client_account=Account
|
||||
client_account-console=Console account
|
||||
client_security-admin-console=Console di amministrazione di sicurezza
|
||||
client_admin-cli=Admin CLI
|
||||
client_realm-management=Gestione realm
|
||||
client_broker=Broker
|
||||
requiredFields=Campi obbligatori
|
||||
invalidUserMessage=Username o password non validi.
|
||||
invalidUsernameMessage=Username non valido.
|
||||
invalidUsernameOrEmailMessage=Username o email non validi.
|
||||
invalidPasswordMessage=Password non valida.
|
||||
invalidEmailMessage=Indirizzo email non valido.
|
||||
accountDisabledMessage=L''account \u00e8 disabilitato, contatta il tuo amministratore.
|
||||
accountTemporarilyDisabledMessage=L''account \u00e8 temporaneamente disabilitato; contatta il tuo amministratore o prova pi\u00f9 tardi.
|
||||
expiredCodeMessage=Login scaduto. Riprovare.
|
||||
expiredActionMessage=Azione scaduta. Continuare adesso con in login.
|
||||
expiredActionTokenNoSessionMessage=Azione scaduta.
|
||||
expiredActionTokenSessionExistsMessage=Azione scaduta. Ricominciare.
|
||||
missingFirstNameMessage=Inserisci il nome.
|
||||
missingLastNameMessage=Inserisci il cognome.
|
||||
missingEmailMessage=Inserisci l''email.
|
||||
missingUsernameMessage=Inserisci l''username.
|
||||
missingPasswordMessage=Inserisci la password.
|
||||
missingTotpMessage=Inserisci il codice di autenticazione.
|
||||
missingTotpDeviceNameMessage=Inserisci il nome del dispositivo di autenticazione.
|
||||
notMatchPasswordMessage=Le password non coincidono.
|
||||
invalidPasswordExistingMessage=Password esistente non valida.
|
||||
invalidPasswordBlacklistedMessage=Password non valida\: la password non \u00e8 consentita.
|
||||
invalidPasswordConfirmMessage=La password di conferma non coincide.
|
||||
invalidTotpMessage=Codice di autenticazione non valido.
|
||||
usernameExistsMessage=Username gi\u00e0 esistente.
|
||||
emailExistsMessage=Email gi\u00e0 esistente.
|
||||
federatedIdentityExistsMessage=L''utente con {0} {1} esiste gi\u00e0. Effettua il login nella gestione account per associare l''account.
|
||||
confirmLinkIdpTitle=Account gi\u00e0 esistente
|
||||
federatedIdentityConfirmLinkMessage=L''utente con {0} {1} esiste gi\u00e0. Come vuoi procedere?
|
||||
federatedIdentityConfirmReauthenticateMessage=Autenticati per associare il tuo account con {0}
|
||||
confirmLinkIdpReviewProfile=Rivedi profilo
|
||||
confirmLinkIdpContinue=Aggiungi all''account esistente
|
||||
configureTotpMessage=Devi impostare un autenticatore per attivare il tuo account.
|
||||
updateProfileMessage=Devi aggiornare il tuo profilo utente per attivare il tuo account.
|
||||
updatePasswordMessage=Devi cambiare la password per attivare il tuo account.
|
||||
resetPasswordMessage=Devi cambiare la password.
|
||||
verifyEmailMessage=Devi verificare il tuo indirizzo email per attivare il tuo account.
|
||||
linkIdpMessage=Devi verificare il tuo indirizzo email per associare il tuo account con {0}.
|
||||
emailSentMessage=Riceverai a breve una email con maggiori istruzioni.
|
||||
emailSendErrorMessage=Invio email fallito, riprova pi\u00f9 tardi.
|
||||
accountUpdatedMessage=Il tuo account \u00e8 stato aggiornato.
|
||||
accountPasswordUpdatedMessage=La tua password \u00e8 stata aggiornata.
|
||||
delegationCompleteHeader=Login completato
|
||||
delegationCompleteMessage=Puoi chiudere questa finestra del browser e tornare alla tua applicazione.
|
||||
delegationFailedHeader=Login fallito
|
||||
delegationFailedMessage=Puoi chiudere questa finestra del browser e tornare alla tua applicazione per provare ad accedere nuovamente.
|
||||
noAccessMessage=Nessun accesso
|
||||
invalidPasswordMinLengthMessage=Password non valida\: lunghezza minima {0}.
|
||||
invalidPasswordMinDigitsMessage=Password non valida\: deve contenere almeno {0} numeri.
|
||||
invalidPasswordMinLowerCaseCharsMessage=Password non valida\: deve contenere almeno {0} caratteri minuscoli.
|
||||
invalidPasswordMinUpperCaseCharsMessage=Password non valida\: deve contenere almeno {0} caratteri maiuscoli.
|
||||
invalidPasswordMinSpecialCharsMessage=Password non valida\: deve contenere almeno {0} caratteri speciali.
|
||||
invalidPasswordNotUsernameMessage=Password non valida\: non deve essere uguale alla username.
|
||||
invalidPasswordRegexPatternMessage=Password non valida\: fallito il match con una o pi\u00f9 espressioni regolari.
|
||||
invalidPasswordHistoryMessage=Password non valida\: non deve essere uguale ad una delle ultime {0} password.
|
||||
invalidPasswordGenericMessage=Password non valida\: la nuova password non rispetta le indicazioni previste.
|
||||
failedToProcessResponseMessage=Fallimento nell''elaborazione della risposta
|
||||
httpsRequiredMessage=HTTPS richiesto
|
||||
realmNotEnabledMessage=Realm non abilitato
|
||||
invalidRequestMessage=Richiesta non valida
|
||||
failedLogout=Logout fallito
|
||||
unknownLoginRequesterMessage=Richiedente di Login non riconosciuto
|
||||
loginRequesterNotEnabledMessage=Richiedente di Login non abilitato
|
||||
bearerOnlyMessage=Alle applicazioni di tipo Bearer-only non \u00e8 consentito di effettuare il login tramite browser
|
||||
standardFlowDisabledMessage=Al client non \u00e8 consentito di effettuare il login tramite browser con questo response_type. Standard flow \u00e8 stato disabilitato per il client.
|
||||
implicitFlowDisabledMessage=Al client non \u00e8 consentito di effettuare il login tramite browser con questo response_type. Implicit flow \u00e8 stato disabilitato per il client.
|
||||
invalidRedirectUriMessage=Redirect uri non valido
|
||||
unsupportedNameIdFormatMessage=NameIDFormat non supportato
|
||||
invalidRequesterMessage=Richiedente non valido
|
||||
registrationNotAllowedMessage=Registrazione non permessa
|
||||
resetCredentialNotAllowedMessage=Reimpostazione della credenziale non permessa
|
||||
permissionNotApprovedMessage=Permesso non approvato.
|
||||
noRelayStateInResponseMessage=Nessun relay state in risposta dall''identity provider.
|
||||
insufficientPermissionMessage=Permessi insufficienti per associare le identit\u00e0.
|
||||
couldNotProceedWithAuthenticationRequestMessage=Impossibile procedere con la richiesta di autenticazione all''identity provider
|
||||
couldNotObtainTokenMessage=Non posso ottenere un token dall''identity provider.
|
||||
unexpectedErrorRetrievingTokenMessage=Errore inaspettato nel recupero del token dall''identity provider.
|
||||
unexpectedErrorHandlingResponseMessage=Errore inaspettato nella gestione della risposta dall''identity provider.
|
||||
identityProviderAuthenticationFailedMessage=Autenticazione fallita. Non posso effettuare l''autenticazione con l''identity provider.
|
||||
couldNotSendAuthenticationRequestMessage=Impossibile inviare la richiesta di autenticazione all''identity provider.
|
||||
unexpectedErrorHandlingRequestMessage=Errore inaspettato nella gestione della richiesta di autenticazione all''identity provider.
|
||||
invalidAccessCodeMessage=Codice di accesso non valido.
|
||||
sessionNotActiveMessage=Sessione non attiva.
|
||||
invalidCodeMessage=Si \u00e8 verificato un errore, effettua di nuovo il login nella tua applicazione.
|
||||
identityProviderUnexpectedErrorMessage=Errore imprevisto durante l''autenticazione con identity provider
|
||||
identityProviderNotFoundMessage=Non posso trovare un identity provider con l''identificativo.
|
||||
identityProviderLinkSuccess=Hai verificato con successo la tua email. Torna al tuo browser iniziale e continua da l\u00ec con il login.
|
||||
staleCodeMessage=Questa pagina non \u00e8 pi\u00f9 valida, torna alla tua applicazione ed effettua nuovamente l''accesso
|
||||
realmSupportsNoCredentialsMessage=Il realm non supporta nessun tipo di credenziali.
|
||||
credentialSetupRequired=Impossibile effettuare il login, \u00e8 richiesto il setup delle credenziali.
|
||||
identityProviderNotUniqueMessage=Il realm supporta pi\u00f9 di un identity provider. Impossibile determinare quale identity provider deve essere utilizzato per autenticarti.
|
||||
emailVerifiedMessage=Il tuo indirizzo email \u00e8 stato verificato.
|
||||
staleEmailVerificationLink=Il link che hai cliccato \u00e8 un link scaduto e non \u00e8 pi\u00f9 valido. Forse hai gi\u00e0 verificato la tua email?
|
||||
identityProviderAlreadyLinkedMessage=L''identit\u00e0 federata restituita dall''identity provider {0} \u00e8 gi\u00e0 associata ad un altro utente.
|
||||
confirmAccountLinking=Conferma il collegamento per l''account {0} dell''identity provider {1} con il tuo account.
|
||||
confirmEmailAddressVerification=Conferma la validit\u00e0 dell''indirizzo email {0}.
|
||||
confirmExecutionOfActions=Esegui la/le seguenti azione/i
|
||||
backToApplication=« Torna all''applicazione
|
||||
missingParameterMessage=Parametri mancanti\: {0}
|
||||
clientNotFoundMessage=Client non trovato.
|
||||
clientDisabledMessage=Client disabilitato.
|
||||
invalidParameterMessage=Parametro non valido\: {0}
|
||||
alreadyLoggedIn=Sei gi\u00e0 connesso.
|
||||
differentUserAuthenticated=Se gi\u00e0 autenticato con l''utente ''{0}'' in questa sessione. Per favore, fai prima il logout.
|
||||
brokerLinkingSessionExpired=\u00c8 stato richiesta un''associazione a un account broker, ma la sessione corrente non \u00e8 pi\u00f9 valida.
|
||||
proceedWithAction=\u00bb Clicca qui per continuare
|
||||
requiredAction.CONFIGURE_TOTP=Configura OTP
|
||||
requiredAction.TERMS_AND_CONDITIONS=Termini e condizioni
|
||||
requiredAction.UPDATE_PASSWORD=Aggiornamento password
|
||||
requiredAction.UPDATE_PROFILE=Aggiornamento profilo
|
||||
requiredAction.VERIFY_EMAIL=Verifica dell''indirizzo email
|
||||
doX509Login=Sarai connesso come\:
|
||||
clientCertificate=Certificato client X509\:
|
||||
noCertificate=[Nessun certificato]
|
||||
pageNotFound=Pagina non trovata
|
||||
internalServerError=Si \u00e8 verificato un errore interno del server
|
||||
console-username=Username\:
|
||||
console-password=Password\:
|
||||
console-otp=One-time password\:
|
||||
console-new-password=Nuova password\:
|
||||
console-confirm-password=Conferma password\:
|
||||
console-update-password=\u00c8 richiesto l''aggiornamento della tua password.
|
||||
console-verify-email=Devi verificare il tuo indirizzo email. \u00c8 stata inviata una email a {0} che contiene un codice di verifica. Per favore inserisci il codice nella casella di testo seguente.
|
||||
console-email-code=Codice email\:
|
||||
console-accept-terms=Accetti i termini? [y/n]\:
|
||||
console-accept=y
|
||||
openshift.scope.user_info=Informazioni utente
|
||||
openshift.scope.user_check-access=Informazioni di accesso per l''utente
|
||||
openshift.scope.user_full=Accesso completo
|
||||
openshift.scope.list-projects=Elenca i progetti
|
||||
saml.post-form.title=Reindirizzamento per l''autenticazione
|
||||
saml.post-form.message=Reindirizzamento, attendere per favore.
|
||||
saml.post-form.js-disabled=JavaScript \u00e8 disabilitato. \u00c8 fortemente consigliato abilitarlo. Clicca sul bottone seguente per continuare.
|
||||
otp-display-name=Applicazione di autenticazione
|
||||
otp-help-text=Inserire un codice di verifica fornito dall''applicazione di autenticazione.
|
||||
password-display-name=Password
|
||||
password-help-text=Accedi inserendo la tua password.
|
||||
auth-username-form-display-name=Username
|
||||
auth-username-form-help-text=Inizia il login inserendo la tua username
|
||||
auth-username-password-form-display-name=Username e password
|
||||
auth-username-password-form-help-text=Accedi inserendo la tua username e la password.
|
||||
webauthn-display-name=Chiave di sicurezza
|
||||
webauthn-help-text=Utilizza la tua chiave di sicurezza per accedere.
|
||||
webauthn-passwordless-display-name=Chiave di sicurezza
|
||||
webauthn-passwordless-help-text=Utilizza la tua chiave di sicurezza per l''accesso senza password.
|
||||
webauthn-login-title=Login con chiave di sicurezza
|
||||
webauthn-registration-title=Registrazione chiave di sicurezza
|
||||
webauthn-available-authenticators=Autenticatori disponibili
|
||||
webauthn-error-title=Errore della chiave di sicurezza
|
||||
webauthn-error-registration=Impossibile registrare la tua chiave di sicurezza.
|
||||
webauthn-error-api-get=Autenticazione con la chiave di sicurezza fallita.
|
||||
webauthn-error-different-user=Il primo utente autenticato non \u00e8 quello autenticato tramite la chiave di sicurezza.
|
||||
webauthn-error-auth-verification=Il risultato dell''autenticazione con la chiave di sicurezza non \u00e8 valido.
|
||||
webauthn-error-register-verification=Il risultato della registrazione della chiave di sicurezza non \u00e8 valido.
|
||||
webauthn-error-user-not-found=Utente sconosciuto autenticato con la chiave di sicurezza.
|
||||
identity-provider-redirector=Connettiti con un altro identity provider.
|
||||
identity-provider-login-label=Oppure accedi con
|
||||
readOnlyUsernameMessage=Non puoi aggiornare il tuo nome utente poich\u00e9 \u00e8 in modalit\u00e0 sola lettura.
|
||||
shouldBeEqual={0} dovrebbe essere uguale a {1}
|
||||
shouldBeDifferent={0} dovrebbe essere diverso da {1}
|
||||
shouldMatchPattern=Il modello dovrebbe corrispondere\: `/{0}/`
|
||||
mustBeAnInteger=Deve essere un numero intero
|
||||
notAValidOption=Non \u00e8 un''opzione valida
|
||||
selectAnOption=Seleziona un''opzione
|
||||
remove=Rimuovi
|
||||
addValue=Aggiungi valore
|
||||
languages=Lingue
|
@ -0,0 +1,321 @@
|
||||
|
||||
doLogIn=\u30ed\u30b0\u30a4\u30f3
|
||||
doRegister=\u767b\u9332
|
||||
doRegisterSecurityKey=\u767b\u9332
|
||||
doCancel=\u30ad\u30e3\u30f3\u30bb\u30eb
|
||||
doSubmit=\u9001\u4fe1
|
||||
doBack=\u623b\u308b
|
||||
doYes=\u306f\u3044
|
||||
doNo=\u3044\u3044\u3048
|
||||
doContinue=\u7d9a\u3051\u308b
|
||||
doIgnore=\u7121\u8996
|
||||
doAccept=\u627f\u8afe
|
||||
doDecline=\u5374\u4e0b
|
||||
doForgotPassword=\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u304a\u5fd8\u308c\u3067\u3059\u304b?
|
||||
doClickHere=\u30af\u30ea\u30c3\u30af\u3057\u3066\u304f\u3060\u3055\u3044
|
||||
doImpersonate=\u4ee3\u7406\u30ed\u30b0\u30a4\u30f3
|
||||
doTryAgain=\u518d\u8a66\u884c\u3057\u3066\u304f\u3060\u3055\u3044
|
||||
doTryAnotherWay=\u5225\u306e\u65b9\u6cd5\u3092\u8a66\u3057\u3066\u304f\u3060\u3055\u3044
|
||||
kerberosNotConfigured=Kerberos\u306f\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u307e\u305b\u3093
|
||||
kerberosNotConfiguredTitle=Kerberos\u306f\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u307e\u305b\u3093
|
||||
bypassKerberosDetail=Kerberos\u3067\u30ed\u30b0\u30a4\u30f3\u3057\u3066\u3044\u306a\u3044\u304b\u3001\u30d6\u30e9\u30a6\u30b6\u30fc\u3067Kerberos\u30ed\u30b0\u30a4\u30f3\u306e\u8a2d\u5b9a\u304c\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002\u4ed6\u306e\u624b\u6bb5\u3067\u30ed\u30b0\u30a4\u30f3\u3059\u308b\u306b\u306f\u300c\u7d9a\u3051\u308b\u300d\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u304f\u3060\u3055\u3044\u3002
|
||||
kerberosNotSetUp=Kerberos\u304c\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002\u30ed\u30b0\u30a4\u30f3\u3067\u304d\u307e\u305b\u3093\u3002
|
||||
registerTitle=\u767b\u9332
|
||||
loginAccountTitle=\u30a2\u30ab\u30a6\u30f3\u30c8\u306b\u30ed\u30b0\u30a4\u30f3
|
||||
loginTitle={0}\u306b\u30ed\u30b0\u30a4\u30f3
|
||||
loginTitleHtml={0}
|
||||
impersonateTitle={0}\u30e6\u30fc\u30b6\u30fc\u306e\u4ee3\u7406
|
||||
impersonateTitleHtml=<strong>{0}</strong>\u30e6\u30fc\u30b6\u30fc\u306e\u4ee3\u7406
|
||||
realmChoice=\u30ec\u30eb\u30e0
|
||||
unknownUser=\u4e0d\u660e\u306a\u30e6\u30fc\u30b6\u30fc
|
||||
loginTotpTitle=\u30e2\u30d0\u30a4\u30eb\u30fb\u30aa\u30fc\u30bb\u30f3\u30c6\u30a3\u30b1\u30fc\u30bf\u30fc\u306e\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7
|
||||
loginProfileTitle=\u30a2\u30ab\u30a6\u30f3\u30c8\u60c5\u5831\u306e\u66f4\u65b0
|
||||
loginTimeout=\u30ed\u30b0\u30a4\u30f3\u8a66\u884c\u304c\u30bf\u30a4\u30e0\u30a2\u30a6\u30c8\u3057\u307e\u3057\u305f\u3002\u30ed\u30b0\u30a4\u30f3\u306f\u6700\u521d\u304b\u3089\u958b\u59cb\u3055\u308c\u307e\u3059\u3002
|
||||
oauthGrantTitle={0}\u3078\u306e\u30a2\u30af\u30bb\u30b9\u3092\u8a31\u53ef
|
||||
oauthGrantTitleHtml={0}
|
||||
errorTitle=\u7533\u3057\u8a33\u3054\u3056\u3044\u307e\u305b\u3093
|
||||
errorTitleHtml=<strong>\u7533\u3057\u8a33\u3054\u3056\u3044\u307e\u305b\u3093</strong>
|
||||
emailVerifyTitle=E\u30e1\u30fc\u30eb\u78ba\u8a8d
|
||||
emailForgotTitle=\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u304a\u5fd8\u308c\u3067\u3059\u304b?
|
||||
updatePasswordTitle=\u30d1\u30b9\u30ef\u30fc\u30c9\u306e\u66f4\u65b0
|
||||
codeSuccessTitle=\u6210\u529f\u30b3\u30fc\u30c9
|
||||
codeErrorTitle=\u30a8\u30e9\u30fc\u30b3\u30fc\u30c9\: {0}
|
||||
displayUnsupported=\u8981\u6c42\u3055\u308c\u305f\u8868\u793a\u30bf\u30a4\u30d7\u304c\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093
|
||||
browserRequired=\u30ed\u30b0\u30a4\u30f3\u306b\u5fc5\u8981\u306a\u30d6\u30e9\u30a6\u30b6\u30fc
|
||||
browserContinue=\u30ed\u30b0\u30a4\u30f3\u3092\u5b8c\u4e86\u3059\u308b\u305f\u3081\u306b\u5fc5\u8981\u306a\u30d6\u30e9\u30a6\u30b6\u30fc
|
||||
browserContinuePrompt=\u30d6\u30e9\u30a6\u30b6\u30fc\u3092\u958b\u3044\u3066\u30ed\u30b0\u30a4\u30f3\u3092\u7d9a\u884c\u3057\u307e\u3059\u304b\uff1f [y/n]\:
|
||||
browserContinueAnswer=y
|
||||
termsTitle=\u5229\u7528\u898f\u7d04
|
||||
termsText=
|
||||
termsPlainText=\u5b9a\u7fa9\u3055\u308c\u308b\u5229\u7528\u898f\u7d04\u3002
|
||||
recaptchaFailed=\u7121\u52b9\u306areCAPTCHA
|
||||
recaptchaNotConfigured=reCAPTCHA\u304c\u5fc5\u9808\u3067\u3059\u304c\u3001\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u307e\u305b\u3093
|
||||
consentDenied=\u540c\u610f\u304c\u62d2\u5426\u3055\u308c\u307e\u3057\u305f\u3002
|
||||
noAccount=\u65b0\u898f\u30e6\u30fc\u30b6\u30fc\u3067\u3059\u304b?
|
||||
username=\u30e6\u30fc\u30b6\u30fc\u540d
|
||||
usernameOrEmail=\u30e6\u30fc\u30b6\u30fc\u540d\u307e\u305f\u306f\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9
|
||||
firstName=\u540d
|
||||
givenName=\u540d
|
||||
fullName=\u6c0f\u540d
|
||||
lastName=\u59d3
|
||||
familyName=\u59d3
|
||||
email=E\u30e1\u30fc\u30eb
|
||||
password=\u30d1\u30b9\u30ef\u30fc\u30c9
|
||||
passwordConfirm=\u30d1\u30b9\u30ef\u30fc\u30c9\uff08\u78ba\u8a8d\uff09
|
||||
passwordNew=\u65b0\u3057\u3044\u30d1\u30b9\u30ef\u30fc\u30c9
|
||||
passwordNewConfirm=\u65b0\u3057\u3044\u30d1\u30b9\u30ef\u30fc\u30c9\uff08\u78ba\u8a8d\uff09
|
||||
rememberMe=\u30ed\u30b0\u30a4\u30f3\u72b6\u614b\u306e\u4fdd\u5b58
|
||||
authenticatorCode=\u30ef\u30f3\u30bf\u30a4\u30e0\u30b3\u30fc\u30c9
|
||||
address=\u4f4f\u6240
|
||||
street=\u756a\u5730
|
||||
locality=\u5e02\u533a\u753a\u6751
|
||||
region=\u90fd\u9053\u5e9c\u770c
|
||||
postal_code=\u90f5\u4fbf\u756a\u53f7
|
||||
country=\u56fd
|
||||
emailVerified=\u78ba\u8a8d\u6e08\u307fE\u30e1\u30fc\u30eb
|
||||
gssDelegationCredential=GSS\u59d4\u8b72\u30af\u30ec\u30c7\u30f3\u30b7\u30e3\u30eb
|
||||
profileScopeConsentText=\u30e6\u30fc\u30b6\u30fc\u30fb\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb
|
||||
emailScopeConsentText=\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9
|
||||
addressScopeConsentText=\u30a2\u30c9\u30ec\u30b9
|
||||
phoneScopeConsentText=\u96fb\u8a71\u756a\u53f7
|
||||
offlineAccessScopeConsentText=\u30aa\u30d5\u30e9\u30a4\u30f3\u30fb\u30a2\u30af\u30bb\u30b9
|
||||
samlRoleListScopeConsentText=\u30ed\u30fc\u30eb
|
||||
rolesScopeConsentText=\u30e6\u30fc\u30b6\u30fc\u30ed\u30fc\u30eb
|
||||
restartLoginTooltip=\u30ed\u30b0\u30a4\u30f3\u3092\u518d\u958b
|
||||
loginTotpIntro=\u3053\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u306b\u306f\u3001\u30ef\u30f3\u30bf\u30a4\u30e0\u30fb\u30d1\u30b9\u30ef\u30fc\u30c9\u30fb\u30b8\u30a7\u30cd\u30ec\u30fc\u30bf\u30fc\u3092\u8a2d\u5b9a\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059
|
||||
loginTotpStep1=\u6b21\u306e\u3044\u305a\u308c\u304b\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u30e2\u30d0\u30a4\u30eb\u306b\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u307e\u3059\u3002
|
||||
loginTotpStep2=\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u958b\u304d\u3001\u30d0\u30fc\u30b3\u30fc\u30c9\u3092\u30b9\u30ad\u30e3\u30f3\u3057\u307e\u3059\u3002
|
||||
loginTotpStep3=\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u304b\u3089\u63d0\u4f9b\u3055\u308c\u305f\u30ef\u30f3\u30bf\u30a4\u30e0\u30b3\u30fc\u30c9\u3092\u5165\u529b\u3057\u3001\u9001\u4fe1\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7\u3092\u7d42\u4e86\u3057\u307e\u3059\u3002
|
||||
loginTotpStep3DeviceName=OTP\u30c7\u30d0\u30a4\u30b9\u306e\u7ba1\u7406\u306b\u5f79\u7acb\u3064\u30c7\u30d0\u30a4\u30b9\u540d\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002
|
||||
loginTotpManualStep2=\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u958b\u304d\u3001\u30ad\u30fc\u3092\u5165\u529b\u3057\u307e\u3059\uff1a
|
||||
loginTotpManualStep3=\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3067\u8a2d\u5b9a\u3067\u304d\u308b\u5834\u5408\u306f\u3001\u6b21\u306e\u8a2d\u5b9a\u5024\u3092\u4f7f\u7528\u3057\u307e\u3059\u3002
|
||||
loginTotpUnableToScan=\u30b9\u30ad\u30e3\u30f3\u3067\u304d\u307e\u305b\u3093\u304b\uff1f
|
||||
loginTotpScanBarcode=\u30d0\u30fc\u30b3\u30fc\u30c9\u3092\u30b9\u30ad\u30e3\u30f3\u3057\u307e\u3059\u304b\uff1f
|
||||
loginCredential=\u30af\u30ec\u30c7\u30f3\u30b7\u30e3\u30eb
|
||||
loginOtpOneTime=\u30ef\u30f3\u30bf\u30a4\u30e0\u30b3\u30fc\u30c9
|
||||
loginTotpType=\u30bf\u30a4\u30d7
|
||||
loginTotpAlgorithm=\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0
|
||||
loginTotpDigits=\u6841
|
||||
loginTotpInterval=\u9593\u9694
|
||||
loginTotpCounter=\u30ab\u30a6\u30f3\u30bf\u30fc
|
||||
loginTotpDeviceName=\u30c7\u30d0\u30a4\u30b9\u540d
|
||||
loginTotp.totp=\u6642\u9593\u30d9\u30fc\u30b9
|
||||
loginTotp.hotp=\u30ab\u30a6\u30f3\u30bf\u30fc\u30d9\u30fc\u30b9
|
||||
loginChooseAuthenticator=\u30ed\u30b0\u30a4\u30f3\u65b9\u6cd5\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044
|
||||
oauthGrantRequest=\u3053\u308c\u3089\u306e\u30a2\u30af\u30bb\u30b9\u6a29\u9650\u3092\u4ed8\u4e0e\u3057\u307e\u3059\u304b\uff1f
|
||||
inResource=in
|
||||
emailVerifyInstruction1=\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u3092\u78ba\u8a8d\u3059\u308b\u624b\u9806\u3092\u8a18\u8f09\u3057\u305fE\u30e1\u30fc\u30eb\u3092\u9001\u4fe1\u3057\u307e\u3057\u305f\u3002
|
||||
emailVerifyInstruction2=E\u30e1\u30fc\u30eb\u3067\u78ba\u8a8d\u30b3\u30fc\u30c9\u3092\u53d7\u3051\u53d6\u3063\u3066\u3044\u307e\u305b\u3093\u304b?
|
||||
emailVerifyInstruction3=E\u30e1\u30fc\u30eb\u3092\u518d\u9001\u4fe1\u3057\u307e\u3059\u3002
|
||||
emailLinkIdpTitle=\u30ea\u30f3\u30af {0}
|
||||
emailLinkIdp1={0}\u306e{1}\u30a2\u30ab\u30a6\u30f3\u30c8\u3092\u3042\u306a\u305f\u306e{2}\u30a2\u30ab\u30a6\u30f3\u30c8\u3068\u30ea\u30f3\u30af\u3059\u308b\u305f\u3081\u306e\u624b\u9806\u3092\u8a18\u8f09\u3057\u305fE\u30e1\u30fc\u30eb\u3092\u9001\u4fe1\u3057\u307e\u3057\u305f\u3002
|
||||
emailLinkIdp2=E\u30e1\u30fc\u30eb\u3067\u78ba\u8a8d\u30b3\u30fc\u30c9\u3092\u53d7\u3051\u53d6\u3063\u3066\u3044\u307e\u305b\u3093\u304b?
|
||||
emailLinkIdp3=E\u30e1\u30fc\u30eb\u3092\u518d\u9001\u4fe1\u3057\u307e\u3059\u3002
|
||||
emailLinkIdp4=\u5225\u306e\u30d6\u30e9\u30a6\u30b6\u30fc\u3067\u30e1\u30fc\u30eb\u3092\u78ba\u8a8d\u6e08\u307f\u306e\u5834\u5408
|
||||
emailLinkIdp5=\u7d9a\u3051\u308b\u306b\u306f
|
||||
backToLogin=« \u30ed\u30b0\u30a4\u30f3\u306b\u623b\u308b
|
||||
emailInstruction=\u30e6\u30fc\u30b6\u30fc\u540d\u307e\u305f\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u65b0\u3057\u3044\u30d1\u30b9\u30ef\u30fc\u30c9\u306e\u8a2d\u5b9a\u65b9\u6cd5\u3092\u3054\u6848\u5185\u3044\u305f\u3057\u307e\u3059\u3002
|
||||
copyCodeInstruction=\u3053\u306e\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc\u3057\u3001\u3042\u306a\u305f\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306b\u30da\u30fc\u30b9\u30c8\u3057\u3066\u304f\u3060\u3055\u3044\uff1a
|
||||
pageExpiredTitle=\u30da\u30fc\u30b8\u306e\u6709\u52b9\u671f\u9650\u304c\u5207\u308c\u3066\u3044\u307e\u3059
|
||||
pageExpiredMsg1=\u30ed\u30b0\u30a4\u30f3\u30d7\u30ed\u30bb\u30b9\u3092\u518d\u958b\u3059\u308b\u306b\u306f
|
||||
pageExpiredMsg2=\u30ed\u30b0\u30a4\u30f3\u51e6\u7406\u3092\u7d9a\u884c\u3059\u308b\u306b\u306f
|
||||
personalInfo=\u500b\u4eba\u60c5\u5831\:
|
||||
role_admin=\u7ba1\u7406\u8005
|
||||
role_realm-admin=\u30ec\u30eb\u30e0\u7ba1\u7406\u8005
|
||||
role_create-realm=\u30ec\u30eb\u30e0\u306e\u4f5c\u6210
|
||||
role_create-client=\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u306e\u4f5c\u6210
|
||||
role_view-realm=\u30ec\u30eb\u30e0\u306e\u53c2\u7167
|
||||
role_view-users=\u30e6\u30fc\u30b6\u30fc\u306e\u53c2\u7167
|
||||
role_view-applications=\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u53c2\u7167
|
||||
role_view-clients=\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u306e\u53c2\u7167
|
||||
role_view-events=\u30a4\u30d9\u30f3\u30c8\u306e\u53c2\u7167
|
||||
role_view-identity-providers=\u30a2\u30a4\u30c7\u30f3\u30c6\u30a3\u30c6\u30a3\u30fc\u30fb\u30d7\u30ed\u30d0\u30a4\u30c0\u30fc\u306e\u53c2\u7167
|
||||
role_manage-realm=\u30ec\u30eb\u30e0\u306e\u7ba1\u7406
|
||||
role_manage-users=\u30e6\u30fc\u30b6\u30fc\u306e\u7ba1\u7406
|
||||
role_manage-applications=\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u7ba1\u7406
|
||||
role_manage-identity-providers=\u30a2\u30a4\u30c7\u30f3\u30c6\u30a3\u30c6\u30a3\u30fc\u30fb\u30d7\u30ed\u30d0\u30a4\u30c0\u30fc\u306e\u7ba1\u7406
|
||||
role_manage-clients=\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u306e\u7ba1\u7406
|
||||
role_manage-events=\u30a4\u30d9\u30f3\u30c8\u306e\u7ba1\u7406
|
||||
role_view-profile=\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u53c2\u7167
|
||||
role_manage-account=\u30a2\u30ab\u30a6\u30f3\u30c8\u306e\u7ba1\u7406
|
||||
role_manage-account-links=\u30a2\u30ab\u30a6\u30f3\u30c8\u30ea\u30f3\u30af\u306e\u7ba1\u7406
|
||||
role_read-token=\u30c8\u30fc\u30af\u30f3\u306e\u53c2\u7167
|
||||
role_offline-access=\u30aa\u30d5\u30e9\u30a4\u30f3\u30fb\u30a2\u30af\u30bb\u30b9
|
||||
client_account=\u30a2\u30ab\u30a6\u30f3\u30c8
|
||||
client_account-console=\u30a2\u30ab\u30a6\u30f3\u30c8\u30fb\u30b3\u30f3\u30bd\u30fc\u30eb
|
||||
client_security-admin-console=\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30fc\u7ba1\u7406\u30b3\u30f3\u30bd\u30fc\u30eb
|
||||
client_admin-cli=\u7ba1\u7406CLI
|
||||
client_realm-management=\u30ec\u30eb\u30e0\u7ba1\u7406
|
||||
client_broker=\u30d6\u30ed\u30fc\u30ab\u30fc
|
||||
requiredFields=\u5fc5\u9808\u30d5\u30a3\u30fc\u30eb\u30c9
|
||||
invalidUserMessage=\u7121\u52b9\u306a\u30e6\u30fc\u30b6\u30fc\u540d\u307e\u305f\u306f\u30d1\u30b9\u30ef\u30fc\u30c9\u3067\u3059\u3002
|
||||
invalidUsernameMessage=\u30e6\u30fc\u30b6\u30fc\u540d\u304c\u7121\u52b9\u3067\u3059\u3002
|
||||
invalidUsernameOrEmailMessage=\u30e6\u30fc\u30b6\u30fc\u540d\u307e\u305f\u306f\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u304c\u7121\u52b9\u3067\u3059\u3002
|
||||
invalidPasswordMessage=\u30d1\u30b9\u30ef\u30fc\u30c9\u304c\u7121\u52b9\u3067\u3059\u3002
|
||||
invalidEmailMessage=\u7121\u52b9\u306a\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u3067\u3059\u3002
|
||||
accountDisabledMessage=\u30a2\u30ab\u30a6\u30f3\u30c8\u304c\u7121\u52b9\u3067\u3059\u3002\u7ba1\u7406\u8005\u306b\u9023\u7d61\u3057\u3066\u304f\u3060\u3055\u3044\u3002
|
||||
accountTemporarilyDisabledMessage=\u30a2\u30ab\u30a6\u30f3\u30c8\u304c\u4e00\u6642\u7684\u306b\u7121\u52b9\u3067\u3059\u3002\u7ba1\u7406\u8005\u306b\u9023\u7d61\u3059\u308b\u304b\u3001\u3057\u3070\u3089\u304f\u6642\u9593\u3092\u304a\u3044\u3066\u304b\u3089\u518d\u5ea6\u304a\u8a66\u3057\u304f\u3060\u3055\u3044\u3002
|
||||
expiredCodeMessage=\u30ed\u30b0\u30a4\u30f3\u30fb\u30bf\u30a4\u30e0\u30a2\u30a6\u30c8\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002\u518d\u5ea6\u30ed\u30b0\u30a4\u30f3\u3057\u3066\u304f\u3060\u3055\u3044\u3002
|
||||
expiredActionMessage=\u30a2\u30af\u30b7\u30e7\u30f3\u306f\u671f\u9650\u5207\u308c\u3067\u3059\u3002\u4eca\u3059\u3050\u30ed\u30b0\u30a4\u30f3\u3057\u3066\u304f\u3060\u3055\u3044\u3002
|
||||
expiredActionTokenNoSessionMessage=\u30a2\u30af\u30b7\u30e7\u30f3\u306f\u671f\u9650\u5207\u308c\u3067\u3059\u3002
|
||||
expiredActionTokenSessionExistsMessage=\u30a2\u30af\u30b7\u30e7\u30f3\u306f\u671f\u9650\u5207\u308c\u3067\u3059\u3002\u3082\u3046\u4e00\u5ea6\u3084\u308a\u76f4\u3057\u3066\u304f\u3060\u3055\u3044\u3002
|
||||
missingFirstNameMessage=\u540d\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002
|
||||
missingLastNameMessage=\u59d3\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002
|
||||
missingEmailMessage=E\u30e1\u30fc\u30eb\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002
|
||||
missingUsernameMessage=\u30e6\u30fc\u30b6\u30fc\u540d\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002
|
||||
missingPasswordMessage=\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002
|
||||
missingTotpMessage=\u30aa\u30fc\u30bb\u30f3\u30c6\u30a3\u30b1\u30fc\u30bf\u30fc\u30fb\u30b3\u30fc\u30c9\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002
|
||||
missingTotpDeviceNameMessage=\u30c7\u30d0\u30a4\u30b9\u540d\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002
|
||||
notMatchPasswordMessage=\u30d1\u30b9\u30ef\u30fc\u30c9\u304c\u4e00\u81f4\u3057\u3066\u3044\u307e\u305b\u3093\u3002
|
||||
invalidPasswordExistingMessage=\u65e2\u5b58\u306e\u30d1\u30b9\u30ef\u30fc\u30c9\u304c\u4e0d\u6b63\u3067\u3059\u3002
|
||||
invalidPasswordBlacklistedMessage=\u7121\u52b9\u306a\u30d1\u30b9\u30ef\u30fc\u30c9\: \u30d1\u30b9\u30ef\u30fc\u30c9\u304c\u30d6\u30e9\u30c3\u30af\u30ea\u30b9\u30c8\u306b\u542b\u307e\u308c\u3066\u3044\u307e\u3059\u3002
|
||||
invalidPasswordConfirmMessage=\u30d1\u30b9\u30ef\u30fc\u30c9\u78ba\u8a8d\u304c\u4e00\u81f4\u3057\u3066\u3044\u307e\u305b\u3093\u3002
|
||||
invalidTotpMessage=\u7121\u52b9\u306a\u30aa\u30fc\u30bb\u30f3\u30c6\u30a3\u30b1\u30fc\u30bf\u30fc\u30fb\u30b3\u30fc\u30c9\u3067\u3059\u3002
|
||||
usernameExistsMessage=\u65e2\u306b\u5b58\u5728\u3059\u308b\u30e6\u30fc\u30b6\u30fc\u540d\u3067\u3059\u3002
|
||||
emailExistsMessage=\u65e2\u306b\u5b58\u5728\u3059\u308bE\u30e1\u30fc\u30eb\u3067\u3059\u3002
|
||||
federatedIdentityExistsMessage={0}{1}\u306e\u30e6\u30fc\u30b6\u30fc\u306f\u65e2\u306b\u5b58\u5728\u3057\u307e\u3059\u3002\u305d\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u3092\u30ea\u30f3\u30af\u3059\u308b\u306b\u306f\u30a2\u30ab\u30a6\u30f3\u30c8\u7ba1\u7406\u306b\u30ed\u30b0\u30a4\u30f3\u3057\u3066\u304f\u3060\u3055\u3044\u3002
|
||||
confirmLinkIdpTitle=\u65e2\u306b\u5b58\u5728\u3059\u308b\u30a2\u30ab\u30a6\u30f3\u30c8\u3067\u3059\u3002
|
||||
federatedIdentityConfirmLinkMessage={0}{1}\u306e\u30e6\u30fc\u30b6\u30fc\u306f\u65e2\u306b\u5b58\u5728\u3057\u307e\u3059\u3002\u7d99\u7d9a\u3057\u307e\u3059\u304b?
|
||||
federatedIdentityConfirmReauthenticateMessage={1}\u3067\u30a2\u30ab\u30a6\u30f3\u30c8\u3092\u30ea\u30f3\u30af\u3059\u308b\u305f\u3081\u306b{0}\u3068\u3057\u3066\u8a8d\u8a3c\u3057\u307e\u3059
|
||||
nestedFirstBrokerFlowMessage={0}\u30e6\u30fc\u30b6\u30fc{1}\u306f\u65e2\u77e5\u306e\u30e6\u30fc\u30b6\u30fc\u306b\u30ea\u30f3\u30af\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002
|
||||
confirmLinkIdpReviewProfile=\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u78ba\u8a8d
|
||||
confirmLinkIdpContinue=\u65e2\u5b58\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u306b\u8ffd\u52a0\u3059\u308b
|
||||
configureTotpMessage=\u30a2\u30ab\u30a6\u30f3\u30c8\u3092\u6709\u52b9\u306b\u3059\u308b\u306b\u306f\u30e2\u30d0\u30a4\u30eb\u30fb\u30aa\u30fc\u30bb\u30f3\u30c6\u30a3\u30b1\u30fc\u30bf\u30fc\u306e\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7\u304c\u5fc5\u8981\u3067\u3059\u3002
|
||||
updateProfileMessage=\u30a2\u30ab\u30a6\u30f3\u30c8\u3092\u6709\u52b9\u306b\u3059\u308b\u306b\u306f\u30e6\u30fc\u30b6\u30fc\u30fb\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u66f4\u65b0\u304c\u5fc5\u8981\u3067\u3059\u3002
|
||||
updatePasswordMessage=\u30a2\u30ab\u30a6\u30f3\u30c8\u3092\u6709\u52b9\u306b\u3059\u308b\u306b\u306f\u30d1\u30b9\u30ef\u30fc\u30c9\u306e\u66f4\u65b0\u304c\u5fc5\u8981\u3067\u3059\u3002
|
||||
resetPasswordMessage=\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u5909\u66f4\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002
|
||||
verifyEmailMessage=\u30a2\u30ab\u30a6\u30f3\u30c8\u3092\u6709\u52b9\u306b\u3059\u308b\u306b\u306f\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u306e\u78ba\u8a8d\u304c\u5fc5\u8981\u3067\u3059\u3002
|
||||
linkIdpMessage=\u30a2\u30ab\u30a6\u30f3\u30c8\u3092{0}\u3068\u30ea\u30f3\u30af\u3059\u308b\u306b\u306f\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u306e\u78ba\u8a8d\u304c\u5fc5\u8981\u3067\u3059\u3002
|
||||
emailSentMessage=\u8a73\u7d30\u306a\u624b\u9806\u3092\u8a18\u8f09\u3057\u305fE\u30e1\u30fc\u30eb\u3092\u3059\u3050\u306b\u53d7\u4fe1\u3057\u3066\u304f\u3060\u3055\u3044\u3002
|
||||
emailSendErrorMessage=E\u30e1\u30fc\u30eb\u306e\u9001\u4fe1\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002\u3057\u3070\u3089\u304f\u6642\u9593\u3092\u304a\u3044\u3066\u304b\u3089\u518d\u5ea6\u304a\u8a66\u3057\u304f\u3060\u3055\u3044\u3002
|
||||
accountUpdatedMessage=\u30a2\u30ab\u30a6\u30f3\u30c8\u304c\u66f4\u65b0\u3055\u308c\u307e\u3057\u305f\u3002
|
||||
accountPasswordUpdatedMessage=\u30d1\u30b9\u30ef\u30fc\u30c9\u304c\u66f4\u65b0\u3055\u308c\u307e\u3057\u305f\u3002
|
||||
delegationCompleteHeader=\u30ed\u30b0\u30a4\u30f3\u306b\u6210\u529f\u3057\u307e\u3057\u305f
|
||||
delegationCompleteMessage=\u3053\u306e\u30d6\u30e9\u30a6\u30b6\u30fc\u306e\u30a6\u30a3\u30f3\u30c9\u30a6\u3092\u9589\u3058\u3066\u3001\u30b3\u30f3\u30bd\u30fc\u30eb\u30fb\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306b\u623b\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002
|
||||
delegationFailedHeader=\u30ed\u30b0\u30a4\u30f3\u306b\u5931\u6557\u3057\u307e\u3057\u305f
|
||||
delegationFailedMessage=\u3053\u306e\u30d6\u30e9\u30a6\u30b6\u30fc\u30fb\u30a6\u30a3\u30f3\u30c9\u30a6\u3092\u9589\u3058\u3066\u30b3\u30f3\u30bd\u30fc\u30eb\u30fb\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306b\u623b\u308a\u3001\u518d\u5ea6\u30ed\u30b0\u30a4\u30f3\u3092\u8a66\u307f\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002
|
||||
noAccessMessage=\u30a2\u30af\u30bb\u30b9\u304c\u3042\u308a\u307e\u305b\u3093
|
||||
invalidPasswordMinLengthMessage=\u7121\u52b9\u306a\u30d1\u30b9\u30ef\u30fc\u30c9\: \u6700\u5c0f{0}\u306e\u9577\u3055\u304c\u5fc5\u8981\u3067\u3059\u3002
|
||||
invalidPasswordMinDigitsMessage=\u7121\u52b9\u306a\u30d1\u30b9\u30ef\u30fc\u30c9\: \u5c11\u306a\u304f\u3068\u3082{0}\u6587\u5b57\u306e\u6570\u5b57\u3092\u542b\u3080\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002
|
||||
invalidPasswordMinLowerCaseCharsMessage=\u7121\u52b9\u306a\u30d1\u30b9\u30ef\u30fc\u30c9\: \u5c11\u306a\u304f\u3068\u3082{0}\u6587\u5b57\u306e\u5c0f\u6587\u5b57\u3092\u542b\u3080\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002
|
||||
invalidPasswordMinUpperCaseCharsMessage=\u7121\u52b9\u306a\u30d1\u30b9\u30ef\u30fc\u30c9\: \u5c11\u306a\u304f\u3068\u3082{0}\u6587\u5b57\u306e\u5927\u6587\u5b57\u3092\u542b\u3080\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002
|
||||
invalidPasswordMinSpecialCharsMessage=\u7121\u52b9\u306a\u30d1\u30b9\u30ef\u30fc\u30c9\: \u5c11\u306a\u304f\u3068\u3082{0}\u6587\u5b57\u306e\u7279\u6b8a\u6587\u5b57\u3092\u542b\u3080\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002
|
||||
invalidPasswordNotUsernameMessage=\u7121\u52b9\u306a\u30d1\u30b9\u30ef\u30fc\u30c9\: \u30e6\u30fc\u30b6\u30fc\u540d\u3068\u540c\u3058\u30d1\u30b9\u30ef\u30fc\u30c9\u306f\u7981\u6b62\u3055\u308c\u3066\u3044\u307e\u3059\u3002
|
||||
invalidPasswordRegexPatternMessage=\u7121\u52b9\u306a\u30d1\u30b9\u30ef\u30fc\u30c9\: \u6b63\u898f\u8868\u73fe\u30d1\u30bf\u30fc\u30f3\u3068\u4e00\u81f4\u3057\u307e\u305b\u3093\u3002
|
||||
invalidPasswordHistoryMessage=\u7121\u52b9\u306a\u30d1\u30b9\u30ef\u30fc\u30c9\: \u6700\u8fd1\u306e{0}\u30d1\u30b9\u30ef\u30fc\u30c9\u306e\u3044\u305a\u308c\u304b\u3068\u540c\u3058\u30d1\u30b9\u30ef\u30fc\u30c9\u306f\u7981\u6b62\u3055\u308c\u3066\u3044\u307e\u3059\u3002
|
||||
invalidPasswordGenericMessage=\u7121\u52b9\u306a\u30d1\u30b9\u30ef\u30fc\u30c9\: \u65b0\u3057\u3044\u30d1\u30b9\u30ef\u30fc\u30c9\u306f\u30d1\u30b9\u30ef\u30fc\u30c9\u30fb\u30dd\u30ea\u30b7\u30fc\u3068\u4e00\u81f4\u3057\u307e\u305b\u3093\u3002
|
||||
failedToProcessResponseMessage=\u5fdc\u7b54\u3092\u51e6\u7406\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f
|
||||
httpsRequiredMessage=HTTPS\u304c\u5fc5\u9808\u3067\u3059
|
||||
realmNotEnabledMessage=\u30ec\u30eb\u30e0\u304c\u6709\u52b9\u3067\u306f\u3042\u308a\u307e\u305b\u3093
|
||||
invalidRequestMessage=\u7121\u52b9\u306a\u30ea\u30af\u30a8\u30b9\u30c8\u3067\u3059
|
||||
failedLogout=\u30ed\u30b0\u30a2\u30a6\u30c8\u306b\u5931\u6557\u3057\u307e\u3057\u305f
|
||||
unknownLoginRequesterMessage=\u4e0d\u660e\u306a\u30ed\u30b0\u30a4\u30f3\u8981\u6c42\u5143\u3067\u3059
|
||||
loginRequesterNotEnabledMessage=\u30ed\u30b0\u30a4\u30f3\u8981\u6c42\u5143\u306f\u6709\u52b9\u3067\u306f\u3042\u308a\u307e\u305b\u3093
|
||||
bearerOnlyMessage=bearer-only\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306f\u30d6\u30e9\u30a6\u30b6\u30fc\u30fb\u30ed\u30b0\u30a4\u30f3\u3092\u958b\u59cb\u3059\u308b\u3053\u3068\u304c\u8a31\u53ef\u3055\u308c\u3066\u3044\u307e\u305b\u3093
|
||||
standardFlowDisabledMessage=\u4e0e\u3048\u3089\u308c\u305fresponse_type\u3067\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u306f\u30d6\u30e9\u30a6\u30b6\u30fc\u30fb\u30ed\u30b0\u30a4\u30f3\u3092\u958b\u59cb\u3059\u308b\u3053\u3068\u304c\u8a31\u53ef\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002\u6a19\u6e96\u30d5\u30ed\u30fc\u306f\u7121\u52b9\u3067\u3059\u3002
|
||||
implicitFlowDisabledMessage=\u4e0e\u3048\u3089\u308c\u305fresponse_type\u3067\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u306f\u30d6\u30e9\u30a6\u30b6\u30fc\u30fb\u30ed\u30b0\u30a4\u30f3\u3092\u958b\u59cb\u3059\u308b\u3053\u3068\u304c\u8a31\u53ef\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002\u30a4\u30f3\u30d7\u30ea\u30b7\u30c3\u30c8\u30fb\u30d5\u30ed\u30fc\u306f\u7121\u52b9\u3067\u3059\u3002
|
||||
invalidRedirectUriMessage=\u7121\u52b9\u306a\u30ea\u30c0\u30a4\u30ec\u30af\u30c8URI\u3067\u3059
|
||||
unsupportedNameIdFormatMessage=\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u306a\u3044NameID Format\u3067\u3059
|
||||
invalidRequesterMessage=\u7121\u52b9\u306a\u8981\u6c42\u5143\u3067\u3059
|
||||
registrationNotAllowedMessage=\u767b\u9332\u306f\u8a31\u53ef\u3055\u308c\u3066\u3044\u307e\u305b\u3093
|
||||
resetCredentialNotAllowedMessage=\u30af\u30ec\u30c7\u30f3\u30b7\u30e3\u30eb\u306e\u30ea\u30bb\u30c3\u30c8\u306f\u8a31\u53ef\u3055\u308c\u3066\u3044\u307e\u305b\u3093
|
||||
permissionNotApprovedMessage=\u30d1\u30fc\u30df\u30c3\u30b7\u30e7\u30f3\u306f\u627f\u8a8d\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002
|
||||
noRelayStateInResponseMessage=\u30a2\u30a4\u30c7\u30f3\u30c6\u30a3\u30c6\u30a3\u30fc\u30fb\u30d7\u30ed\u30d0\u30a4\u30c0\u30fc\u304b\u3089\u306e\u5fdc\u7b54\u306bRelayState\u304c\u3042\u308a\u307e\u305b\u3093\u3002
|
||||
insufficientPermissionMessage=\u30a2\u30a4\u30c7\u30f3\u30c6\u30a3\u30c6\u30a3\u30fc\u306b\u30ea\u30f3\u30af\u3059\u308b\u306b\u306f\u4e0d\u5341\u5206\u306a\u30d1\u30fc\u30df\u30c3\u30b7\u30e7\u30f3\u3067\u3059\u3002
|
||||
couldNotProceedWithAuthenticationRequestMessage=\u30a2\u30a4\u30c7\u30f3\u30c6\u30a3\u30c6\u30a3\u30fc\u30fb\u30d7\u30ed\u30d0\u30a4\u30c0\u30fc\u3078\u306e\u8a8d\u8a3c\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u7d9a\u884c\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002
|
||||
couldNotObtainTokenMessage=\u30a2\u30a4\u30c7\u30f3\u30c6\u30a3\u30c6\u30a3\u30fc\u30fb\u30d7\u30ed\u30d0\u30a4\u30c0\u30fc\u304b\u3089\u30c8\u30fc\u30af\u30f3\u3092\u53d6\u5f97\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002
|
||||
unexpectedErrorRetrievingTokenMessage=\u30a2\u30a4\u30c7\u30f3\u30c6\u30a3\u30c6\u30a3\u30fc\u30fb\u30d7\u30ed\u30d0\u30a4\u30c0\u30fc\u304b\u3089\u306e\u30c8\u30fc\u30af\u30f3\u53d6\u5f97\u3067\u4e88\u671f\u305b\u306c\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002
|
||||
unexpectedErrorHandlingResponseMessage=\u30a2\u30a4\u30c7\u30f3\u30c6\u30a3\u30c6\u30a3\u30fc\u30fb\u30d7\u30ed\u30d0\u30a4\u30c0\u30fc\u304b\u3089\u306e\u5fdc\u7b54\u3092\u51e6\u7406\u3059\u308b\u969b\u306b\u4e88\u671f\u305b\u306c\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002
|
||||
identityProviderAuthenticationFailedMessage=\u8a8d\u8a3c\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002\u30a2\u30a4\u30c7\u30f3\u30c6\u30a3\u30c6\u30a3\u30fc\u30fb\u30d7\u30ed\u30d0\u30a4\u30c0\u30fc\u3092\u4f7f\u7528\u3057\u3066\u8a8d\u8a3c\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002
|
||||
couldNotSendAuthenticationRequestMessage=\u30a2\u30a4\u30c7\u30f3\u30c6\u30a3\u30c6\u30a3\u30fc\u30fb\u30d7\u30ed\u30d0\u30a4\u30c0\u30fc\u306b\u8a8d\u8a3c\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u9001\u4fe1\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002
|
||||
unexpectedErrorHandlingRequestMessage=\u30a2\u30a4\u30c7\u30f3\u30c6\u30a3\u30c6\u30a3\u30fc\u30fb\u30d7\u30ed\u30d0\u30a4\u30c0\u30fc\u3078\u306e\u8a8d\u8a3c\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u51e6\u7406\u3059\u308b\u969b\u306b\u4e88\u671f\u305b\u306c\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002
|
||||
invalidAccessCodeMessage=\u7121\u52b9\u306a\u30a2\u30af\u30bb\u30b9\u30b3\u30fc\u30c9\u3067\u3059\u3002
|
||||
sessionNotActiveMessage=\u30bb\u30c3\u30b7\u30e7\u30f3\u304c\u6709\u52b9\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002
|
||||
invalidCodeMessage=\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u4ecb\u3057\u3066\u518d\u5ea6\u30ed\u30b0\u30a4\u30f3\u3057\u3066\u304f\u3060\u3055\u3044\u3002
|
||||
identityProviderUnexpectedErrorMessage=\u30a2\u30a4\u30c7\u30f3\u30c6\u30a3\u30c6\u30a3\u30fc\u30fb\u30d7\u30ed\u30d0\u30a4\u30c0\u30fc\u306b\u3088\u308b\u8a8d\u8a3c\u306e\u969b\u306b\u4e88\u671f\u305b\u306c\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f
|
||||
identityProviderNotFoundMessage=\u8a72\u5f53\u306e\u8b58\u5225\u5b50\u3092\u6301\u3064\u30a2\u30a4\u30c7\u30f3\u30c6\u30a3\u30c6\u30a3\u30fc\u30fb\u30d7\u30ed\u30d0\u30a4\u30c0\u30fc\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002
|
||||
identityProviderLinkSuccess=E\u30e1\u30fc\u30eb\u3092\u6b63\u5e38\u306b\u78ba\u8a8d\u3057\u307e\u3057\u305f\u3002\u5143\u306e\u30d6\u30e9\u30a6\u30b6\u30fc\u306b\u623b\u3063\u3066\u30ed\u30b0\u30a4\u30f3\u3057\u3066\u304f\u3060\u3055\u3044\u3002
|
||||
staleCodeMessage=\u3053\u306e\u30da\u30fc\u30b8\u306f\u3082\u306f\u3084\u6709\u52b9\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u306e\u3067\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306b\u623b\u308a\u518d\u5ea6\u30ed\u30b0\u30a4\u30f3\u3057\u3066\u304f\u3060\u3055\u3044
|
||||
realmSupportsNoCredentialsMessage=\u30ec\u30eb\u30e0\u306f\u30af\u30ec\u30c7\u30f3\u30b7\u30e3\u30eb\u30fb\u30bf\u30a4\u30d7\u3092\u30b5\u30dd\u30fc\u30c8\u3057\u3066\u3044\u307e\u305b\u3093\u3002
|
||||
credentialSetupRequired=\u30ed\u30b0\u30a4\u30f3\u3067\u304d\u307e\u305b\u3093\u3002\u30af\u30ec\u30c7\u30f3\u30b7\u30e3\u30eb\u306e\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7\u304c\u5fc5\u8981\u3067\u3059\u3002
|
||||
identityProviderNotUniqueMessage=\u30ec\u30eb\u30e0\u306f\u8907\u6570\u306e\u30a2\u30a4\u30c7\u30f3\u30c6\u30a3\u30c6\u30a3\u30fc\u30fb\u30d7\u30ed\u30d0\u30a4\u30c0\u30fc\u3092\u30b5\u30dd\u30fc\u30c8\u3057\u3066\u3044\u307e\u3059\u3002\u3069\u306e\u30a2\u30a4\u30c7\u30f3\u30c6\u30a3\u30c6\u30a3\u30fc\u30fb\u30d7\u30ed\u30d0\u30a4\u30c0\u30fc\u304c\u8a8d\u8a3c\u306b\u4f7f\u7528\u3055\u308c\u308b\u3079\u304d\u304b\u5224\u65ad\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002
|
||||
emailVerifiedMessage=\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u304c\u78ba\u8a8d\u3067\u304d\u307e\u3057\u305f\u3002
|
||||
staleEmailVerificationLink=\u30af\u30ea\u30c3\u30af\u3057\u305f\u30ea\u30f3\u30af\u306f\u53e4\u3044\u30ea\u30f3\u30af\u3067\u3042\u308a\u3001\u6709\u52b9\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002\u304a\u305d\u3089\u304f\u3001\u3059\u3067\u306b\u30e1\u30fc\u30eb\u3092\u78ba\u8a8d\u3057\u3066\u3044\u307e\u3059\u3002
|
||||
identityProviderAlreadyLinkedMessage={0}\u306b\u3088\u3063\u3066\u8fd4\u3055\u308c\u305f\u9023\u643a\u6e08\u307f\u30a2\u30a4\u30c7\u30f3\u30c6\u30a3\u30c6\u30a3\u30fc\u306f\u3001\u3059\u3067\u306b\u5225\u306e\u30e6\u30fc\u30b6\u30fc\u306b\u30ea\u30f3\u30af\u3055\u308c\u3066\u3044\u307e\u3059\u3002
|
||||
confirmAccountLinking=\u30a2\u30a4\u30c7\u30f3\u30c6\u30a3\u30c6\u30a3\u30fc\u30fb\u30d7\u30ed\u30d0\u30a4\u30c0\u30fc{1}\u306e\u30a2\u30ab\u30a6\u30f3\u30c8{0}\u3068\u3042\u306a\u305f\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u3068\u306e\u30ea\u30f3\u30af\u3092\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002
|
||||
confirmEmailAddressVerification=E\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9{0}\u306e\u6709\u52b9\u6027\u3092\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002
|
||||
confirmExecutionOfActions=\u6b21\u306e\u64cd\u4f5c\u3092\u5b9f\u884c\u3057\u307e\u3059\u3002
|
||||
backToApplication=« \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306b\u623b\u308b
|
||||
missingParameterMessage=\u4e0d\u8db3\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\: {0}
|
||||
clientNotFoundMessage=\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002
|
||||
clientDisabledMessage=\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u304c\u7121\u52b9\u306b\u306a\u3063\u3066\u3044\u307e\u3059\u3002
|
||||
invalidParameterMessage=\u7121\u52b9\u306a\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\: {0}
|
||||
alreadyLoggedIn=\u65e2\u306b\u30ed\u30b0\u30a4\u30f3\u3057\u3066\u3044\u307e\u3059\u3002
|
||||
differentUserAuthenticated=\u3059\u3067\u306b\u3053\u306e\u30bb\u30c3\u30b7\u30e7\u30f3\u3067\u7570\u306a\u308b\u30e6\u30fc\u30b6\u30fc''{0}''\u3068\u3057\u3066\u8a8d\u8a3c\u3055\u308c\u3066\u3044\u307e\u3059\u3002\u307e\u305a\u30ed\u30b0\u30a2\u30a6\u30c8\u3057\u3066\u304f\u3060\u3055\u3044\u3002
|
||||
brokerLinkingSessionExpired=\u8981\u6c42\u3055\u308c\u305f\u30d6\u30ed\u30fc\u30ab\u30fc\u30fb\u30a2\u30ab\u30a6\u30f3\u30c8\u306e\u30ea\u30f3\u30af\u306f\u3001\u73fe\u5728\u306e\u30bb\u30c3\u30b7\u30e7\u30f3\u3067\u306f\u6709\u52b9\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002
|
||||
proceedWithAction=» \u7d9a\u884c\u3059\u308b\u306b\u306f\u3053\u3053\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u304f\u3060\u3055\u3044
|
||||
requiredAction.CONFIGURE_TOTP=OTP\u306e\u8a2d\u5b9a
|
||||
requiredAction.TERMS_AND_CONDITIONS=\u5229\u7528\u898f\u7d04
|
||||
requiredAction.UPDATE_PASSWORD=\u30d1\u30b9\u30ef\u30fc\u30c9\u306e\u66f4\u65b0
|
||||
requiredAction.UPDATE_PROFILE=\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u66f4\u65b0
|
||||
requiredAction.VERIFY_EMAIL=E\u30e1\u30fc\u30eb\u306e\u78ba\u8a8d
|
||||
doX509Login=\u6b21\u306e\u30e6\u30fc\u30b6\u30fc\u3068\u3057\u3066\u30ed\u30b0\u30a4\u30f3\u3057\u307e\u3059\:
|
||||
clientCertificate=X509\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u8a3c\u660e\u66f8\:
|
||||
noCertificate=[\u8a3c\u660e\u66f8\u306a\u3057]
|
||||
pageNotFound=\u30da\u30fc\u30b8\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093
|
||||
internalServerError=\u5185\u90e8\u30b5\u30fc\u30d0\u30fc\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f
|
||||
console-username=\u30e6\u30fc\u30b6\u30fc\u540d\:
|
||||
console-password=\u30d1\u30b9\u30ef\u30fc\u30c9\:
|
||||
console-otp=\u30ef\u30f3\u30bf\u30a4\u30e0\u30fb\u30d1\u30b9\u30ef\u30fc\u30c9\:
|
||||
console-new-password=\u65b0\u3057\u3044\u30d1\u30b9\u30ef\u30fc\u30c9\:
|
||||
console-confirm-password=\u30d1\u30b9\u30ef\u30fc\u30c9\u306e\u78ba\u8a8d\:
|
||||
console-update-password=\u30d1\u30b9\u30ef\u30fc\u30c9\u306e\u66f4\u65b0\u304c\u5fc5\u8981\u3067\u3059\u3002
|
||||
console-verify-email=\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u3092\u78ba\u8a8d\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u78ba\u8a8d\u30b3\u30fc\u30c9\u3092\u542b\u3080\u30e1\u30fc\u30eb\u3092{0}\u306b\u9001\u4fe1\u3057\u307e\u3057\u305f\u3002\u3053\u306e\u30b3\u30fc\u30c9\u3092\u4ee5\u4e0b\u306b\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002
|
||||
console-email-code=E\u30e1\u30fc\u30eb\u30b3\u30fc\u30c9\uff1a
|
||||
console-accept-terms=\u5229\u7528\u898f\u7d04\u306b\u540c\u610f\u3057\u307e\u3059\u304b\uff1f [y/n]\:
|
||||
console-accept=y
|
||||
openshift.scope.user_info=\u30e6\u30fc\u30b6\u30fc\u60c5\u5831
|
||||
openshift.scope.user_check-access=\u30e6\u30fc\u30b6\u30fc\u30a2\u30af\u30bb\u30b9\u60c5\u5831
|
||||
openshift.scope.user_full=\u30d5\u30eb\u30a2\u30af\u30bb\u30b9
|
||||
openshift.scope.list-projects=\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u4e00\u89a7\u8868\u793a
|
||||
saml.post-form.title=\u8a8d\u8a3c\u30ea\u30c0\u30a4\u30ec\u30af\u30c8
|
||||
saml.post-form.message=\u30ea\u30c0\u30a4\u30ec\u30af\u30c8\u3057\u3066\u3044\u307e\u3059\u3002\u304a\u5f85\u3061\u304f\u3060\u3055\u3044\u3002
|
||||
saml.post-form.js-disabled=JavaScript\u304c\u7121\u52b9\u306b\u306a\u3063\u3066\u3044\u307e\u3059\u3002\u6709\u52b9\u306b\u3059\u308b\u3053\u3068\u3092\u5f37\u304f\u304a\u52e7\u3081\u3057\u307e\u3059\u3002\u7d99\u7d9a\u3059\u308b\u306b\u306f\u3001\u4e0b\u306e\u30dc\u30bf\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u304f\u3060\u3055\u3044\u3002
|
||||
otp-display-name=\u30aa\u30fc\u30bb\u30f3\u30c6\u30a3\u30b1\u30fc\u30bf\u30fc\u30fb\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3
|
||||
otp-help-text=\u30aa\u30fc\u30bb\u30f3\u30c6\u30a3\u30b1\u30fc\u30bf\u30fc\u30fb\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u304b\u3089\u53d6\u5f97\u3057\u305f\u78ba\u8a8d\u30b3\u30fc\u30c9\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002
|
||||
password-display-name=\u30d1\u30b9\u30ef\u30fc\u30c9
|
||||
password-help-text=\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u5165\u529b\u3057\u3066\u30ed\u30b0\u30a4\u30f3\u3057\u307e\u3059\u3002
|
||||
auth-username-form-display-name=\u30e6\u30fc\u30b6\u30fc\u540d
|
||||
auth-username-form-help-text=\u30e6\u30fc\u30b6\u30fc\u540d\u3092\u5165\u529b\u3057\u3066\u30ed\u30b0\u30a4\u30f3\u3092\u958b\u59cb\u3057\u307e\u3059
|
||||
auth-username-password-form-display-name=\u30e6\u30fc\u30b6\u30fc\u540d\u3068\u30d1\u30b9\u30ef\u30fc\u30c9
|
||||
auth-username-password-form-help-text=\u30e6\u30fc\u30b6\u30fc\u540d\u3068\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u5165\u529b\u3057\u3066\u30ed\u30b0\u30a4\u30f3\u3057\u3066\u304f\u3060\u3055\u3044\u3002
|
||||
webauthn-display-name=\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30fc\u30ad\u30fc
|
||||
webauthn-help-text=\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30fc\u30ad\u30fc\u3092\u4f7f\u7528\u3057\u3066\u30ed\u30b0\u30a4\u30f3\u3057\u3066\u304f\u3060\u3055\u3044\u3002
|
||||
webauthn-passwordless-display-name=\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30fc\u30ad\u30fc
|
||||
webauthn-passwordless-help-text=\u30d1\u30b9\u30ef\u30fc\u30c9\u30ec\u30b9\u30fb\u30ed\u30b0\u30a4\u30f3\u306b\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30fc\u30ad\u30fc\u3092\u4f7f\u7528\u3057\u307e\u3059\u3002
|
||||
webauthn-login-title=\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30fc\u30ad\u30fc\u30fb\u30ed\u30b0\u30a4\u30f3
|
||||
webauthn-registration-title=\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30fc\u30ad\u30fc\u306e\u767b\u9332
|
||||
webauthn-available-authenticators=\u5229\u7528\u53ef\u80fd\u306a\u30aa\u30fc\u30bb\u30f3\u30c6\u30a3\u30b1\u30fc\u30bf\u30fc
|
||||
webauthn-error-title=\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30fc\u30ad\u30fc\u30fb\u30a8\u30e9\u30fc
|
||||
webauthn-error-registration=\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30fc\u30ad\u30fc\u3092\u767b\u9332\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002
|
||||
webauthn-error-api-get=\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30fc\u30ad\u30fc\u306b\u3088\u308b\u8a8d\u8a3c\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002
|
||||
webauthn-error-different-user=\u6700\u521d\u306b\u8a8d\u8a3c\u3055\u308c\u305f\u30e6\u30fc\u30b6\u30fc\u306f\u3001\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30fc\u30ad\u30fc\u306b\u3088\u3063\u3066\u8a8d\u8a3c\u3055\u308c\u305f\u30e6\u30fc\u30b6\u30fc\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002
|
||||
webauthn-error-auth-verification=\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30fc\u30ad\u30fc\u306e\u8a8d\u8a3c\u7d50\u679c\u304c\u7121\u52b9\u3067\u3059\u3002
|
||||
webauthn-error-register-verification=\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30fc\u30ad\u30fc\u306e\u767b\u9332\u7d50\u679c\u304c\u7121\u52b9\u3067\u3059\u3002
|
||||
webauthn-error-user-not-found=\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30fc\u30ad\u30fc\u3067\u8a8d\u8a3c\u3055\u308c\u305f\u4e0d\u660e\u306a\u30e6\u30fc\u30b6\u30fc\u3002
|
||||
identity-provider-redirector=\u5225\u306e\u30a2\u30a4\u30c7\u30f3\u30c6\u30a3\u30c6\u30a3\u30fc\u30fb\u30d7\u30ed\u30d0\u30a4\u30c0\u30fc\u3068\u63a5\u7d9a\u3059\u308b
|
||||
frontchannel-logout.title=\u30ed\u30b0\u30a2\u30a6\u30c8
|
||||
frontchannel-logout.message=\u4ee5\u4e0b\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u304b\u3089\u30ed\u30b0\u30a2\u30a6\u30c8\u3057\u307e\u3057\u305f\u3002
|
||||
logoutConfirmTitle=\u30ed\u30b0\u30a2\u30a6\u30c8
|
||||
logoutConfirmHeader=\u30ed\u30b0\u30a2\u30a6\u30c8\u3057\u307e\u3059\u304b\uff1f
|
||||
doLogout=\u30ed\u30b0\u30a2\u30a6\u30c8
|
||||
readOnlyUsernameMessage=\u8aad\u307f\u53d6\u308a\u5c02\u7528\u306e\u305f\u3081\u3001\u30e6\u30fc\u30b6\u30fc\u540d\u3092\u66f4\u65b0\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002
|
||||
shouldBeEqual={0} \u306f {1} \u3068\u7b49\u3057\u3044\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059
|
||||
shouldBeDifferent={0} \u306f {1} \u3068\u7570\u306a\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059
|
||||
shouldMatchPattern=\u30d1\u30bf\u30fc\u30f3\u306f\u4e00\u81f4\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\: `/{0}/`
|
||||
mustBeAnInteger=\u6574\u6570\u3067\u3042\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059
|
||||
notAValidOption=\u6709\u52b9\u306a\u30aa\u30d7\u30b7\u30e7\u30f3\u3067\u306f\u3042\u308a\u307e\u305b\u3093
|
||||
selectAnOption=\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u9078\u629e
|
||||
remove=\u524a\u9664
|
||||
addValue=\u5024\u3092\u8ffd\u52a0
|
||||
languages=\u8a00\u8a9e
|
@ -0,0 +1,466 @@
|
||||
|
||||
emailVerifyTitle=\u10d4\u10da\u10e4\u10dd\u10e1\u10e2\u10d8\u10e1 \u10d2\u10d0\u10d3\u10d0\u10db\u10dd\u10ec\u10db\u10d4\u10d1\u10d0
|
||||
emailForgotTitle=\u10d3\u10d0\u10d2\u10d0\u10d5\u10d8\u10ec\u10e7\u10d3\u10d0\u10d7 \u10de\u10d0\u10e0\u10dd\u10da\u10d8?
|
||||
emailUpdateConfirmationSent=\u10d3\u10d0\u10d3\u10d0\u10e1\u10e2\u10e3\u10e0\u10d4\u10d1\u10d8\u10e1 \u10d4\u10da\u10e4\u10dd\u10e1\u10e2\u10d0 \u10d2\u10d0\u10d8\u10d2\u10d6\u10d0\u10d5\u10dc\u10d0 \u10db\u10d8\u10e1\u10d0\u10db\u10d0\u10e0\u10d7\u10d6\u10d4 {0}. \u10d4\u10da\u10e4\u10dd\u10e1\u10e2\u10d8\u10e1 \u10d2\u10d0\u10dc\u10d0\u10ee\u10da\u10d4\u10d1\u10d8\u10e1\u10d7\u10d5\u10d8\u10e1 \u10d4\u10da\u10e4\u10dd\u10e1\u10e2\u10d0\u10d6\u10d4 \u10d2\u10d0\u10db\u10dd\u10d2\u10d6\u10d0\u10d5\u10dc\u10d8\u10e1 \u10d8\u10dc\u10e1\u10e2\u10e0\u10e3\u10e5\u10ea\u10d8\u10d4\u10d1\u10e1 \u10db\u10d8\u10f0\u10e7\u10d4\u10d5\u10d8\u10d7.
|
||||
codeErrorTitle=\u10e8\u10d4\u10ea\u10d3\u10dd\u10db\u10d8\u10e1 \u10d9\u10dd\u10d3\u10d8\: {0}
|
||||
acceptTerms=\u10db\u10d4 \u10d5\u10d4\u10d7\u10d0\u10dc\u10ee\u10db\u10d4\u10d1\u10d8 \u10ec\u10d4\u10e1\u10d4\u10d1\u10e1 \u10d3\u10d0 \u10de\u10d8\u10e0\u10dd\u10d1\u10d4\u10d1\u10e1
|
||||
unknown=\u10e3\u10ea\u10dc\u10dd\u10d1\u10d8
|
||||
noAccount=\u10d0\u10ee\u10d0\u10da\u10d8 \u10db\u10dd\u10db\u10ee\u10db\u10d0\u10e0\u10d4\u10d1\u10d4\u10da\u10d8 \u10d1\u10e0\u10eb\u10d0\u10dc\u10d3\u10d4\u10d1\u10d8\u10d7?
|
||||
firstName=\u10e1\u10d0\u10ee\u10d4\u10da\u10d8
|
||||
givenName=\u10d3\u10d0\u10e0\u10e5\u10db\u10d4\u10e3\u10da\u10d8 \u10e1\u10d0\u10ee\u10d4\u10da\u10d8
|
||||
fullName=\u10e1\u10e0\u10e3\u10da\u10d8 \u10e1\u10d0\u10ee\u10d4\u10da\u10d8
|
||||
lastName=\u10d2\u10d5\u10d0\u10e0\u10d8
|
||||
address=\u10db\u10d8\u10e1\u10d0\u10db\u10d0\u10e0\u10d7\u10d8
|
||||
region=\u10e8\u10e2\u10d0\u10e2\u10d8, \u10de\u10e0\u10dd\u10d5\u10d8\u10dc\u10ea\u10d8\u10d0 \u10d0\u10dc \u10e0\u10d4\u10d2\u10d8\u10dd\u10dc\u10d8
|
||||
postal_code=Zip \u10d0\u10dc \u10e1\u10d0\u10e4\u10dd\u10e1\u10e2\u10dd \u10d9\u10dd\u10d3\u10d8
|
||||
phoneNumberVerified=\u10e2\u10d4\u10da\u10d4\u10e4\u10dd\u10dc\u10d8\u10e1 \u10dc\u10dd\u10db\u10d4\u10e0\u10d8 \u10d2\u10d0\u10d3\u10d0\u10db\u10dd\u10ec\u10db\u10d4\u10d1\u10e3\u10da\u10d8\u10d0
|
||||
birthday=\u10d3\u10d0\u10d1\u10d0\u10d3\u10d4\u10d1\u10d8\u10e1 \u10d7\u10d0\u10e0\u10d8\u10e6\u10d8
|
||||
gender=\u10e1\u10e5\u10d4\u10e1\u10d8
|
||||
gssDelegationCredential=GSS \u10d3\u10d4\u10da\u10d4\u10d2\u10d0\u10ea\u10d8\u10d8\u10e1 \u10d0\u10d5\u10e2\u10dd\u10e0\u10d8\u10d6\u10d0\u10ea\u10d8\u10d8\u10e1 \u10d3\u10d4\u10e2\u10d0\u10da\u10d4\u10d1\u10d8
|
||||
addressScopeConsentText=\u10db\u10d8\u10e1\u10d0\u10db\u10d0\u10e0\u10d7\u10d8
|
||||
offlineAccessScopeConsentText=\u10d8\u10dc\u10e2\u10d4\u10e0\u10dc\u10d4\u10e2\u10d2\u10d0\u10e0\u10d4\u10e8\u10d4 \u10ec\u10d5\u10d3\u10dd\u10db\u10d0
|
||||
phoneScopeConsentText=\u10e2\u10d4\u10da\u10d4\u10e4\u10dd\u10dc\u10d8\u10e1 \u10dc\u10dd\u10db\u10d4\u10e0\u10d8
|
||||
samlRoleListScopeConsentText=\u10e9\u10d4\u10db\u10d8 \u10e0\u10dd\u10da\u10d4\u10d1\u10d8
|
||||
rolesScopeConsentText=\u10db\u10dd\u10db\u10ee\u10db\u10d0\u10e0\u10d4\u10d1\u10da\u10d8\u10e1 \u10e0\u10dd\u10da\u10d4\u10d1\u10d8
|
||||
organizationScopeConsentText=\u10dd\u10e0\u10d2\u10d0\u10dc\u10d8\u10d6\u10d0\u10ea\u10d8\u10d0
|
||||
restartLoginTooltip=\u10e8\u10d4\u10e1\u10d5\u10da\u10d8\u10e1 \u10d7\u10d0\u10d5\u10d8\u10d3\u10d0\u10dc \u10d3\u10d0\u10ec\u10e7\u10d4\u10d1\u10d0
|
||||
loginTotpStep1=\u10d3\u10d0\u10d0\u10e7\u10d4\u10dc\u10d4\u10d7 \u10d4\u10e0\u10d7-\u10d4\u10e0\u10d7\u10d8 \u10d0\u10db \u10d0\u10de\u10da\u10d8\u10d9\u10d0\u10ea\u10d8\u10d0\u10d7\u10d0\u10d2\u10d0\u10dc\u10d8 \u10d7\u10e5\u10d5\u10d4\u10dc\u10e1 \u10db\u10dd\u10d1\u10d8\u10da\u10e3\u10e0\u10d6\u10d4\:
|
||||
loginTotpStep3DeviceName=\u10e8\u10d4\u10d8\u10e7\u10d5\u10d0\u10dc\u10d4\u10d7 \u10db\u10dd\u10ec\u10e7\u10dd\u10d1\u10d8\u10da\u10dd\u10d1\u10d8\u10e1 \u10e1\u10d0\u10ee\u10d4\u10da\u10d8, \u10e0\u10dd\u10db \u10d7\u10e5\u10d5\u10d4\u10dc\u10d8 OTP \u10db\u10dd\u10ec\u10e7\u10dd\u10d1\u10d8\u10da\u10dd\u10d1\u10d4\u10d1\u10d8\u10e1 \u10db\u10d0\u10e0\u10d7\u10d5\u10d0\u10e8\u10d8 \u10d3\u10d0\u10d2\u10d4\u10ee\u10db\u10d0\u10e0\u10dd\u10d7.
|
||||
loginTotpManualStep3=\u10d2\u10d0\u10db\u10dd\u10d8\u10e7\u10d4\u10dc\u10d4\u10d7 \u10e8\u10d4\u10db\u10d3\u10d4\u10d2\u10d8 \u10d9\u10dd\u10dc\u10e4\u10d8\u10d2\u10e3\u10e0\u10d0\u10ea\u10d8\u10d8\u10e1 \u10db\u10dc\u10d8\u10e8\u10d5\u10dc\u10d4\u10da\u10dd\u10d1\u10d4\u10d1\u10d8, \u10d7\u10e3 \u10d0\u10de\u10da\u10d8\u10d9\u10d0\u10ea\u10d8\u10d0 \u10e1\u10d0\u10e8\u10e3\u10d0\u10da\u10d4\u10d1\u10d0\u10e1 \u10d2\u10d0\u10eb\u10da\u10d4\u10d5\u10d7, \u10d3\u10d0\u10d0\u10e7\u10d4\u10dc\u10dd\u10d7 \u10d8\u10e1\u10d8\u10dc\u10d8\:
|
||||
oauth2DeviceExpiredUserCodeMessage=\u10d9\u10dd\u10d3\u10d8\u10e1 \u10d5\u10d0\u10d3\u10d0 \u10d0\u10db\u10dd\u10d8\u10ec\u10e3\u10e0\u10d0. \u10d3\u10d0\u10d1\u10e0\u10e3\u10dc\u10d3\u10d8\u10d7 \u10d7\u10e5\u10d5\u10d4\u10dc\u10e1 \u10db\u10dd\u10ec\u10e7\u10dd\u10d1\u10d8\u10da\u10dd\u10d1\u10d0\u10d6\u10d4 \u10d3\u10d0 \u10d3\u10d0\u10d9\u10d0\u10d5\u10e8\u10d8\u10e0\u10d4\u10d1\u10d0 \u10d7\u10d0\u10d5\u10d8\u10d3\u10d0\u10dc \u10e1\u10ea\u10d0\u10d3\u10d4\u10d7.
|
||||
oauth2DeviceVerificationFailedMessage=\u10e8\u10d4\u10d2\u10d8\u10eb\u10da\u10d8\u10d0\u10d7 \u10d3\u10d0\u10ee\u10e3\u10e0\u10dd\u10d7 \u10d4\u10e1 \u10d1\u10e0\u10d0\u10e3\u10d6\u10d4\u10e0\u10d8\u10e1 \u10e4\u10d0\u10dc\u10ef\u10d0\u10e0\u10d0, \u10d3\u10d0\u10d1\u10e0\u10e3\u10dc\u10d3\u10d4\u10d7 \u10d7\u10e5\u10d5\u10d4\u10dc\u10e1 \u10db\u10dd\u10ec\u10e7\u10dd\u10d1\u10d8\u10da\u10dd\u10d1\u10d0\u10d6\u10d4 \u10d3\u10d0 \u10db\u10d8\u10d4\u10e0\u10d7\u10d4\u10d1\u10d0 \u10d7\u10d0\u10d5\u10d8\u10d3\u10d0\u10dc \u10e1\u10ea\u10d0\u10d3\u10dd\u10d7.
|
||||
oauth2DeviceAuthorizationGrantDisabledMessage=\u10d9\u10da\u10d8\u10d4\u10dc\u10e2\u10e1 OAuth 2.0 \u10db\u10dd\u10ec\u10e7\u10dd\u10d1\u10d8\u10da\u10dd\u10d1\u10d8\u10e1 \u10d0\u10d5\u10e2\u10dd\u10e0\u10d8\u10d6\u10d0\u10ea\u10d8\u10d8\u10e1 \u10d3\u10d0\u10ec\u10e7\u10d4\u10d1\u10d8\u10e1 \u10e3\u10e4\u10da\u10d4\u10d1\u10d0 \u10d0\u10e0 \u10d0\u10e5\u10d5\u10e1. \u10d4\u10e1 \u10d3\u10d8\u10dc\u10d4\u10d1\u10d0 \u10d2\u10d0\u10d7\u10d8\u10e8\u10e3\u10da\u10d8\u10d0 \u10d9\u10da\u10d8\u10d4\u10dc\u10e2\u10d8\u10e1\u10d7\u10d5\u10d8\u10e1.
|
||||
oauth2DeviceVerificationCompleteMessage=\u10e8\u10d4\u10d2\u10d8\u10eb\u10da\u10d8\u10d0\u10d7 \u10d3\u10d0\u10ee\u10e3\u10e0\u10dd\u10d7 \u10d4\u10e1 \u10d1\u10e0\u10d0\u10e3\u10d6\u10d4\u10e0\u10d8\u10e1 \u10e4\u10d0\u10dc\u10ef\u10d0\u10e0\u10d0 \u10d3\u10d0 \u10d3\u10d0\u10d1\u10e0\u10e3\u10dc\u10d3\u10d4\u10d7 \u10d7\u10e5\u10d5\u10d4\u10dc\u10e1 \u10db\u10dd\u10ec\u10e7\u10dd\u10d1\u10d8\u10da\u10dd\u10d1\u10d0\u10d6\u10d4.
|
||||
oauth2DeviceVerificationFailedHeader=\u10db\u10dd\u10ec\u10e7\u10dd\u10d1\u10d8\u10da\u10dd\u10d1\u10d8\u10e1 \u10e8\u10d4\u10e1\u10d5\u10da\u10d0 \u10e9\u10d0\u10d5\u10d0\u10e0\u10d3\u10d0
|
||||
emailVerifyInstruction2=\u10d0\u10e0 \u10db\u10d8\u10d2\u10d8\u10e6\u10d8\u10d0\u10d7 \u10d2\u10d0\u10d3\u10d0\u10db\u10dd\u10ec\u10db\u10d4\u10d1\u10d8\u10e1 \u10d9\u10dd\u10d3\u10d8 \u10d4\u10da\u10e4\u10dd\u10e1\u10e2\u10d0\u10d6\u10d4?
|
||||
oauth2DeviceConsentDeniedMessage=\u10d7\u10d0\u10dc\u10ee\u10db\u10dd\u10d1\u10d0 \u10e3\u10d0\u10e0\u10e7\u10dd\u10e4\u10d8\u10da\u10d8\u10d0 \u10db\u10dd\u10ec\u10e7\u10dd\u10d1\u10d8\u10da\u10dd\u10d1\u10d8\u10e1 \u10d3\u10d0\u10e1\u10d0\u10d9\u10d0\u10d5\u10e8\u10d8\u10e0\u10d4\u10d1\u10da\u10d0\u10d3.
|
||||
unexpectedErrorHandlingRequestMessage=\u10db\u10dd\u10e3\u10da\u10dd\u10d3\u10dc\u10d4\u10da\u10d8 \u10e8\u10d4\u10ea\u10d3\u10dd\u10db\u10d0 \u10d8\u10d3\u10d4\u10dc\u10e2\u10d8\u10e4\u10d8\u10d9\u10d0\u10e2\u10dd\u10e0\u10d8\u10e1 \u10db\u10dd\u10db\u10ec\u10dd\u10d3\u10d4\u10d1\u10d4\u10da\u10d7\u10d0\u10dc \u10d2\u10d0\u10e1\u10d0\u10d2\u10d6\u10d0\u10d5\u10dc\u10d8 \u10d0\u10d5\u10d7\u10d4\u10dc\u10e2\u10d8\u10d9\u10d0\u10ea\u10d8\u10d8\u10e1 \u10db\u10dd\u10d7\u10ee\u10dd\u10d5\u10dc\u10d8\u10e1 \u10d3\u10d0\u10db\u10e3\u10e8\u10d0\u10d5\u10d4\u10d1\u10d8\u10e1\u10d0\u10e1.
|
||||
confirmOverrideIdpTitle=\u10d1\u10e0\u10dd\u10d9\u10d4\u10e0\u10d8\u10e1 \u10d1\u10db\u10e3\u10da\u10d8 \u10e3\u10d9\u10d5\u10d4 \u10d0\u10e0\u10e1\u10d4\u10d1\u10dd\u10d1\u10e1
|
||||
confirmLinkIdpTitle=\u10d0\u10dc\u10d2\u10d0\u10e0\u10d8\u10e8\u10d8 \u10e3\u10d9\u10d5\u10d4 \u10d0\u10e0\u10e1\u10d4\u10d1\u10dd\u10d1\u10e1
|
||||
nestedFirstBrokerFlowMessage={0} \u10db\u10dd\u10db\u10ee\u10db\u10d0\u10e0\u10d4\u10d1\u10d4\u10da\u10d8 {1} \u10ea\u10dc\u10dd\u10d1\u10d8\u10da \u10db\u10dd\u10db\u10ee\u10db\u10d0\u10e0\u10d4\u10d1\u10d4\u10da\u10d6\u10d4 \u10db\u10d8\u10d1\u10db\u10e3\u10da\u10d8 \u10d0\u10e0\u10d0\u10d0.
|
||||
confirmLinkIdpReviewProfile=\u10de\u10e0\u10dd\u10e4\u10d8\u10da\u10d8\u10e1 \u10d2\u10d0\u10d3\u10d0\u10ee\u10d4\u10d3\u10d5\u10d0
|
||||
confirmOverrideIdpContinue=\u10d3\u10d8\u10d0\u10ee, \u10d2\u10d0\u10d3\u10d0\u10e4\u10d0\u10e0\u10d4 \u10d1\u10db\u10e3\u10da\u10d8 \u10db\u10d8\u10db\u10d3\u10d8\u10dc\u10d0\u10e0\u10d4 \u10d0\u10dc\u10d2\u10d0\u10e0\u10d8\u10e8\u10d8\u10d7
|
||||
confirmLinkIdpContinue=\u10d3\u10d0\u10db\u10d0\u10e2\u10d4\u10d1\u10d0 \u10d0\u10e0\u10e1\u10d4\u10d1\u10e3\u10da \u10d0\u10dc\u10d2\u10d0\u10e0\u10d8\u10e8\u10d6\u10d4
|
||||
updatePasswordMessage=\u10d7\u10e5\u10d5\u10d4\u10dc\u10d8 \u10d0\u10dc\u10d2\u10d0\u10e0\u10d8\u10e8\u10d8\u10e1 \u10d2\u10d0\u10e1\u10d0\u10d0\u10e5\u10e2\u10d8\u10e3\u10e0\u10d4\u10d1\u10da\u10d0\u10d3 \u10de\u10d0\u10e0\u10dd\u10da\u10d8\u10e1 \u10e8\u10d4\u10ea\u10d5\u10da\u10d0 \u10d2\u10ed\u10d8\u10e0\u10d3\u10d4\u10d1\u10d0\u10d7.
|
||||
linkIdpMessage=\u10d8\u10db\u10d8\u10e1\u10d0\u10d7\u10d5\u10d8\u10e1, \u10e0\u10dd\u10db \u10d7\u10e5\u10d5\u10d4\u10dc\u10d8 \u10d0\u10dc\u10d2\u10d0\u10e0\u10d8\u10e8\u10d8 {0}-\u10d6\u10d4 \u10db\u10d8\u10d0\u10d1\u10d0\u10d7, \u10d7\u10e5\u10d5\u10d4\u10dc\u10d8 \u10d4\u10da\u10e4\u10dd\u10e1\u10e2\u10d8\u10e1 \u10db\u10d8\u10e1\u10d0\u10db\u10d0\u10e0\u10d7\u10d8\u10e1 \u10d2\u10d0\u10d3\u10d0\u10db\u10dd\u10ec\u10db\u10d4\u10d1\u10d0\u10d0 \u10e1\u10d0\u10ed\u10d8\u10e0\u10dd.
|
||||
invalidPasswordMinLengthMessage=\u10d0\u10e0\u10d0\u10e1\u10ec\u10dd\u10e0\u10d8 \u10de\u10d0\u10e0\u10dd\u10da\u10d8\: \u10db\u10d8\u10dc\u10d8\u10db\u10d0\u10da\u10e3\u10e0\u10d8 \u10e1\u10d8\u10d2\u10e0\u10eb\u10d4\u10d0 {0}.
|
||||
invalidPasswordMaxLengthMessage=\u10d0\u10e0\u10d0\u10e1\u10ec\u10dd\u10e0\u10d8 \u10de\u10d0\u10e0\u10dd\u10da\u10d8\: \u10db\u10d0\u10e5\u10e1\u10d8\u10db\u10d0\u10da\u10e3\u10e0\u10d8 \u10e1\u10d8\u10d2\u10e0\u10eb\u10d4\u10d0 {0}.
|
||||
successLogout=\u10d7\u10e5\u10d5\u10d4\u10dc \u10d2\u10d0\u10ee\u10d5\u10d4\u10d3\u10d8\u10d7
|
||||
unknownLoginRequesterMessage=\u10e3\u10ea\u10dc\u10dd\u10d1\u10d8 \u10e8\u10d4\u10e1\u10d5\u10da\u10d8\u10e1 \u10db\u10dd\u10db\u10d7\u10ee\u10dd\u10d5\u10dc\u10d8
|
||||
bearerOnlyMessage=\u10db\u10ee\u10dd\u10da\u10dd\u10d3-\u10db\u10d0\u10e2\u10d0\u10e0\u10d4\u10d1\u10da\u10d8\u10e1 \u10e2\u10d8\u10de\u10d8\u10e1 \u10d0\u10de\u10da\u10d8\u10d9\u10d0\u10ea\u10d8\u10d4\u10d1\u10e1 \u10d1\u10e0\u10d0\u10e3\u10d6\u10d4\u10e0\u10d8\u10d7 \u10e8\u10d4\u10e1\u10d5\u10da\u10d8\u10e1 \u10d3\u10d0\u10ec\u10e7\u10d4\u10d1\u10d8\u10e1 \u10e3\u10e4\u10da\u10d4\u10d1\u10d0 \u10d0\u10e0 \u10d2\u10d0\u10d0\u10e9\u10dc\u10d8\u10d0\u10d7
|
||||
standardFlowDisabledMessage=\u10d9\u10da\u10d8\u10d4\u10dc\u10e2\u10e1 \u10e3\u10e4\u10da\u10d4\u10d1\u10d0, \u10e0\u10dd\u10db \u10d3\u10d0\u10d8\u10ec\u10e7\u10dd\u10e1 \u10d1\u10e0\u10d0\u10e3\u10d6\u10d4\u10e0\u10d8\u10d7 \u10e8\u10d4\u10e1\u10d5\u10da\u10d0 \u10db\u10d8\u10d7\u10d8\u10d7\u10d4\u10d1\u10e3\u10da\u10d8 \u10de\u10d0\u10e1\u10e3\u10ee\u10d8\u10e1 \u10e2\u10d8\u10de\u10d8\u10d7, \u10d0\u10e0 \u10d0\u10e5\u10d5\u10e1. \u10d9\u10da\u10d8\u10d4\u10dc\u10e2\u10d8\u10e1\u10d7\u10d5\u10d8\u10e1 \u10e1\u10e2\u10d0\u10dc\u10d3\u10d0\u10e0\u10e2\u10e3\u10da\u10d8 \u10d3\u10d8\u10dc\u10d4\u10d1\u10d0 \u10d2\u10d0\u10d7\u10d8\u10e8\u10e3\u10da\u10d8\u10d0.
|
||||
emailInstruction=\u10e8\u10d4\u10d8\u10e7\u10d5\u10d0\u10dc\u10d4\u10d7 \u10d7\u10e5\u10d5\u10d4\u10dc \u10db\u10dd\u10db\u10ee\u10db\u10d0\u10e0\u10d4\u10d1\u10da\u10d8\u10e1 \u10e1\u10d0\u10ee\u10d4\u10da\u10d8 \u10d0\u10dc \u10d4\u10da\u10e4\u10dd\u10e1\u10e2\u10d8\u10e1 \u10db\u10d8\u10e1\u10d0\u10db\u10d0\u10e0\u10d7\u10d8 \u10d3\u10d0 \u10d2\u10d0\u10db\u10dd\u10d2\u10d8\u10d2\u10d6\u10d0\u10d5\u10dc\u10d8\u10d7 \u10d8\u10dc\u10e1\u10e2\u10e0\u10e3\u10e5\u10ea\u10d8\u10d4\u10d1\u10e1, \u10e0\u10dd\u10d2\u10dd\u10e0 \u10e8\u10d4\u10e5\u10db\u10dc\u10d0\u10d7 \u10d0\u10ee\u10d0\u10da\u10d8 \u10de\u10d0\u10e0\u10dd\u10da\u10d8.
|
||||
role_view-clients=\u10d9\u10da\u10d8\u10d4\u10dc\u10e2\u10d4\u10d1\u10d8\u10e1 \u10dc\u10d0\u10ee\u10d5\u10d0
|
||||
invalidUserMessage=\u10d0\u10e0\u10d0\u10e1\u10ec\u10dd\u10e0\u10d8 \u10db\u10dd\u10db\u10ee\u10db\u10d0\u10e0\u10d4\u10d1\u10d4\u10da\u10d8 \u10d0\u10dc \u10de\u10d0\u10e0\u10dd\u10da\u10d8.
|
||||
emailLinkIdp1=\u10d2\u10d0\u10db\u10dd\u10d2\u10d4\u10d2\u10d6\u10d0\u10d5\u10dc\u10d0\u10d7 \u10d4\u10da\u10e4\u10dd\u10e1\u10e2\u10d0 \u10d8\u10dc\u10e1\u10e2\u10e0\u10e3\u10e5\u10ea\u10d8\u10d4\u10d1\u10d8\u10d7, \u10e0\u10dd\u10d2\u10dd\u10e0 \u10db\u10d8\u10d0\u10d1\u10d0\u10d7 {0} \u10d0\u10dc\u10d2\u10d0\u10e0\u10d8\u10e8\u10d8 {1} \u10d7\u10e5\u10d5\u10d4\u10dc\u10d8 {2}-\u10d8\u10e1 \u10d0\u10dc\u10d2\u10d0\u10e0\u10d8\u10e8\u10e1.
|
||||
emailLinkIdp3=\u10d4\u10da\u10e4\u10dd\u10e1\u10e2\u10d8\u10e1 \u10d7\u10d0\u10d5\u10d8\u10d3\u10d0\u10dc \u10d2\u10d0\u10e1\u10d0\u10d2\u10d6\u10d0\u10d5\u10dc\u10d0\u10d3.
|
||||
emailLinkIdp5=\u10d2\u10d0\u10e1\u10d0\u10d2\u10e0\u10eb\u10d4\u10da\u10d4\u10d1\u10da\u10d0\u10d3.
|
||||
emailLinkIdp2=\u10d0\u10e0 \u10db\u10d8\u10d2\u10d8\u10e6\u10d8\u10d0\u10d7 \u10d2\u10d0\u10d3\u10d0\u10db\u10dd\u10ec\u10db\u10d4\u10d1\u10d8\u10e1 \u10d9\u10dd\u10d3\u10d8 \u10d4\u10da\u10e4\u10dd\u10e1\u10e2\u10d0\u10d6\u10d4?
|
||||
emailLinkIdp4=\u10d7\u10e3 \u10e3\u10d9\u10d5\u10d4 \u10d2\u10d0\u10d3\u10d0\u10d0\u10db\u10dd\u10ec\u10db\u10d4\u10d7 \u10d4\u10da\u10e4\u10dd\u10e1\u10e2\u10d0 \u10e1\u10ee\u10d5\u10d0 \u10d1\u10e0\u10d0\u10e3\u10d6\u10d4\u10e0\u10e8\u10d8
|
||||
role_view-realm=\u10e0\u10d4\u10d0\u10da\u10db\u10d8\u10e1 \u10dc\u10d0\u10ee\u10d5\u10d0
|
||||
role_view-identity-providers=\u10d8\u10d3\u10d4\u10dc\u10e2\u10d8\u10e4\u10d8\u10d9\u10d0\u10e2\u10dd\u10e0\u10d8\u10e1 \u10db\u10dd\u10db\u10ec\u10dd\u10d3\u10d4\u10d1\u10da\u10d4\u10d1\u10d8\u10e1 \u10dc\u10d0\u10ee\u10d5\u10d0
|
||||
emailInstructionUsername=\u10e8\u10d4\u10d8\u10e7\u10d5\u10d0\u10dc\u10d4\u10d7 \u10d7\u10e5\u10d5\u10d4\u10dc \u10db\u10dd\u10db\u10ee\u10db\u10d0\u10e0\u10d4\u10d1\u10da\u10d8\u10e1 \u10e1\u10d0\u10ee\u10d4\u10da\u10d8 \u10d3\u10d0 \u10d2\u10d0\u10db\u10dd\u10d2\u10d8\u10d2\u10d6\u10d0\u10d5\u10dc\u10d8\u10d7 \u10d8\u10dc\u10e1\u10e2\u10e0\u10e3\u10e5\u10ea\u10d8\u10d4\u10d1\u10e1, \u10e0\u10dd\u10d2\u10dd\u10e0 \u10e8\u10d4\u10e5\u10db\u10dc\u10d0\u10d7 \u10d0\u10ee\u10d0\u10da\u10d8 \u10de\u10d0\u10e0\u10dd\u10da\u10d8.
|
||||
pageExpiredMsg2=\u10e8\u10d4\u10e1\u10d5\u10da\u10d8\u10e1 \u10de\u10e0\u10dd\u10ea\u10d4\u10e1\u10d8\u10e1 \u10d2\u10d0\u10e1\u10d0\u10d2\u10e0\u10eb\u10d4\u10da\u10d4\u10d1\u10da\u10d0\u10d3
|
||||
role_manage-applications=\u10d0\u10de\u10da\u10d8\u10d9\u10d0\u10ea\u10d8\u10d4\u10d1\u10d8\u10e1 \u10db\u10d0\u10e0\u10d7\u10d5\u10d0
|
||||
role_offline-access=\u10d8\u10dc\u10e2\u10d4\u10e0\u10dc\u10d4\u10e2\u10d2\u10d0\u10e0\u10d4\u10e8\u10d4 \u10ec\u10d5\u10d3\u10dd\u10db\u10d0
|
||||
accountTemporarilyDisabledMessage=\u10d0\u10dc\u10d2\u10d0\u10e0\u10d8\u10e8\u10d8 \u10d3\u10e0\u10dd\u10d4\u10d1\u10d8\u10d7 \u10d2\u10d0\u10d7\u10d8\u10e8\u10e3\u10da\u10d8\u10d0. \u10d3\u10d0\u10e3\u10d9\u10d0\u10d5\u10e8\u10d8\u10e0\u10d3\u10d8\u10d7 \u10d7\u10e5\u10d5\u10d4\u10dc\u10e1 \u10d0\u10d3\u10db\u10d8\u10dc\u10d8\u10e1\u10e2\u10e0\u10d0\u10e2\u10dd\u10e0\u10e1 \u10d0\u10dc \u10db\u10dd\u10d2\u10d5\u10d8\u10d0\u10dc\u10d4\u10d1\u10d8\u10d7 \u10e1\u10ea\u10d0\u10d3\u10d4\u10d7.
|
||||
role_create-realm=\u10e0\u10d4\u10d0\u10da\u10db\u10d8\u10e1 \u10e8\u10d4\u10e5\u10db\u10dc\u10d0
|
||||
role_create-client=\u10d9\u10da\u10d8\u10d4\u10dc\u10e2\u10d8\u10e1 \u10e8\u10d4\u10e5\u10db\u10dc\u10d0
|
||||
role_view-users=\u10db\u10dd\u10db\u10ee\u10db\u10d0\u10e0\u10d4\u10d1\u10da\u10d4\u10d1\u10d8\u10e1 \u10dc\u10d0\u10ee\u10d5\u10d0
|
||||
role_view-applications=\u10d0\u10de\u10da\u10d8\u10d9\u10d0\u10ea\u10d8\u10d4\u10d1\u10d8\u10e1 \u10dc\u10d0\u10ee\u10d5\u10d0
|
||||
role_manage-clients=\u10d9\u10da\u10d8\u10d4\u10dc\u10e2\u10d4\u10d1\u10d8\u10e1 \u10db\u10d0\u10e0\u10d7\u10d5\u10d0
|
||||
role_view-events=\u10db\u10dd\u10d5\u10da\u10d4\u10dc\u10d4\u10d1\u10d8\u10e1 \u10dc\u10d0\u10ee\u10d5\u10d0
|
||||
client_account=\u10d0\u10dc\u10d2\u10d0\u10e0\u10d8\u10e8\u10d8
|
||||
role_manage-realm=\u10e0\u10d4\u10d0\u10da\u10db\u10d8\u10e1 \u10db\u10d0\u10e0\u10d7\u10d5\u10d0
|
||||
role_manage-users=\u10db\u10dd\u10db\u10ee\u10db\u10d0\u10e0\u10d4\u10d1\u10da\u10d4\u10d1\u10d8\u10e1 \u10db\u10d0\u10e0\u10d7\u10d5\u10d0
|
||||
role_manage-identity-providers=\u10d8\u10d3\u10d4\u10dc\u10e2\u10d8\u10e4\u10d8\u10d9\u10d0\u10e2\u10dd\u10e0\u10d8\u10e1 \u10db\u10dd\u10db\u10ec\u10dd\u10d3\u10d4\u10d1\u10da\u10d4\u10d1\u10d8\u10e1 \u10db\u10d0\u10e0\u10d7\u10d5\u10d0
|
||||
role_manage-events=\u10db\u10dd\u10d5\u10da\u10d4\u10dc\u10d4\u10d1\u10d8\u10e1 \u10db\u10d0\u10e0\u10d7\u10d5\u10d0
|
||||
role_read-token=\u10d9\u10dd\u10d3\u10d8\u10e1 \u10ec\u10d0\u10d9\u10d8\u10d7\u10ee\u10d5\u10d0
|
||||
client_account-console=\u10d0\u10dc\u10d2\u10d0\u10e0\u10d8\u10e8\u10d8\u10e1 \u10d9\u10dd\u10dc\u10e1\u10dd\u10da\u10d8
|
||||
invalidRequesterMessage=\u10d0\u10e0\u10d0\u10e1\u10ec\u10dd\u10e0\u10d8 \u10d2\u10d0\u10db\u10dd\u10db\u10d7\u10ee\u10dd\u10d5\u10d8
|
||||
registrationNotAllowedMessage=\u10e0\u10d4\u10d2\u10d8\u10e1\u10e2\u10e0\u10d0\u10ea\u10d8\u10d0 \u10d3\u10d0\u10e8\u10d5\u10d4\u10d1\u10e3\u10da\u10d8 \u10d0\u10e0\u10d0\u10d0
|
||||
role_view-profile=\u10de\u10e0\u10dd\u10e4\u10d8\u10da\u10d8\u10e1 \u10dc\u10d0\u10ee\u10d5\u10d0
|
||||
role_manage-account-links=\u10d0\u10dc\u10d2\u10d0\u10e0\u10d8\u10e8\u10d8\u10e1 \u10d1\u10db\u10e3\u10da\u10d4\u10d1\u10d8\u10e1 \u10db\u10d0\u10e0\u10d7\u10d5\u10d0
|
||||
role_manage-account=\u10d0\u10dc\u10d2\u10d0\u10e0\u10d8\u10e8\u10d8\u10e1 \u10db\u10d0\u10e0\u10d7\u10d5\u10d0
|
||||
client_security-admin-console=\u10e3\u10e1\u10d0\u10e4\u10e0\u10d7\u10ee\u10dd\u10d4\u10d1\u10d8\u10e1 \u10d0\u10d3\u10db\u10d8\u10dc\u10d8\u10e1 \u10d9\u10dd\u10dc\u10e1\u10dd\u10da\u10d8
|
||||
resetCredentialNotAllowedMessage=\u10d0\u10d5\u10e2\u10dd\u10e0\u10d8\u10d6\u10d0\u10ea\u10d8\u10d8\u10e1 \u10d3\u10d4\u10e2\u10d0\u10da\u10d4\u10d1\u10d8\u10e1 \u10e9\u10d0\u10db\u10dd\u10e7\u10e0\u10d0 \u10d3\u10d0\u10e8\u10d5\u10d4\u10d1\u10e3\u10da\u10d8 \u10d0\u10e0\u10d0\u10d0
|
||||
permissionNotApprovedMessage=\u10ec\u10d5\u10d3\u10dd\u10db\u10d0 \u10d0\u10e0 \u10d3\u10d0\u10d3\u10d0\u10e1\u10e2\u10e3\u10e0\u10d3\u10d0.
|
||||
expiredActionTokenNoSessionMessage=\u10e5\u10db\u10d4\u10d3\u10d4\u10d1\u10d8\u10e1 \u10d5\u10d0\u10d3\u10d0 \u10d0\u10db\u10dd\u10d8\u10ec\u10e3\u10e0\u10d0.
|
||||
expiredActionTokenSessionExistsMessage=\u10e5\u10db\u10d4\u10d3\u10d4\u10d1\u10d8\u10e1 \u10d5\u10d0\u10d3\u10d0 \u10d0\u10db\u10dd\u10d8\u10ec\u10e3\u10e0\u10d0. \u10d7\u10d0\u10d5\u10d8\u10d3\u10d0\u10dc \u10d3\u10d0\u10d8\u10ec\u10e7\u10d4\u10d7.
|
||||
notMatchPasswordMessage=\u10de\u10d0\u10e0\u10dd\u10da\u10d4\u10d1\u10d8 \u10d0\u10e0 \u10d4\u10db\u10d7\u10ee\u10d5\u10d4\u10d5\u10d0.
|
||||
error-invalid-blank=\u10e8\u10d4\u10d8\u10e7\u10d5\u10d0\u10dc\u10d4\u10d7 \u10db\u10dc\u10d8\u10e8\u10d5\u10dc\u10d4\u10da\u10dd\u10d1\u10d0.
|
||||
expiredActionMessage=\u10e5\u10db\u10d4\u10d3\u10d4\u10d1\u10d8\u10e1 \u10d5\u10d0\u10d3\u10d0 \u10d0\u10db\u10dd\u10d8\u10ec\u10e3\u10e0\u10d0. \u10d2\u10d0\u10d0\u10d2\u10e0\u10eb\u10d4\u10da\u10d4\u10d7 \u10e8\u10d4\u10e1\u10d5\u10da\u10d0.
|
||||
missingTotpDeviceNameMessage=\u10e8\u10d4\u10d8\u10e7\u10d5\u10d0\u10dc\u10d4\u10d7 \u10db\u10dd\u10ec\u10e7\u10dd\u10d1\u10d8\u10da\u10dd\u10d1\u10d8\u10e1 \u10e1\u10d0\u10ee\u10d4\u10da\u10d8.
|
||||
error-empty=\u10e8\u10d4\u10d8\u10e7\u10d5\u10d0\u10dc\u10d4\u10d7 \u10db\u10dc\u10d8\u10e8\u10d5\u10dc\u10d4\u10da\u10dd\u10d1\u10d0.
|
||||
error-invalid-value=\u10d0\u10e0\u10d0\u10e1\u10ec\u10dd\u10e0\u10d8 \u10db\u10dc\u10d8\u10e8\u10d5\u10dc\u10d4\u10da\u10dd\u10d1\u10d0.
|
||||
error-invalid-length=\u10e1\u10d8\u10d2\u10e0\u10eb\u10d8\u10e1 \u10d3\u10d0\u10e8\u10d5\u10d4\u10d1\u10e3\u10da\u10d8 \u10e8\u10e3\u10d0\u10da\u10d4\u10d3\u10d8\u10d0 {0}-{1}.
|
||||
identityProviderInvalidSignatureMessage=\u10d0\u10e0\u10d0\u10e1\u10ec\u10dd\u10e0\u10d8 \u10ee\u10d4\u10da\u10db\u10dd\u10ec\u10d4\u10e0\u10d0 \u10d8\u10d3\u10d4\u10dc\u10e2\u10d8\u10e4\u10d8\u10d9\u10d0\u10e2\u10dd\u10e0\u10d8\u10e1 \u10db\u10dd\u10db\u10ec\u10dd\u10d3\u10d4\u10d1\u10da\u10d8\u10e1 \u10de\u10d0\u10e1\u10e3\u10ee\u10e8\u10d8.
|
||||
identityProviderInvalidResponseMessage=\u10d0\u10e0\u10d0\u10e1\u10ec\u10dd\u10e0\u10d8 \u10de\u10d0\u10e1\u10e3\u10ee\u10d8 \u10d8\u10d3\u10d4\u10dc\u10e2\u10d8\u10e4\u10d8\u10d9\u10d0\u10e2\u10dd\u10e0\u10d8\u10e1 \u10db\u10dd\u10db\u10ec\u10dd\u10d3\u10d4\u10d1\u10da\u10d8\u10e1\u10d2\u10d0\u10dc.
|
||||
identityProviderNotFoundMessage=\u10d8\u10d3\u10d4\u10dc\u10e2\u10d8\u10e4\u10d8\u10d9\u10d0\u10e2\u10dd\u10e0\u10d8\u10d7 \u10d8\u10d3\u10d4\u10dc\u10e2\u10d8\u10e4\u10d8\u10d9\u10d0\u10e2\u10dd\u10e0\u10d8\u10e1 \u10db\u10dd\u10db\u10ec\u10dd\u10d3\u10d4\u10d1\u10d4\u10da\u10d8 \u10d5\u10d4\u10e0 \u10d5\u10d8\u10de\u10dd\u10d5\u10d4.
|
||||
credentialSetupRequired=\u10e8\u10d4\u10e1\u10d5\u10da\u10d0 \u10e8\u10d4\u10e3\u10eb\u10da\u10d4\u10d1\u10d4\u10da\u10d8\u10d0. \u10d0\u10e3\u10ea\u10d8\u10da\u10d4\u10d1\u10d4\u10da\u10d8\u10d0 \u10d0\u10d5\u10e2\u10dd\u10e0\u10d8\u10d6\u10d0\u10ea\u10d8\u10d8\u10e1 \u10d3\u10d4\u10e2\u10d0\u10da\u10d4\u10d1\u10d8\u10e1 \u10db\u10dd\u10e0\u10d2\u10d4\u10d1\u10d0.
|
||||
staleCodeMessage=\u10d4\u10e1 \u10d2\u10d5\u10d4\u10e0\u10d3\u10d8 \u10e3\u10d9\u10d5\u10d4 \u10e1\u10ec\u10dd\u10e0\u10d8 \u10d0\u10e6\u10d0\u10e0\u10d0\u10d0. \u10d3\u10d0\u10d1\u10e0\u10e3\u10dc\u10d3\u10d8\u10d7 \u10d7\u10e5\u10d5\u10d4\u10dc\u10e1 \u10d0\u10de\u10da\u10d8\u10d9\u10d0\u10ea\u10d8\u10d0\u10e8\u10d8 \u10d3\u10d0 \u10d7\u10d0\u10d5\u10d8\u10d3\u10d0\u10dc \u10e8\u10d4\u10db\u10dd\u10d3\u10d8\u10d7
|
||||
identityProviderNotUniqueMessage=\u10e0\u10d4\u10d0\u10da\u10db\u10e1 \u10d4\u10e0\u10d7\u10d6\u10d4 \u10db\u10d4\u10e2\u10d8 \u10d8\u10d3\u10d4\u10dc\u10e2\u10d8\u10e4\u10d8\u10d9\u10d0\u10e2\u10dd\u10e0\u10d8\u10e1 \u10db\u10dd\u10db\u10ec\u10dd\u10d3\u10d4\u10d1\u10da\u10d8\u10e1 \u10db\u10ee\u10d0\u10e0\u10d3\u10d0\u10ed\u10d4\u10e0\u10d0 \u10d2\u10d0\u10d0\u10e9\u10dc\u10d8\u10d0. \u10e8\u10d4\u10e3\u10eb\u10da\u10d4\u10d1\u10d4\u10da\u10d8\u10d0 \u10d3\u10d0\u10d3\u10d2\u10d4\u10dc\u10d0, \u10e0\u10dd\u10db\u10d4\u10da\u10d8 \u10d8\u10d3\u10d4\u10dc\u10e2\u10d8\u10e4\u10d8\u10d9\u10d0\u10e2\u10dd\u10e0\u10d8\u10e1 \u10db\u10dd\u10db\u10ec\u10dd\u10d3\u10d4\u10d1\u10d4\u10da\u10d8 \u10e3\u10dc\u10d3\u10d0 \u10d8\u10e5\u10dc\u10d4\u10e1 \u10d2\u10d0\u10db\u10dd\u10e7\u10d4\u10dc\u10d4\u10d1\u10e3\u10da\u10d8 \u10d0\u10d5\u10d7\u10d4\u10dc\u10e2\u10d8\u10d9\u10d0\u10ea\u10d8\u10d8\u10e1\u10d7\u10d5\u10d8\u10e1.
|
||||
realmSupportsNoCredentialsMessage=\u10e0\u10d4\u10d0\u10da\u10db\u10e1 \u10d0\u10d5\u10e2\u10dd\u10e0\u10d8\u10d6\u10d0\u10ea\u10d8\u10d8\u10e1 \u10d3\u10d4\u10e2\u10d0\u10da\u10d4\u10d1\u10d8\u10e1 \u10d0\u10e0\u10ea \u10d4\u10e0\u10d7\u10d8 \u10e2\u10d8\u10de\u10d8\u10e1 \u10db\u10ee\u10d0\u10e0\u10d3\u10d0\u10ed\u10d4\u10e0\u10d0 \u10d2\u10d0\u10d0\u10e9\u10dc\u10d8\u10d0.
|
||||
emailVerifiedMessage=\u10d7\u10e5\u10d5\u10d4\u10dc\u10d8 \u10d4\u10da\u10e4\u10dd\u10e1\u10e2\u10d8\u10e1 \u10db\u10d8\u10e1\u10d0\u10db\u10d0\u10e0\u10d7\u10d8 \u10d2\u10d0\u10d3\u10d0\u10db\u10dd\u10ec\u10db\u10d4\u10d1\u10e3\u10da\u10d8\u10d0.
|
||||
emailVerifiedAlreadyMessage=\u10d7\u10e5\u10d5\u10d4\u10dc\u10d8 \u10d4\u10da\u10e4\u10dd\u10e1\u10e2\u10d8\u10e1 \u10db\u10d8\u10e1\u10d0\u10db\u10d0\u10e0\u10d7\u10d8 \u10e3\u10d9\u10d5\u10d4 \u10d2\u10d0\u10d3\u10d0\u10db\u10dd\u10ec\u10db\u10d4\u10d1\u10e3\u10da\u10d8\u10d0.
|
||||
staleEmailVerificationLink=\u10d1\u10db\u10e3\u10da\u10d8, \u10e0\u10dd\u10db\u10d4\u10da\u10d6\u10d4\u10ea \u10d3\u10d0\u10d0\u10ec\u10d9\u10d0\u10de\u10e3\u10dc\u10d4\u10d7, \u10eb\u10d5\u10d4\u10da\u10d8, \u10e3\u10db\u10dd\u10e5\u10db\u10d4\u10d3\u10dd \u10d1\u10db\u10e3\u10da\u10d8\u10d0 \u10d3\u10d0 \u10d0\u10e6\u10d0\u10e0 \u10db\u10e3\u10e8\u10d0\u10dd\u10d1\u10e1. \u10e8\u10d4\u10d8\u10eb\u10da\u10d4\u10d1\u10d0, \u10d4\u10da\u10e4\u10dd\u10e1\u10e2\u10d0 \u10e3\u10d9\u10d5\u10d4 \u10d2\u10d0\u10d3\u10d0\u10d0\u10db\u10dd\u10ec\u10db\u10d4\u10d7.
|
||||
identityProviderAlreadyLinkedMessage=\u10e4\u10d4\u10d3\u10d4\u10e0\u10d0\u10ea\u10d8\u10e3\u10da\u10d8 \u10d8\u10d3\u10d4\u10dc\u10e2\u10d8\u10e4\u10d8\u10d9\u10d0\u10e2\u10dd\u10e0\u10d8, \u10e0\u10dd\u10db\u10d4\u10da\u10d8\u10ea {0}-\u10db\u10d0 \u10d3\u10d0\u10d0\u10d1\u10e0\u10e3\u10dc\u10d0, \u10e3\u10d9\u10d5\u10d4 \u10db\u10d8\u10d1\u10db\u10e3\u10da\u10d8\u10d0 \u10e1\u10ee\u10d5\u10d0 \u10db\u10dd\u10db\u10ee\u10db\u10d0\u10e0\u10d4\u10d1\u10d4\u10da\u10d6\u10d4.
|
||||
confirmAccountLinking=\u10d3\u10d0\u10d0\u10d3\u10d0\u10e1\u10e2\u10e3\u10e0\u10d4\u10d7 \u10d0\u10dc\u10d2\u10d0\u10e0\u10d8\u10e8\u10d8\u10e1 {0} \u10d8\u10d3\u10d4\u10dc\u10e2\u10d8\u10e4\u10d8\u10d9\u10d0\u10e2\u10dd\u10e0\u10d8\u10e1 \u10db\u10dd\u10db\u10ec\u10dd\u10d3\u10d4\u10d1\u10da\u10d8\u10d3\u10d0\u10dc {1} \u10db\u10d8\u10d1\u10db\u10d0 \u10d7\u10e5\u10d5\u10d4\u10dc\u10e1 \u10d0\u10dc\u10d2\u10d0\u10e0\u10d8\u10e8\u10d6\u10d4.
|
||||
confirmEmailAddressVerification=\u10d3\u10d0\u10d0\u10d3\u10d0\u10e1\u10e2\u10e3\u10e0\u10d4\u10d7 \u10d4\u10da\u10e4\u10dd\u10e1\u10e2\u10d8\u10e1 \u10db\u10d8\u10e1\u10d0\u10db\u10d0\u10e0\u10d7\u10d8\u10e1 {0} \u10e1\u10d8\u10e1\u10ec\u10dd\u10e0\u10d4.
|
||||
requiredAction.CONFIGURE_RECOVERY_AUTHN_CODES=\u10d0\u10e6\u10d3\u10d2\u10d4\u10dc\u10d8\u10e1 \u10d9\u10dd\u10d3\u10d4\u10d1\u10d8\u10e1 \u10d2\u10d4\u10dc\u10d4\u10e0\u10d0\u10ea\u10d8\u10d0
|
||||
confirmExecutionOfActions=\u10e8\u10d4\u10d0\u10e1\u10e0\u10e3\u10da\u10d4\u10d7 \u10e8\u10d4\u10db\u10d3\u10d4\u10d2\u10d8 \u10e5\u10db\u10d4\u10d3\u10d4\u10d1\u10d4\u10d1\u10d8
|
||||
backToApplication=« \u10d0\u10de\u10da\u10d8\u10d9\u10d0\u10ea\u10d8\u10d0\u10d6\u10d4 \u10d3\u10d0\u10d1\u10e0\u10e3\u10dc\u10d4\u10d1\u10d0
|
||||
brokerLinkingSessionExpired=\u10db\u10dd\u10d7\u10ee\u10dd\u10d5\u10dc\u10d8\u10da\u10d8\u10d0 \u10d1\u10e0\u10dd\u10d9\u10d4\u10e0\u10d8\u10e1 \u10d0\u10dc\u10d2\u10d0\u10e0\u10d8\u10e8\u10d8\u10e1 \u10db\u10d8\u10d1\u10db\u10d0, \u10db\u10d0\u10d2\u10e0\u10d0\u10db \u10db\u10d8\u10db\u10d3\u10d8\u10dc\u10d0\u10e0\u10d4 \u10e1\u10d4\u10e1\u10d8\u10d0 \u10e3\u10d9\u10d5\u10d4 \u10d0\u10e0\u10d0\u10e1\u10ec\u10dd\u10e0\u10d8\u10d0.
|
||||
differentUserAuthenticated=\u10d0\u10d5\u10d7\u10d4\u10dc\u10e2\u10d8\u10d9\u10d0\u10ea\u10d8\u10d0 \u10e3\u10d9\u10d5\u10d4 \u10d2\u10d0\u10d8\u10d0\u10e0\u10d4\u10d7 \u10e1\u10ee\u10d5\u10d0 \u10db\u10dd\u10db\u10ee\u10db\u10d0\u10e0\u10d4\u10d1\u10da\u10d8\u10d7 "{0}" \u10d0\u10db \u10e1\u10d4\u10e1\u10d8\u10d0\u10e8\u10d8. \u10ef\u10d4\u10e0 \u10e3\u10dc\u10d3\u10d0 \u10d2\u10d0\u10ee\u10d5\u10d8\u10d3\u10d4\u10d7.
|
||||
requiredAction.TERMS_AND_CONDITIONS=\u10ec\u10d4\u10e1\u10d4\u10d1\u10d8 \u10d3\u10d0 \u10de\u10d8\u10e0\u10dd\u10d1\u10d4\u10d1\u10d8
|
||||
acrNotFulfilled=\u10d0\u10d5\u10d7\u10d4\u10dc\u10e2\u10d8\u10d9\u10d0\u10ea\u10d8\u10d8\u10e1 \u10db\u10dd\u10d7\u10ee\u10dd\u10d5\u10dc\u10d4\u10d1\u10d8 \u10d3\u10d0\u10d9\u10db\u10d0\u10e7\u10dd\u10e4\u10d8\u10da\u10d4\u10d1\u10e3\u10da\u10d8 \u10d0\u10e0\u10d0\u10d0
|
||||
requiredAction.CONFIGURE_TOTP=OTP-\u10d8\u10e1 \u10db\u10dd\u10e0\u10d2\u10d4\u10d1\u10d0
|
||||
requiredAction.webauthn-register-passwordless=Webauthn-\u10d6\u10d4 \u10e0\u10d4\u10d2\u10d8\u10e1\u10e2\u10e0\u10d0\u10ea\u10d8\u10d0 \u10e3\u10de\u10d0\u10e0\u10dd\u10da\u10dd\u10d3
|
||||
clientCertificate=X509 \u10d9\u10da\u10d8\u10d4\u10dc\u10e2\u10d8\u10e1 \u10e1\u10d4\u10e0\u10e2\u10d8\u10e4\u10d8\u10d9\u10d0\u10e2\u10d8\:
|
||||
invalidTokenRequiredActions=\u10d0\u10db \u10d1\u10db\u10e3\u10da\u10e8\u10d8 \u10db\u10dd\u10d7\u10ee\u10dd\u10d5\u10dc\u10d8\u10da\u10d8 \u10e5\u10db\u10d4\u10d3\u10d4\u10d1\u10d4\u10d1\u10d8 \u10d0\u10e0\u10d0\u10e1\u10ec\u10dd\u10e0\u10d8\u10d0
|
||||
internalServerError=\u10d0\u10e6\u10db\u10dd\u10e9\u10d4\u10dc\u10d8\u10da\u10d8\u10d0 \u10e1\u10d4\u10e0\u10d5\u10d4\u10e0\u10d8\u10e1 \u10e8\u10d8\u10d3\u10d0 \u10e8\u10d4\u10ea\u10d3\u10dd\u10db\u10d0
|
||||
noCertificate=[\u10e1\u10d4\u10e0\u10e2\u10d8\u10e4\u10d8\u10d9\u10d0\u10e2\u10d8\u10e1 \u10d2\u10d0\u10e0\u10d4\u10e8\u10d4]
|
||||
pageNotFound=\u10d2\u10d5\u10d4\u10e0\u10d3\u10d8 \u10d5\u10d4\u10e0 \u10d5\u10d8\u10de\u10dd\u10d5\u10d4
|
||||
openshift.scope.user_full=\u10e1\u10e0\u10e3\u10da\u10d8 \u10ec\u10d5\u10d3\u10dd\u10db\u10d0
|
||||
console-verify-email=\u10e1\u10d0\u10ed\u10d8\u10e0\u10dd\u10d0, \u10d2\u10d0\u10d3\u10d0\u10d0\u10db\u10dd\u10ec\u10db\u10dd\u10d7 \u10d7\u10e5\u10d5\u10d4\u10dc\u10d8 \u10d4\u10da\u10e4\u10dd\u10e1\u10e2\u10d8\u10e1 \u10db\u10d8\u10e1\u10d0\u10db\u10d0\u10e0\u10d7\u10d8. \u10d2\u10d0\u10db\u10dd\u10d2\u10d8\u10d2\u10d6\u10d0\u10d5\u10dc\u10d4\u10d7 \u10d4\u10da\u10e4\u10dd\u10e1\u10e2\u10d0 {0}-\u10d6\u10d4, \u10e0\u10dd\u10db\u10d4\u10da\u10d8\u10ea \u10d2\u10d0\u10d3\u10d0\u10db\u10dd\u10ec\u10db\u10d4\u10d1\u10d8\u10e1 \u10d9\u10dd\u10d3\u10e1 \u10e8\u10d4\u10d8\u10ea\u10d0\u10d5\u10e1. \u10e8\u10d4\u10d8\u10e7\u10d5\u10d0\u10dc\u10d4\u10d7 \u10d4\u10e1 \u10d9\u10dd\u10d3\u10d8 \u10e5\u10d5\u10d4\u10db\u10dd\u10d7 \u10d5\u10d4\u10da\u10e8\u10d8.
|
||||
saml.artifactResolutionServiceInvalidResponse=\u10d0\u10e0\u10e2\u10d4\u10e4\u10d0\u10e5\u10e2\u10d8\u10e1 \u10d2\u10d0\u10d3\u10d0\u10ec\u10e7\u10d5\u10d4\u10e2\u10d0 \u10e8\u10d4\u10e3\u10eb\u10da\u10d4\u10d1\u10d4\u10da\u10d8\u10d0.
|
||||
openshift.scope.user_check-access=\u10db\u10dd\u10db\u10ee\u10db\u10d0\u10e0\u10d4\u10d1\u10da\u10d8\u10e1 \u10ec\u10d5\u10d3\u10dd\u10db\u10d8\u10e1 \u10d8\u10dc\u10e4\u10dd\u10e0\u10db\u10d0\u10ea\u10d8\u10d0
|
||||
openshift.scope.list-projects=\u10de\u10e0\u10dd\u10d4\u10e5\u10e2\u10d4\u10d1\u10d8\u10e1 \u10e1\u10d8\u10d0
|
||||
otp-help-text=\u10e8\u10d4\u10d8\u10e7\u10d5\u10d0\u10dc\u10d4\u10d7 \u10d2\u10d0\u10d3\u10d0\u10db\u10dd\u10ec\u10db\u10d4\u10d1\u10d8\u10e1 \u10d9\u10dd\u10d3\u10d8 \u10d0\u10d5\u10d7\u10d4\u10dc\u10e2\u10d8\u10d9\u10d0\u10e2\u10dd\u10e0\u10d8 \u10d0\u10de\u10da\u10d8\u10d9\u10d0\u10ea\u10d8\u10d8\u10d3\u10d0\u10dc.
|
||||
saml.post-form.js-disabled=JavaScript \u10d2\u10d0\u10d7\u10d8\u10e8\u10e3\u10da\u10d8\u10d0. \u10d2\u10d8\u10e0\u10e9\u10d4\u10d5\u10d7, \u10e9\u10d0\u10e0\u10d7\u10dd\u10d7 \u10d8\u10e1. \u10d2\u10d0\u10e1\u10d0\u10d2\u10e0\u10eb\u10d4\u10da\u10d4\u10d1\u10da\u10d0\u10d3 \u10d3\u10d0\u10d0\u10ec\u10d4\u10e5\u10d8\u10d7 \u10e6\u10d8\u10da\u10d0\u10d9\u10e1 \u10e5\u10d5\u10d4\u10db\u10dd\u10d7.
|
||||
password-display-name=\u10de\u10d0\u10e0\u10dd\u10da\u10d8
|
||||
otp-display-name=\u10d0\u10d5\u10d7\u10d4\u10dc\u10e2\u10d8\u10d9\u10d0\u10e2\u10dd\u10e0\u10d8 \u10d0\u10de\u10da\u10d8\u10d9\u10d0\u10ea\u10d8\u10d0
|
||||
otp-reset-description=\u10e0\u10dd\u10db\u10d4\u10da\u10d8 OTP-\u10d8\u10e1 \u10d9\u10dd\u10dc\u10e4\u10d8\u10d2\u10e3\u10e0\u10d0\u10ea\u10d8\u10d8\u10e1 \u10ec\u10d0\u10e8\u10da\u10d0 \u10d2\u10dc\u10d4\u10d1\u10d0\u10d5\u10d7?
|
||||
auth-recovery-authn-code-form-help-text=\u10e8\u10d4\u10d8\u10e7\u10d5\u10d0\u10dc\u10d4\u10d7 \u10d0\u10e6\u10d3\u10d2\u10d4\u10dc\u10d8\u10e1 \u10d0\u10d5\u10d7\u10d4\u10dc\u10e2\u10d8\u10d9\u10d0\u10ea\u10d8\u10d8\u10e1 \u10e1\u10d8\u10d8\u10d3\u10d0\u10dc, \u10e0\u10dd\u10db\u10d4\u10da\u10d8\u10ea \u10d0\u10d3\u10e0\u10d4 \u10d2\u10d0\u10d3\u10db\u10dd\u10d2\u10d4\u10ea\u10d0\u10d7.
|
||||
recovery-code-config-warning-title=\u10d4\u10e1 \u10d0\u10d5\u10d7\u10d4\u10dc\u10e2\u10d8\u10d9\u10d0\u10ea\u10d8\u10d8\u10e1 \u10d9\u10dd\u10d3\u10d4\u10d1\u10d8 \u10d0\u10e6\u10d0\u10e0\u10d0\u10e1\u10d3\u10e0\u10dd\u10e1 \u10d2\u10d0\u10db\u10dd\u10e9\u10dc\u10d3\u10d4\u10d1\u10d0, \u10e0\u10dd\u10ea\u10d0 \u10d0\u10db \u10d2\u10d5\u10d4\u10e0\u10d3\u10d8\u10d3\u10d0\u10dc \u10d2\u10d0\u10ee\u10d5\u10d0\u10da\u10d7
|
||||
auth-recovery-authn-code-form-display-name=\u10d0\u10e6\u10d3\u10d2\u10d4\u10dc\u10d8\u10e1 \u10d0\u10d5\u10d7\u10d4\u10dc\u10e2\u10d8\u10d9\u10d0\u10ea\u10d8\u10d8\u10e1 \u10d9\u10dd\u10d3\u10d8
|
||||
auth-recovery-code-info-message=\u10e8\u10d4\u10d8\u10e7\u10d5\u10d0\u10dc\u10d4\u10d7 \u10db\u10d8\u10d7\u10d8\u10d7\u10d4\u10d1\u10e3\u10da\u10d8 \u10d0\u10e6\u10d3\u10d2\u10d4\u10dc\u10d8\u10e1 \u10d9\u10dd\u10d3\u10d8.
|
||||
recovery-codes-error-invalid=\u10d0\u10e0\u10d0\u10e1\u10ec\u10dd\u10e0\u10d8 \u10d0\u10e6\u10d3\u10d2\u10d4\u10dc\u10d8\u10e1 \u10d0\u10d5\u10d7\u10d4\u10dc\u10e2\u10d8\u10d9\u10d0\u10ea\u10d8\u10d8\u10e1 \u10d9\u10dd\u10d3\u10d8
|
||||
auth-recovery-code-prompt=\u10d0\u10e6\u10d3\u10d2\u10d4\u10dc\u10d8\u10e1 \u10d9\u10dd\u10d3\u10d8 \#{0}
|
||||
auth-recovery-code-header=\u10e8\u10d4\u10e1\u10d5\u10da\u10d0 \u10d0\u10e6\u10d3\u10d2\u10d4\u10dc\u10d8\u10e1 \u10d0\u10d5\u10d7\u10d4\u10dc\u10e2\u10d8\u10d9\u10d0\u10ea\u10d8\u10d8\u10e1 \u10d9\u10dd\u10d3\u10d8\u10d7
|
||||
recovery-code-config-header=\u10d0\u10e6\u10d3\u10d2\u10d4\u10dc\u10d8\u10e1 \u10d0\u10d5\u10d7\u10d4\u10dc\u10e2\u10d8\u10d9\u10d0\u10d8\u10ea\u10d8\u10d8\u10e1 \u10d9\u10dd\u10d3\u10d4\u10d1\u10d8
|
||||
recovery-codes-print=\u10d3\u10d0\u10d1\u10d4\u10ed\u10d3\u10d5\u10d0
|
||||
recovery-codes-copy=\u10d9\u10dd\u10de\u10d8\u10e0\u10d4\u10d1\u10d0
|
||||
recovery-codes-download-file-description=\u10d0\u10e6\u10d3\u10d2\u10d4\u10dc\u10d8\u10e1 \u10d9\u10dd\u10d3\u10d4\u10d1\u10d8 \u10d4\u10e0\u10d7\u10ef\u10d4\u10e0\u10d0\u10d3\u10d8 \u10e1\u10d0\u10d9\u10d5\u10d0\u10dc\u10eb\u10dd \u10d9\u10dd\u10d3\u10d4\u10d1\u10d8\u10d0, \u10e0\u10dd\u10db\u10d4\u10da\u10d8\u10ea \u10e1\u10d0\u10e8\u10e3\u10d0\u10da\u10d4\u10d1\u10d0\u10e1 \u10d2\u10d0\u10eb\u10da\u10d4\u10d5\u10d7, \u10e8\u10d4\u10ee\u10d5\u10d8\u10d3\u10d4\u10d7 \u10d7\u10e5\u10d5\u10d4\u10dc\u10e1 \u10d0\u10dc\u10d2\u10d0\u10e0\u10d8\u10e8\u10e8\u10d8, \u10d7\u10e3 \u10d0\u10d5\u10d7\u10d4\u10dc\u10e2\u10d8\u10d9\u10d0\u10e2\u10dd\u10e0\u10d7\u10d0\u10dc \u10ec\u10d5\u10d3\u10dd\u10db\u10d0 \u10d3\u10d0\u10d9\u10d0\u10e0\u10d2\u10d4\u10d7.
|
||||
recovery-codes-label-default=\u10d0\u10e6\u10d3\u10d2\u10d4\u10dc\u10d8\u10e1 \u10d9\u10dd\u10d3\u10d4\u10d1\u10d8
|
||||
recovery-codes-download=\u10d2\u10d0\u10d3\u10db\u10dd\u10ec\u10d4\u10e0\u10d0
|
||||
webauthn-display-name=Passkey
|
||||
webauthn-help-text=\u10d2\u10d0\u10db\u10dd\u10d8\u10e7\u10d4\u10dc\u10d4\u10d7 \u10d7\u10e5\u10d5\u10d4\u10dc\u10d8 Passkey \u10e8\u10d4\u10e1\u10d0\u10e1\u10d5\u10da\u10d4\u10da\u10d0\u10d3.
|
||||
recovery-codes-copied=\u10d3\u10d0\u10d9\u10dd\u10de\u10d8\u10e0\u10d3\u10d0
|
||||
recovery-codes-confirmation-message=\u10db\u10d4 \u10e8\u10d4\u10d5\u10d8\u10dc\u10d0\u10ee\u10d4 \u10d9\u10dd\u10d3\u10d4\u10d1\u10d8 \u10e3\u10e1\u10d0\u10e4\u10e0\u10d7\u10ee\u10dd \u10d0\u10d3\u10d2\u10d8\u10da\u10d0\u10e1
|
||||
webauthn-passwordless-display-name=Passkey
|
||||
webauthn-passwordless-help-text=\u10d2\u10d0\u10db\u10dd\u10d8\u10e7\u10d4\u10dc\u10d4\u10d7 \u10d7\u10e5\u10d5\u10d4\u10dc\u10d8 Passkey \u10e3\u10de\u10d0\u10e0\u10dd\u10da\u10dd\u10d3 \u10e8\u10d4\u10e1\u10d0\u10e1\u10d5\u10da\u10d4\u10da\u10d0\u10d3.
|
||||
webauthn-unsupported-browser-text=\u10d0\u10db \u10d1\u10e0\u10d0\u10e3\u10d6\u10d4\u10e0\u10e1 WebAuthn-\u10d8\u10e1 \u10db\u10ee\u10d0\u10e0\u10d3\u10d0\u10ed\u10d4\u10e0\u10d0 \u10d0\u10e0 \u10d2\u10d0\u10d0\u10e9\u10dc\u10d8\u10d0. \u10e1\u10ea\u10d0\u10d3\u10d4\u10d7 \u10e1\u10ee\u10d5\u10d0 \u10d1\u10e0\u10d0\u10e3\u10d6\u10d4\u10e0\u10d8 \u10d0\u10dc \u10d3\u10d0\u10e3\u10d9\u10d0\u10d5\u10e8\u10d8\u10e0\u10d3\u10d8\u10d7 \u10d7\u10e5\u10d5\u10d4\u10dc\u10e1 \u10e1\u10d8\u10e1\u10e2\u10d4\u10db\u10e3\u10e0 \u10d0\u10d3\u10db\u10d8\u10dc\u10d8\u10e1\u10e2\u10e0\u10d0\u10e2\u10dd\u10e0\u10e1.
|
||||
webauthn-doAuthenticate=Passkey-\u10d8\u10d7 \u10e8\u10d4\u10e1\u10d5\u10da\u10d0
|
||||
webauthn-registration-init-label=Passkey (\u10dc\u10d0\u10d2\u10e3\u10da\u10d8\u10e1\u10ee\u10db\u10d4\u10d5\u10d8 \u10ed\u10d3\u10d4)
|
||||
webauthn-error-title=Passkey-\u10d8\u10e1 \u10e8\u10d4\u10ea\u10d3\u10dd\u10db\u10d0
|
||||
webauthn-createdAt-label=\u10e8\u10d4\u10d8\u10e5\u10db\u10dc\u10d0
|
||||
webauthn-registration-init-label-prompt=\u10e8\u10d4\u10d8\u10e7\u10d5\u10d0\u10dc\u10d4\u10d7 \u10d7\u10e5\u10d5\u10d4\u10dc\u10d8 \u10d3\u10d0\u10e0\u10d4\u10d2\u10d8\u10e1\u10e2\u10e0\u10d8\u10e0\u10d4\u10d1\u10e3\u10da\u10d8 Passkey-\u10d8\u10e1 \u10ed\u10d3\u10d4
|
||||
webauthn-error-registration=\u10d7\u10e5\u10d5\u10d4\u10dc\u10d8 Passkey-\u10d8\u10e1 \u10e0\u10d4\u10d2\u10d8\u10e1\u10e2\u10e0\u10d0\u10ea\u10d8\u10d0 \u10e9\u10d0\u10d5\u10d0\u10e0\u10d3\u10d0.<br/>{0}
|
||||
passkey-unsupported-browser-text=Passkey-\u10d8\u10e1 \u10db\u10ee\u10d0\u10e0\u10d3\u10d0\u10ed\u10d4\u10e0\u10d0 \u10d0\u10db \u10d1\u10e0\u10d0\u10e3\u10d6\u10d4\u10e0\u10e1 \u10d0\u10e0 \u10d0\u10e5\u10d5\u10e1. \u10e1\u10ea\u10d0\u10d3\u10d4\u10d7 \u10e1\u10ee\u10d5\u10d0 \u10d0\u10dc \u10d3\u10d0\u10e3\u10d9\u10d0\u10d5\u10e8\u10d8\u10e0\u10d3\u10d8\u10d7 \u10d7\u10e5\u10d5\u10d4\u10dc\u10e1 \u10d0\u10d3\u10db\u10d8\u10dc\u10d8\u10e1\u10e2\u10e0\u10d0\u10e2\u10dd\u10e0\u10e1.
|
||||
webauthn-error-api-get=Passkey-\u10d8\u10d7 \u10d0\u10d5\u10d7\u10d4\u10dc\u10e2\u10d8\u10d9\u10d0\u10ea\u10d8\u10d0 \u10e9\u10d0\u10d5\u10d0\u10e0\u10d3\u10d0.<br/>{0}
|
||||
passkey-doAuthenticate=Passkey-\u10d8\u10d7 \u10e8\u10d4\u10e1\u10d5\u10da\u10d0
|
||||
webauthn-error-different-user=\u10de\u10d8\u10e0\u10d5\u10d4\u10da\u10d8 \u10db\u10dd\u10db\u10ee\u10db\u10d0\u10e0\u10d4\u10d1\u10d4\u10da\u10d8, \u10d5\u10d8\u10dc\u10ea \u10d0\u10d5\u10d7\u10d4\u10dc\u10e2\u10d8\u10d9\u10d0\u10ea\u10d8\u10d0 \u10d2\u10d0\u10d8\u10d0\u10e0\u10d0, Passkey-\u10d8\u10d7 \u10d0\u10d5\u10d7\u10d4\u10dc\u10e2\u10d8\u10d9\u10d0\u10ea\u10d8\u10d8\u10e1 \u10db\u10dd\u10db\u10ee\u10db\u10d0\u10e0\u10d4\u10d1\u10d4\u10da\u10e1 \u10d0\u10e0 \u10d4\u10db\u10d7\u10ee\u10d5\u10d4\u10d5\u10d0.
|
||||
passkey-createdAt-label=\u10e8\u10d4\u10d8\u10e5\u10db\u10dc\u10d0
|
||||
passkey-autofill-select=\u10d0\u10d8\u10e0\u10e9\u10d8\u10d4\u10d7 \u10d7\u10e5\u10d5\u10d4\u10dc\u10d8 Passkey
|
||||
idp-email-verification-help-text=\u10db\u10d8\u10d0\u10d1\u10d8\u10d7 \u10d7\u10e5\u10d5\u10d4\u10dc\u10d8 \u10d0\u10dc\u10d2\u10d0\u10e0\u10d8\u10e8\u10d8 \u10d7\u10e5\u10d5\u10d4\u10dc\u10d8 \u10d0\u10dc\u10d2\u10d0\u10e0\u10d8\u10e8\u10d8\u10e1 \u10d3\u10d0\u10d3\u10d0\u10e1\u10e2\u10e3\u10e0\u10d4\u10d1\u10d8\u10d7.
|
||||
idp-username-password-form-display-name=\u10db\u10dd\u10db\u10ee\u10db\u10d0\u10e0\u10d4\u10d1\u10d4\u10da\u10d8 \u10d3\u10d0 \u10de\u10d0\u10e0\u10dd\u10da\u10d8
|
||||
identity-provider-redirector=\u10d3\u10d0\u10d9\u10d0\u10d5\u10e8\u10d8\u10e0\u10d4\u10d1\u10d0 \u10e1\u10ee\u10d5\u10d0 \u10d8\u10d3\u10d4\u10dc\u10e2\u10d8\u10e4\u10d8\u10d9\u10d0\u10e2\u10dd\u10e0\u10d8\u10e1 \u10db\u10dd\u10db\u10ec\u10dd\u10d3\u10d4\u10d1\u10da\u10d8\u10d7
|
||||
identity-provider-login-label=\u10d0\u10dc \u10e8\u10d4\u10d3\u10d8\u10d7 \u10db\u10d4\u10d7\u10dd\u10d3\u10d8\u10d7
|
||||
idp-username-password-form-help-text=\u10db\u10d8\u10d0\u10d1\u10d8\u10d7 \u10d7\u10e5\u10d5\u10d4\u10dc\u10d8 \u10d0\u10dc\u10d2\u10d0\u10e0\u10d8\u10e8\u10d8 \u10e1\u10d8\u10e1\u10e2\u10d4\u10db\u10d0\u10e8\u10d8 \u10e8\u10d4\u10e1\u10d5\u10da\u10d8\u10d7.
|
||||
frontchannel-logout.message=\u10db\u10d8\u10db\u10d3\u10d8\u10dc\u10d0\u10e0\u10d4\u10dd\u10d1\u10e1 \u10d7\u10e5\u10d5\u10d4\u10dc\u10d8 \u10d2\u10d0\u10e1\u10d5\u10da\u10d0 \u10e8\u10d4\u10db\u10d3\u10d4\u10d2\u10d8 \u10d0\u10de\u10d4\u10d1\u10d8\u10d3\u10d0\u10dc
|
||||
logoutConfirmTitle=\u10db\u10d8\u10db\u10d3\u10d8\u10dc\u10d0\u10e0\u10d4\u10dd\u10d1\u10e1 \u10d2\u10d0\u10e1\u10d5\u10da\u10d0
|
||||
finalDeletionConfirmation=\u10d7\u10e3 \u10d7\u10e5\u10d5\u10d4\u10dc\u10e1 \u10d0\u10dc\u10d2\u10d0\u10e0\u10d8\u10e8\u10e1 \u10ec\u10d0\u10e8\u10da\u10d8\u10d7, \u10db\u10d0\u10e1 \u10d5\u10d4\u10e6\u10d0\u10e0 \u10d0\u10e6\u10d0\u10d3\u10d2\u10d4\u10dc\u10d7. \u10d0\u10dc\u10d2\u10d0\u10e0\u10d8\u10e8\u10d8\u10e1 \u10e8\u10d4\u10e1\u10d0\u10dc\u10d0\u10e0\u10e9\u10e3\u10dc\u10d4\u10d1\u10da\u10d0\u10d3 \u10d3\u10d0\u10d0\u10ec\u10d9\u10d0\u10de\u10e3\u10dc\u10d4\u10d7 \u10e6\u10d8\u10da\u10d0\u10d9\u10d6\u10d4 ''\u10d2\u10d0\u10e3\u10e5\u10db\u10d4\u10d1\u10d0''.
|
||||
deleteAccountConfirm=\u10d0\u10dc\u10d2\u10d0\u10e0\u10d8\u10e8\u10d8\u10e1 \u10d8\u10dc\u10e4\u10dd\u10e0\u10db\u10d0\u10ea\u10d8\u10d8\u10e1 \u10ec\u10d0\u10e8\u10da\u10d0
|
||||
loggingOutImmediately=\u10d3\u10d0\u10e3\u10e7\u10dd\u10d5\u10dc\u10d4\u10d1\u10da\u10d8\u10d5 \u10d2\u10d0\u10d2\u10d3\u10d4\u10d1\u10d0\u10e1
|
||||
userDeletedSuccessfully=\u10db\u10dd\u10db\u10ee\u10db\u10d0\u10e0\u10d4\u10d1\u10d4\u10da\u10d8 \u10ec\u10d0\u10e0\u10db\u10d0\u10e2\u10d4\u10d1\u10d8\u10d7 \u10ec\u10d0\u10d8\u10e8\u10d0\u10da\u10d0
|
||||
logoutConfirmHeader=\u10d2\u10dc\u10d4\u10d1\u10d0\u10d5\u10d7, \u10d2\u10d0\u10ee\u10d5\u10d8\u10d3\u10d4\u10d7?
|
||||
frontchannel-logout.title=\u10db\u10d8\u10db\u10d3\u10d8\u10dc\u10d0\u10e0\u10d4\u10dd\u10d1\u10e1 \u10d2\u10d0\u10e1\u10d5\u10da\u10d0
|
||||
readOnlyUsernameMessage=\u10d7\u10e5\u10d5\u10d4\u10dc \u10d5\u10d4\u10e0 \u10d2\u10d0\u10dc\u10d0\u10d0\u10ee\u10da\u10d4\u10d1\u10d7 \u10d7\u10e5\u10d5\u10d4\u10dc\u10e1 \u10db\u10dd\u10db\u10ee\u10db\u10d0\u10e0\u10d4\u10d1\u10da\u10d8\u10e1 \u10e1\u10d0\u10ee\u10d4\u10da\u10e1, \u10e0\u10d0\u10d3\u10d2\u10d0\u10dc \u10d8\u10e1 \u10db\u10ee\u10dd\u10da\u10dd\u10d3-\u10ec\u10d0\u10d9\u10d8\u10d7\u10ee\u10d5\u10d0\u10d3\u10d8\u10d0.
|
||||
doLogout=\u10d2\u10d0\u10e1\u10d5\u10da\u10d0
|
||||
error-invalid-multivalued-size=\u10d0\u10e2\u10e0\u10d8\u10d1\u10e3\u10e2\u10d8 {0} \u10db\u10d8\u10dc\u10d8\u10db\u10e3\u10db {1} \u10d3\u10d0 \u10db\u10d0\u10e5\u10e1\u10d8\u10db\u10e3\u10db {2} \u10db\u10dc\u10d8\u10e8\u10d5\u10dc\u10d4\u10da\u10dd\u10d1\u10d0\u10e1 \u10e3\u10dc\u10d3\u10d0 \u10e8\u10d4\u10d8\u10ea\u10d0\u10d5\u10d3\u10d4\u10e1.
|
||||
doLogIn=\u10e8\u10d4\u10e1\u10d5\u10da\u10d0
|
||||
doRegister=\u10e0\u10d4\u10d2\u10d8\u10e1\u10e2\u10e0\u10d0\u10ea\u10d8\u10d0
|
||||
doRegisterSecurityKey=\u10e0\u10d4\u10d2\u10d8\u10e1\u10e2\u10e0\u10d0\u10ea\u10d8\u10d0
|
||||
doCancel=\u10d2\u10d0\u10e3\u10e5\u10db\u10d4\u10d1\u10d0
|
||||
doSubmit=\u10d2\u10d0\u10d3\u10d0\u10ea\u10d4\u10db\u10d0
|
||||
doNo=\u10d0\u10e0\u10d0
|
||||
doContinue=\u10d2\u10d0\u10d2\u10e0\u10eb\u10d4\u10da\u10d4\u10d1\u10d0
|
||||
doDecline=\u10e3\u10d0\u10e0\u10e7\u10dd\u10e4\u10d0
|
||||
doForgotPassword=\u10d3\u10d0\u10d2\u10d0\u10d5\u10d8\u10ec\u10e7\u10d3\u10d0\u10d7 \u10de\u10d0\u10e0\u10dd\u10da\u10d8?
|
||||
doClickHere=\u10d3\u10d0\u10d0\u10ec\u10d9\u10d0\u10de\u10e3\u10dc\u10d4\u10d7 \u10d0\u10e5
|
||||
doImpersonate=\u10d2\u10d0\u10dc\u10e1\u10d0\u10ee\u10d8\u10d4\u10e0\u10d4\u10d1\u10d0
|
||||
doTryAnotherWay=\u10e1\u10ee\u10d5\u10d0\u10dc\u10d0\u10d8\u10e0\u10d0\u10d3 \u10ea\u10d3\u10d0
|
||||
doConfirmDelete=\u10ec\u10d0\u10e8\u10da\u10d8\u10e1 \u10d3\u10d0\u10d3\u10d0\u10e1\u10e2\u10e3\u10e0\u10d4\u10d1\u10d0
|
||||
kerberosNotConfigured=Kerberos \u10db\u10dd\u10e0\u10d2\u10d4\u10d1\u10e3\u10da\u10d8 \u10d0\u10e0\u10d0\u10d0
|
||||
kerberosNotSetUp=Kerberos \u10db\u10dd\u10e0\u10d2\u10d4\u10d1\u10e3\u10da\u10d8 \u10d0\u10e0\u10d0. \u10d5\u10d4\u10e0 \u10e8\u10d4\u10ee\u10d5\u10d0\u10da\u10d7.
|
||||
registerTitle=\u10e0\u10d4\u10d2\u10d8\u10e1\u10e2\u10e0\u10d0\u10ea\u10d8\u10d0
|
||||
loginAccountTitle=\u10e8\u10d4\u10d3\u10d8\u10d7 \u10d7\u10e5\u10d5\u10d4\u10dc\u10e1 \u10d0\u10dc\u10d2\u10d0\u10e0\u10d8\u10e8\u10e8\u10d8
|
||||
loginTitle={0}-\u10e8\u10d8 \u10e8\u10d4\u10e1\u10d5\u10da\u10d0
|
||||
loginTitleHtml={0}
|
||||
impersonateTitle={0} \u10db\u10dd\u10db\u10ee\u10db\u10d0\u10e0\u10d4\u10d1\u10da\u10d8\u10e1 \u10d2\u10d0\u10dc\u10e1\u10d0\u10ee\u10d8\u10d4\u10e0\u10d4\u10d1\u10d0
|
||||
realmChoice=\u10e0\u10d4\u10d0\u10da\u10db\u10d8
|
||||
unknownUser=\u10e3\u10ea\u10dc\u10dd\u10d1\u10d8 \u10db\u10dd\u10db\u10ee\u10db\u10d0\u10e0\u10d4\u10d1\u10d4\u10da\u10d8
|
||||
loginProfileTitle=\u10d0\u10dc\u10d2\u10d0\u10e0\u10d8\u10e8\u10d8\u10e1 \u10d8\u10dc\u10e4\u10dd\u10e0\u10db\u10d0\u10ea\u10d8\u10d8\u10e1 \u10d2\u10d0\u10dc\u10d0\u10ee\u10da\u10d4\u10d1\u10d0
|
||||
reauthenticate=\u10d2\u10d0\u10e1\u10d0\u10d2\u10e0\u10eb\u10d4\u10da\u10d4\u10d1\u10da\u10d0\u10d3 \u10e1\u10d0\u10ed\u10d8\u10e0\u10dd\u10d0, \u10d0\u10d5\u10d7\u10d4\u10dc\u10e2\u10d8\u10d9\u10d0\u10ea\u10d8\u10d0 \u10d7\u10d0\u10d5\u10d8\u10d3\u10d0\u10dc \u10d2\u10d0\u10d8\u10d0\u10e0\u10dd\u10d7
|
||||
authenticateStrong=\u10d2\u10d0\u10e1\u10d0\u10d2\u10e0\u10eb\u10d4\u10da\u10d4\u10d1\u10da\u10d0\u10d3 \u10e1\u10d0\u10ed\u10d8\u10e0\u10dd\u10d0 \u10eb\u10da\u10d8\u10d4\u10e0\u10d8 \u10d0\u10d5\u10d7\u10d4\u10dc\u10e2\u10d8\u10d9\u10d0\u10ea\u10d8\u10d0
|
||||
oauthGrantTitle={0}-\u10e1\u10d7\u10d0\u10dc \u10ec\u10d5\u10d3\u10dd\u10db\u10d8\u10e1 \u10db\u10d8\u10ea\u10d4\u10db\u10d0
|
||||
oauthGrantTitleHtml={0}
|
||||
oauthGrantInformation=\u10d3\u10d0\u10e0\u10ec\u10db\u10e3\u10dc\u10d3\u10d8\u10d7, \u10e0\u10dd\u10db \u10d4\u10dc\u10d3\u10dd\u10d1\u10d8\u10d7 {0}-\u10e1 \u10dc\u10d0\u10ee\u10d5\u10d8\u10d7, \u10e0\u10dd\u10d2\u10dd\u10e0 \u10d3\u10d0\u10d0\u10db\u10e3\u10e8\u10d0\u10d5\u10d4\u10d1\u10e1 {0} \u10d7\u10e5\u10d5\u10d4\u10dc\u10e1 \u10db\u10dd\u10dc\u10d0\u10ea\u10d4\u10db\u10d4\u10d1\u10e1.
|
||||
oauthGrantReview=\u10e8\u10d4\u10d2\u10d8\u10eb\u10da\u10d8\u10d0\u10d7, \u10d2\u10d0\u10d3\u10d0\u10ee\u10d4\u10d3\u10dd\u10d7
|
||||
oauthGrantTos=\u10d2\u10d0\u10db\u10dd\u10e7\u10d4\u10dc\u10d4\u10d1\u10d8\u10e1 \u10de\u10d8\u10e0\u10dd\u10d1\u10d4\u10d1\u10e1.
|
||||
oauthGrantPolicy=\u10d9\u10dd\u10dc\u10e4\u10d8\u10d3\u10d4\u10dc\u10ea\u10d8\u10d0\u10da\u10dd\u10d1\u10d8\u10e1 \u10de\u10dd\u10da\u10d8\u10e2\u10d8\u10d9\u10d0.
|
||||
errorTitle=\u10d5\u10ec\u10e3\u10ee\u10d5\u10d0\u10e0\u10d7...
|
||||
errorTitleHtml=<strong>\u10d5\u10ec\u10e3\u10ee\u10d5\u10d0\u10e0\u10d7</strong>...
|
||||
updateEmailTitle=\u10d4\u10da\u10e4\u10dd\u10e1\u10e2\u10d8\u10e1 \u10d2\u10d0\u10dc\u10d0\u10ee\u10da\u10d4\u10d1\u10d0
|
||||
emailUpdateConfirmationSentTitle=\u10d3\u10d0\u10d3\u10d0\u10e1\u10e2\u10e3\u10e0\u10d4\u10d1\u10d8\u10e1 \u10d4\u10da\u10e4\u10dd\u10e1\u10e2\u10d0 \u10d2\u10d0\u10d8\u10d2\u10d6\u10d0\u10d5\u10dc\u10d0
|
||||
emailUpdatedTitle=\u10d4\u10da\u10e4\u10dd\u10e1\u10e2\u10d0 \u10d2\u10d0\u10dc\u10d0\u10ee\u10da\u10d3\u10d0
|
||||
emailUpdated=\u10d0\u10dc\u10d2\u10d0\u10e0\u10d8\u10e8\u10d8\u10e1 \u10d4\u10da\u10e4\u10dd\u10e1\u10e2\u10d0 \u10ec\u10d0\u10e0\u10db\u10d0\u10e2\u10d4\u10d1\u10d8\u10d7 \u10d2\u10d0\u10dc\u10d0\u10ee\u10da\u10d3\u10d0 \u10db\u10dc\u10d8\u10e8\u10d5\u10dc\u10d4\u10da\u10dd\u10d1\u10d0\u10d6\u10d4 {0}.
|
||||
updatePasswordTitle=\u10de\u10d0\u10e0\u10dd\u10da\u10d8\u10e1 \u10d2\u10d0\u10dc\u10d0\u10ee\u10da\u10d4\u10d1\u10d0
|
||||
codeSuccessTitle=\u10ec\u10d0\u10e0\u10db\u10d0\u10e2\u10d4\u10d1\u10d8\u10e1 \u10d9\u10dd\u10d3\u10d8
|
||||
displayUnsupported=\u10db\u10dd\u10d7\u10ee\u10dd\u10d5\u10dc\u10d8\u10da\u10d8 \u10e9\u10d5\u10d4\u10dc\u10d4\u10d1\u10d8\u10e1 \u10e2\u10d8\u10de\u10d8 \u10db\u10ee\u10d0\u10e0\u10d3\u10d0\u10ed\u10d4\u10e0\u10d8\u10da\u10d8 \u10d0\u10e0\u10d0\u10d0
|
||||
browserRequired=\u10e8\u10d4\u10e1\u10d0\u10e1\u10d5\u10da\u10d4\u10da\u10d0\u10d3 \u10d0\u10e3\u10ea\u10d8\u10da\u10d4\u10d1\u10d4\u10da\u10d8\u10d0 \u10d1\u10e0\u10d0\u10e3\u10d6\u10d4\u10e0\u10d8
|
||||
browserContinue=\u10e8\u10d4\u10e1\u10d5\u10da\u10d8\u10e1 \u10d3\u10d0\u10e1\u10d0\u10e1\u10e0\u10e3\u10da\u10d4\u10d1\u10da\u10d0\u10d3 \u10d0\u10e3\u10ea\u10d8\u10da\u10d4\u10d1\u10d4\u10da\u10d8\u10d0 \u10d1\u10e0\u10d0\u10e3\u10d6\u10d4\u10e0\u10d8
|
||||
browserContinuePrompt=\u10d2\u10d0\u10d5\u10ee\u10e1\u10dc\u10d0 \u10d1\u10e0\u10d0\u10e3\u10d6\u10d4\u10e0\u10d8 \u10d3\u10d0 \u10d2\u10d0\u10d5\u10d0\u10d2\u10e0\u10eb\u10d4\u10da\u10dd \u10e8\u10d4\u10e1\u10d5\u10da\u10d0? [y/n]\:
|
||||
browserContinueAnswer=y
|
||||
usb=USB
|
||||
nfc=NFC
|
||||
bluetooth=\u10d1\u10da\u10e3\u10d7\u10e3\u10d6\u10d8
|
||||
internal=\u10e8\u10d8\u10d3\u10d0
|
||||
termsTitle=\u10ec\u10d4\u10e1\u10d4\u10d1\u10d8 \u10d3\u10d0 \u10de\u10d8\u10e0\u10dd\u10d1\u10d4\u10d1\u10d8
|
||||
termsText=
|
||||
termsPlainText=\u10d0\u10e6\u10e1\u10d0\u10ec\u10d4\u10e0\u10d8 \u10e2\u10d4\u10e0\u10db\u10d8\u10dc\u10d4\u10d1\u10d8 \u10d3\u10d0 \u10de\u10d8\u10e0\u10dd\u10d1\u10d4\u10d1\u10d8.
|
||||
termsAcceptanceRequired=\u10e3\u10dc\u10d3\u10d0 \u10d3\u10d0\u10d4\u10d7\u10d0\u10dc\u10ee\u10db\u10dd\u10d7 \u10e9\u10d5\u10d4\u10dc\u10e1 \u10e2\u10d4\u10e0\u10db\u10d8\u10dc\u10d4\u10d1\u10e1 \u10d3\u10d0 \u10de\u10d8\u10e0\u10dd\u10d1\u10d4\u10d1\u10e1.
|
||||
deleteCredentialTitle={0}-\u10d8\u10e1 \u10ec\u10d0\u10e8\u10da\u10d0
|
||||
deleteCredentialMessage=\u10d2\u10dc\u10d4\u10d1\u10d0\u10d5\u10d7, \u10ec\u10d0\u10e8\u10d0\u10da\u10dd\u10d7 {0}?
|
||||
recaptchaFailed=\u10d0\u10e0\u10d0\u10e1\u10ec\u10dd\u10e0\u10d8 Recaptcha
|
||||
recaptchaNotConfigured=Recaptcha \u10db\u10dd\u10d7\u10ee\u10dd\u10d5\u10dc\u10d8\u10da\u10d8\u10d0, \u10db\u10d0\u10d2\u10e0\u10d0\u10db \u10db\u10dd\u10e0\u10d2\u10d4\u10d1\u10e3\u10da\u10d8 \u10d0\u10e0\u10d0\u10d0
|
||||
consentDenied=\u10d7\u10d0\u10dc\u10ee\u10db\u10dd\u10d1\u10d0 \u10e3\u10d0\u10e0\u10e7\u10dd\u10e4\u10d8\u10da\u10d8\u10d0.
|
||||
username=\u10db\u10dd\u10db\u10ee\u10db\u10d0\u10e0\u10d4\u10d1\u10da\u10d8\u10e1 \u10e1\u10d0\u10ee\u10d4\u10da\u10d8
|
||||
usernameOrEmail=\u10db\u10dd\u10db\u10ee\u10db\u10d0\u10e0\u10d4\u10d1\u10da\u10d8\u10e1 \u10e1\u10d0\u10ee\u10d4\u10da\u10d8 \u10d0\u10dc \u10d4\u10da\u10e4\u10dd\u10e1\u10e2\u10d0
|
||||
familyName=\u10db\u10d4\u10e2\u10e1\u10d0\u10ee\u10d4\u10da\u10d8
|
||||
email=\u10d4\u10da\u10e4\u10dd\u10e1\u10e2\u10d0
|
||||
password=\u10de\u10d0\u10e0\u10dd\u10da\u10d8
|
||||
passwordConfirm=\u10d2\u10d0\u10d8\u10db\u10d4\u10dd\u10e0\u10d4\u10d7 \u10de\u10d0\u10e0\u10dd\u10da\u10d8
|
||||
passwordNew=\u10d0\u10ee\u10d0\u10da\u10d8 \u10de\u10d0\u10e0\u10dd\u10da\u10d8
|
||||
passwordNewConfirm=\u10d0\u10ee\u10d0\u10da\u10d8 \u10de\u10d0\u10e0\u10dd\u10da\u10d8 \u10d3\u10d0\u10d3\u10d0\u10e1\u10e2\u10e3\u10e0\u10d4\u10d1\u10d0
|
||||
hidePassword=\u10de\u10d0\u10e0\u10dd\u10da\u10d8 \u10d3\u10d0\u10db\u10d0\u10da\u10d5\u10d0
|
||||
showPassword=\u10de\u10d0\u10e0\u10dd\u10da\u10d8 \u10e9\u10d5\u10d4\u10dc\u10d4\u10d1\u10d0
|
||||
rememberMe=\u10d3\u10d0\u10db\u10d8\u10db\u10d0\u10ee\u10e1\u10dd\u10d5\u10e0\u10d4
|
||||
authenticatorCode=\u10d4\u10e0\u10d7\u10ef\u10d4\u10e0\u10d0\u10d3\u10d8 \u10d9\u10dd\u10d3\u10d8
|
||||
street=\u10e5\u10e3\u10e9\u10d0
|
||||
locality=\u10e5\u10d0\u10da\u10d0\u10e5\u10d8 \u10d0\u10dc \u10d3\u10d0\u10d1\u10d0
|
||||
country=\u10e5\u10d5\u10d4\u10e7\u10d0\u10dc\u10d0
|
||||
emailVerified=\u10d4\u10da\u10e4\u10dd\u10e1\u10e2\u10d0 \u10d2\u10d0\u10d3\u10d0\u10db\u10dd\u10ec\u10db\u10d4\u10d1\u10e3\u10da\u10d8\u10d0
|
||||
website=\u10d5\u10d4\u10d1\u10d2\u10d5\u10d4\u10e0\u10d3\u10d8
|
||||
phoneNumber=\u10e2\u10d4\u10da\u10d4\u10e4\u10dd\u10dc\u10d8\u10e1 \u10dc\u10dd\u10db\u10d4\u10e0\u10d8
|
||||
zoneinfo=\u10d3\u10e0\u10dd\u10d8\u10e1 \u10e1\u10d0\u10e0\u10e2\u10e7\u10d4\u10da\u10d8
|
||||
logoutOtherSessions=\u10d2\u10d0\u10e1\u10d5\u10da\u10d0 \u10e1\u10ee\u10d5\u10d0 \u10db\u10dd\u10ec\u10e7\u10dd\u10d1\u10d8\u10da\u10dd\u10d1\u10d4\u10d1\u10d8\u10d3\u10d0\u10dc
|
||||
profileScopeConsentText=\u10db\u10dd\u10db\u10ee\u10db\u10d0\u10e0\u10d4\u10d1\u10da\u10d8\u10e1 \u10de\u10e0\u10dd\u10e4\u10d8\u10da\u10d8
|
||||
emailScopeConsentText=\u10d4\u10da\u10e4\u10dd\u10e1\u10e2\u10d8\u10e1 \u10db\u10d8\u10e1\u10d0\u10db\u10d0\u10e0\u10d7\u10d8
|
||||
loginTotpIntro=\u10d0\u10db \u10d0\u10dc\u10d2\u10d0\u10e0\u10d8\u10e8\u10d7\u10d0\u10dc \u10ec\u10d5\u10d3\u10dd\u10db\u10d8\u10e1\u10d7\u10d5\u10d8\u10e1 \u10d4\u10e0\u10d7\u10ef\u10d4\u10e0\u10d0\u10d3\u10d8 \u10de\u10d0\u10e0\u10dd\u10da\u10d8\u10e1 \u10d2\u10d4\u10dc\u10d4\u10e0\u10d0\u10e2\u10dd\u10e0\u10d8 \u10e3\u10dc\u10d3\u10d0 \u10db\u10dd\u10d8\u10e0\u10d2\u10dd\u10d7
|
||||
loginTotpStep2=\u10d2\u10d0\u10ee\u10e1\u10d4\u10dc\u10d8\u10d7 \u10d0\u10de\u10da\u10d8\u10d9\u10d0\u10ea\u10d8\u10d0 \u10d3\u10d0 \u10d3\u10d0\u10d0\u10e1\u10d9\u10d0\u10dc\u10d8\u10e0\u10d4\u10d7 \u10d1\u10d0\u10e0\u10d9\u10dd\u10d3\u10d8\:
|
||||
loginTotpStep3=\u10e8\u10d4\u10d8\u10e7\u10d5\u10d0\u10dc\u10d4\u10d7 \u10d0\u10de\u10da\u10d8\u10d9\u10d0\u10ea\u10d8\u10d8\u10e1 \u10db\u10d8\u10d4\u10e0 \u10db\u10dd\u10ec\u10dd\u10d3\u10d4\u10d1\u10e3\u10da\u10d8 \u10d4\u10e0\u10d7\u10ef\u10d4\u10e0\u10d0\u10d3\u10d8 \u10d9\u10dd\u10d3\u10d8 \u10d3\u10d0 \u10d3\u10d0\u10d0\u10ec\u10d9\u10d0\u10de\u10e3\u10dc\u10d4\u10d7 \u10d2\u10d0\u10d3\u10d0\u10ea\u10d4\u10db\u10d0\u10d6\u10d4, \u10e0\u10dd\u10db \u10db\u10dd\u10e0\u10d2\u10d4\u10d1\u10d0 \u10d3\u10d0\u10d0\u10e1\u10e0\u10e3\u10da\u10dd\u10d7.
|
||||
loginTotpManualStep2=\u10d2\u10d0\u10ee\u10e1\u10d4\u10dc\u10d8\u10d7 \u10d0\u10de\u10da\u10d8\u10d9\u10d0\u10ea\u10d8\u10d0 \u10d3\u10d0 \u10e8\u10d4\u10d8\u10e7\u10d5\u10d0\u10dc\u10d4\u10d7 \u10d9\u10dd\u10d3\u10d8\:
|
||||
loginTotpUnableToScan=\u10d5\u10d4\u10e0 \u10d3\u10d0\u10d0\u10e1\u10d9\u10d0\u10dc\u10d4\u10e0\u10d4\u10d7?
|
||||
loginTotpScanBarcode=\u10d3\u10d0\u10d5\u10d0\u10e1\u10d9\u10d0\u10dc\u10d4\u10e0\u10dd \u10d1\u10d0\u10e0\u10d9\u10dd\u10d3\u10d8?
|
||||
loginCredential=\u10d0\u10d5\u10e2\u10dd\u10e0\u10d8\u10d6\u10d0\u10ea\u10d8\u10d8\u10e1 \u10d3\u10d4\u10e2\u10d0\u10da\u10d8
|
||||
loginOtpOneTime=\u10d4\u10e0\u10d7\u10ef\u10d4\u10e0\u10d0\u10d3\u10d8 \u10d9\u10dd\u10d3\u10d8
|
||||
loginTotpType=\u10e2\u10d8\u10de\u10d8
|
||||
loginTotpAlgorithm=\u10d0\u10da\u10d2\u10dd\u10e0\u10d8\u10d7\u10db\u10d8
|
||||
loginTotpDigits=\u10ea\u10d8\u10e4\u10e0\u10d4\u10d1\u10d8
|
||||
loginTotpInterval=\u10d8\u10dc\u10e2\u10d4\u10e0\u10d5\u10d0\u10da\u10d8
|
||||
loginTotpCounter=\u10db\u10d7\u10d5\u10da\u10d4\u10da\u10d8
|
||||
loginTotpDeviceName=\u10db\u10dd\u10ec\u10e7\u10dd\u10d1\u10d8\u10da\u10dd\u10d1\u10d8\u10e1 \u10e1\u10d0\u10ee\u10d4\u10da\u10d8
|
||||
loginTotp.totp=\u10d3\u10e0\u10dd\u10d6\u10d4-\u10d3\u10d0\u10e4\u10e3\u10eb\u10dc\u10d4\u10d1\u10e3\u10da\u10d8
|
||||
loginTotp.hotp=\u10db\u10d7\u10d5\u10da\u10d4\u10da\u10d6\u10d4-\u10d3\u10d0\u10e4\u10e3\u10eb\u10dc\u10d4\u10d1\u10e3\u10da\u10d8
|
||||
totpAppFreeOTPName=FreeOTP
|
||||
totpAppGoogleName=Google Authenticator
|
||||
totpAppMicrosoftAuthenticatorName=Microsoft Authenticator
|
||||
loginChooseAuthenticator=\u10d0\u10d8\u10e0\u10e9\u10d8\u10d4\u10d7 \u10e8\u10d4\u10e1\u10d5\u10da\u10d8\u10e1 \u10db\u10d4\u10d7\u10dd\u10d3\u10d8
|
||||
oauthGrantRequest=\u10d0\u10dc\u10d8\u10ed\u10d4\u10d1\u10d7 \u10d0\u10db \u10ec\u10d5\u10d3\u10dd\u10db\u10d8\u10e1 \u10e3\u10e4\u10da\u10d4\u10d1\u10d4\u10d1\u10e1?
|
||||
inResource=\u10e1\u10d0\u10d3
|
||||
oauth2DeviceVerificationTitle=\u10db\u10dd\u10ec\u10e7\u10dd\u10d1\u10d8\u10da\u10dd\u10d1\u10d8\u10e1 \u10e8\u10d4\u10e1\u10d5\u10da\u10d0
|
||||
verifyOAuth2DeviceUserCode=\u10e8\u10d4\u10d8\u10e7\u10d5\u10d0\u10dc\u10d4\u10d7 \u10d9\u10dd\u10d3\u10d8, \u10e0\u10dd\u10db\u10d4\u10da\u10d8\u10ea \u10d7\u10e5\u10d5\u10d4\u10dc\u10db\u10d0 \u10db\u10dd\u10ec\u10e7\u10dd\u10d1\u10d8\u10da\u10dd\u10d1\u10d0\u10db \u10db\u10dd\u10d2\u10d0\u10ec\u10dd\u10d3\u10d0\u10d7 \u10d3\u10d0 \u10d3\u10d0\u10d0\u10ec\u10d9\u10d0\u10de\u10e3\u10dc\u10d4\u10d7 \u10e6\u10d8\u10da\u10d0\u10d9\u10d6\u10d4 ''\u10d2\u10d0\u10d3\u10d0\u10ea\u10d4\u10db\u10d0''
|
||||
oauth2DeviceInvalidUserCodeMessage=\u10d0\u10e0\u10d0\u10e1\u10ec\u10dd\u10e0\u10d8 \u10d9\u10dd\u10d3\u10d8. \u10d7\u10d0\u10d5\u10d8\u10d3\u10d0\u10dc \u10e1\u10ea\u10d0\u10d3\u10d4\u10d7.
|
||||
oauth2DeviceVerificationCompleteHeader=\u10db\u10dd\u10ec\u10e7\u10dd\u10d1\u10d8\u10da\u10dd\u10d1\u10d8\u10e1 \u10e8\u10d4\u10e1\u10d5\u10da\u10d0 \u10ec\u10d0\u10e0\u10db\u10d0\u10e2\u10d4\u10d1\u10e3\u10da\u10d8\u10d0
|
||||
emailVerifyInstruction1=\u10d4\u10da\u10e4\u10dd\u10e1\u10e2\u10d0 \u10d8\u10dc\u10e1\u10e2\u10e0\u10e3\u10e5\u10ea\u10d8\u10d4\u10d1\u10d8\u10d7, \u10e0\u10dd\u10db \u10d2\u10d0\u10d3\u10d0\u10d5\u10d0\u10db\u10dd\u10ec\u10db\u10dd\u10d7 \u10d7\u10e5\u10d5\u10d4\u10dc\u10d8 \u10d4\u10da\u10e4\u10dd\u10e1\u10e2\u10d8\u10e1 \u10db\u10d8\u10e1\u10d0\u10db\u10d0\u10e0\u10d7\u10d8, \u10d2\u10d0\u10d8\u10d2\u10d6\u10d0\u10d5\u10dc\u10d0 \u10db\u10d8\u10e1\u10d0\u10db\u10d0\u10e0\u10d7\u10d6\u10d4 {0}.
|
||||
emailVerifyInstruction3=\u10d4\u10da\u10e4\u10dd\u10e1\u10e2\u10d8\u10e1 \u10d7\u10d0\u10d5\u10d8\u10d3\u10d0\u10dc \u10d2\u10d0\u10e1\u10d0\u10d2\u10d6\u10d0\u10d5\u10dc\u10d0\u10d3.
|
||||
emailLinkIdpTitle={0}-\u10d8\u10e1 \u10db\u10d8\u10d1\u10db\u10d0
|
||||
backToLogin=« \u10e8\u10d4\u10e1\u10d5\u10da\u10d0\u10d6\u10d4 \u10d3\u10d0\u10d1\u10e0\u10e3\u10dc\u10d4\u10d1\u10d0
|
||||
copyCodeInstruction=\u10d3\u10d0\u10d0\u10d9\u10dd\u10de\u10d8\u10e0\u10d4\u10d7 \u10d4\u10e1 \u10d9\u10dd\u10d3\u10d8 \u10d3\u10d0 \u10e9\u10d0\u10e1\u10d5\u10d8\u10d7 \u10d7\u10e5\u10d5\u10d4\u10dc\u10e1 \u10d0\u10de\u10da\u10d8\u10d9\u10d0\u10ea\u10d8\u10d0\u10e8\u10d8\:
|
||||
pageExpiredTitle=\u10d2\u10d5\u10d4\u10e0\u10d3\u10d8\u10e1 \u10d5\u10d0\u10d3\u10d0 \u10d0\u10db\u10dd\u10d8\u10ec\u10e3\u10e0\u10d0
|
||||
pageExpiredMsg1=\u10e8\u10d4\u10e1\u10d5\u10da\u10d8\u10e1 \u10de\u10e0\u10dd\u10ea\u10d4\u10e1\u10d8\u10e1 \u10d7\u10d0\u10d5\u10d8\u10d3\u10d0\u10dc \u10d3\u10d0\u10e1\u10d0\u10ec\u10e7\u10d4\u10d1\u10d0\u10d3
|
||||
personalInfo=\u10de\u10d4\u10e0\u10e1\u10dd\u10dc\u10d0\u10da\u10e3\u10e0\u10d8 \u10d8\u10dc\u10e4\u10dd\u10e0\u10db\u10d0\u10ea\u10d8\u10d0\:
|
||||
role_admin=\u10d0\u10d3\u10db\u10d8\u10dc\u10d8
|
||||
role_realm-admin=\u10e0\u10d4\u10d0\u10da\u10db\u10d8\u10e1 \u10d0\u10d3\u10db\u10d8\u10dc\u10d8
|
||||
client_admin-cli=\u10d0\u10d3\u10db\u10d8\u10dc\u10d8\u10e1 CLI
|
||||
client_realm-management=\u10e0\u10d4\u10d0\u10da\u10db\u10d8\u10e1 \u10db\u10d0\u10e0\u10d7\u10d5\u10d0
|
||||
requiredFields=\u10d0\u10e3\u10ea\u10d8\u10da\u10d4\u10d1\u10d4\u10da\u10d8 \u10d5\u10d4\u10da\u10d4\u10d1\u10d8
|
||||
client_broker=\u10d1\u10e0\u10dd\u10d9\u10d4\u10e0\u10d8
|
||||
invalidUsernameMessage=\u10d0\u10e0\u10d0\u10e1\u10ec\u10dd\u10e0\u10d8 \u10db\u10dd\u10db\u10ee\u10db\u10d0\u10e0\u10d4\u10d1\u10da\u10d8\u10e1 \u10e1\u10d0\u10ee\u10d4\u10da\u10d8.
|
||||
invalidUsernameOrEmailMessage=\u10d0\u10e0\u10d0\u10e1\u10ec\u10dd\u10e0\u10d8 \u10db\u10dd\u10db\u10ee\u10db\u10d0\u10e0\u10d4\u10d1\u10da\u10d8\u10e1 \u10e1\u10d0\u10ee\u10d4\u10da\u10d8 \u10d0\u10dc \u10d4\u10da\u10e4\u10dd\u10e1\u10e2\u10d0.
|
||||
invalidPasswordMessage=\u10d0\u10e0\u10d0\u10e1\u10ec\u10dd\u10e0\u10d8 \u10de\u10d0\u10e0\u10dd\u10da\u10d8.
|
||||
invalidEmailMessage=\u10d0\u10e0\u10d0\u10e1\u10ec\u10dd\u10e0\u10d8 \u10d4\u10da\u10e4\u10dd\u10e1\u10e2\u10d8\u10e1 \u10db\u10d8\u10e1\u10d0\u10db\u10d0\u10e0\u10d7\u10d8.
|
||||
accountDisabledMessage=\u10d0\u10dc\u10d2\u10d0\u10e0\u10d8\u10e8\u10d8 \u10d2\u10d0\u10d7\u10d8\u10e8\u10e3\u10da\u10d8\u10d0. \u10d3\u10d0\u10e3\u10d9\u10d0\u10d5\u10e8\u10d8\u10e0\u10d3\u10d8\u10d7 \u10d7\u10e5\u10d5\u10d4\u10dc\u10e1 \u10d0\u10d3\u10db\u10d8\u10dc\u10d8\u10e1\u10e2\u10e0\u10d0\u10e2\u10dd\u10e0\u10e1.
|
||||
expiredCodeMessage=\u10e8\u10d4\u10e1\u10d5\u10da\u10d8\u10e1 \u10db\u10dd\u10da\u10dd\u10d3\u10d8\u10dc\u10d8\u10e1 \u10d5\u10d0\u10d3\u10d0 \u10d0\u10db\u10dd\u10d8\u10ec\u10e3\u10e0\u10d0. \u10d7\u10d0\u10d5\u10d8\u10d3\u10d0\u10dc \u10e8\u10d4\u10d3\u10d8\u10d7.
|
||||
sessionLimitExceeded=\u10d0\u10e0\u10e1\u10d4\u10d1\u10dd\u10d1\u10e1 \u10db\u10d4\u10e2\u10d8\u10e1\u10db\u10d4\u10e2\u10d0\u10d3 \u10d1\u10d4\u10d5\u10e0\u10d8 \u10e1\u10d4\u10e1\u10d8\u10d0
|
||||
identityProviderLogoutFailure=SAML IdP \u10d2\u10d0\u10e1\u10d5\u10da\u10d0 \u10e9\u10d0\u10d5\u10d0\u10e0\u10d3\u10d0
|
||||
missingFirstNameMessage=\u10db\u10d8\u10e3\u10d7\u10d8\u10d7\u10d4\u10d7 \u10e1\u10d0\u10ee\u10d4\u10da\u10d8.
|
||||
missingLastNameMessage=\u10db\u10d8\u10e3\u10d7\u10d8\u10d7\u10d4\u10d7 \u10d2\u10d5\u10d0\u10e0\u10d8.
|
||||
missingEmailMessage=\u10db\u10d8\u10e3\u10d7\u10d8\u10d7\u10d4\u10d7 \u10d4\u10da\u10e4\u10dd\u10e1\u10e2\u10d0.
|
||||
missingUsernameMessage=\u10db\u10d8\u10e3\u10d7\u10d8\u10d7\u10d4\u10d7 \u10db\u10dd\u10db\u10ee\u10db\u10d0\u10e0\u10d4\u10d1\u10da\u10d8\u10e1 \u10e1\u10d0\u10ee\u10d4\u10da\u10d8.
|
||||
missingPasswordMessage=\u10db\u10d8\u10e3\u10d7\u10d8\u10d7\u10d4\u10d7 \u10de\u10d0\u10e0\u10dd\u10da\u10d8.
|
||||
missingTotpMessage=\u10db\u10d8\u10e3\u10d7\u10d8\u10d7\u10d4\u10d7 \u10d0\u10d5\u10d7\u10d4\u10dc\u10e2\u10d8\u10d9\u10d0\u10e2\u10dd\u10e0\u10d8\u10e1 \u10d9\u10dd\u10d3\u10d8.
|
||||
error-invalid-length-too-short=\u10db\u10d8\u10dc\u10d8\u10db\u10d0\u10da\u10e3\u10e0\u10d8 \u10e1\u10d8\u10d2\u10e0\u10eb\u10d4\u10d0 {1}.
|
||||
error-invalid-length-too-long=\u10db\u10d0\u10e5\u10e1\u10d8\u10db\u10d0\u10da\u10e3\u10e0\u10d8 \u10e1\u10d8\u10d2\u10e0\u10eb\u10d4\u10d0 {2}.
|
||||
error-invalid-email=\u10d0\u10e0\u10d0\u10e1\u10ec\u10dd\u10e0\u10d8 \u10d4\u10da\u10e4\u10dd\u10e1\u10e2\u10d8\u10e1 \u10db\u10d8\u10e1\u10d0\u10db\u10d0\u10e0\u10d7\u10d8.
|
||||
error-invalid-number=\u10d0\u10e0\u10d0\u10e1\u10ec\u10dd\u10e0\u10d8 \u10e0\u10d8\u10ea\u10ee\u10d5\u10d8.
|
||||
error-number-out-of-range=\u10e0\u10d8\u10ea\u10ee\u10d5\u10d8 \u10e3\u10dc\u10d3\u10d0 \u10d8\u10e7\u10dd\u10e1 \u10e8\u10e3\u10d0\u10da\u10d4\u10d3\u10d8\u10d3\u10d0\u10dc {1}-{2}.
|
||||
error-number-out-of-range-too-big=\u10e0\u10d8\u10ea\u10ee\u10d5\u10d8\u10e1 \u10db\u10d0\u10e5\u10e1\u10d8\u10db\u10d0\u10da\u10e3\u10e0\u10d8 \u10db\u10dc\u10d8\u10e8\u10d5\u10dc\u10d4\u10da\u10dd\u10d1\u10d0\u10d0 {2}.
|
||||
error-number-out-of-range-too-small=\u10e0\u10d8\u10ea\u10ee\u10d5\u10d8\u10e1 \u10db\u10d8\u10dc\u10d8\u10db\u10d0\u10da\u10e3\u10e0\u10d8 \u10db\u10dc\u10d8\u10e8\u10d5\u10dc\u10d4\u10da\u10dd\u10d1\u10d0\u10d0 {1}.
|
||||
error-pattern-no-match=\u10d0\u10e0\u10d0\u10e1\u10ec\u10dd\u10e0\u10d8 \u10db\u10dc\u10d8\u10e8\u10d5\u10dc\u10d4\u10da\u10dd\u10d1\u10d0.
|
||||
error-invalid-uri=\u10d0\u10e0\u10d0\u10e1\u10ec\u10dd\u10e0\u10d8 URL.
|
||||
error-invalid-uri-scheme=\u10d0\u10e0\u10d0\u10e1\u10ec\u10dd\u10e0\u10d8 \u10d1\u10db\u10e3\u10da\u10d8\u10e1 \u10e1\u10e5\u10d4\u10db\u10d0.
|
||||
error-invalid-uri-fragment=\u10d0\u10e0\u10d0\u10e1\u10ec\u10dd\u10e0\u10d8 URL-\u10d8\u10e1 \u10e4\u10e0\u10d0\u10d2\u10db\u10d4\u10dc\u10e2\u10d8.
|
||||
error-user-attribute-required=\u10db\u10d8\u10e3\u10d7\u10d8\u10d7\u10d4\u10d7 \u10d4\u10e1 \u10d5\u10d4\u10da\u10d8.
|
||||
error-invalid-date=\u10d0\u10e0\u10d0\u10e1\u10ec\u10dd\u10e0\u10d8 \u10d7\u10d0\u10e0\u10d8\u10e6\u10d8.
|
||||
error-user-attribute-read-only=\u10d4\u10e1 \u10d5\u10d4\u10da\u10d8 \u10db\u10ee\u10dd\u10da\u10dd\u10d3-\u10ec\u10d0\u10d9\u10d8\u10d7\u10ee\u10d5\u10d0\u10d3\u10d8\u10d0.
|
||||
error-username-invalid-character=\u10db\u10dc\u10d8\u10e8\u10d5\u10dc\u10d4\u10da\u10dd\u10d1\u10d0 \u10d0\u10e0\u10d0\u10e1\u10ec\u10dd\u10e0 \u10e1\u10d8\u10db\u10d1\u10dd\u10da\u10dd\u10e1 \u10e8\u10d4\u10d8\u10ea\u10d0\u10d5\u10e1.
|
||||
error-person-name-invalid-character=\u10db\u10dc\u10d8\u10e8\u10d5\u10dc\u10d4\u10da\u10dd\u10d1\u10d0 \u10d0\u10e0\u10d0\u10e1\u10ec\u10dd\u10e0 \u10e1\u10d8\u10db\u10d1\u10dd\u10da\u10dd\u10e1 \u10e8\u10d4\u10d8\u10ea\u10d0\u10d5\u10e1.
|
||||
error-reset-otp-missing-id=\u10d0\u10d8\u10e0\u10e9\u10d8\u10d4\u10d7 OTP-\u10d8\u10e1 \u10d9\u10dd\u10dc\u10e4\u10d8\u10d2\u10e3\u10e0\u10d0\u10ea\u10d8\u10d0.
|
||||
invalidPasswordExistingMessage=\u10d0\u10e0\u10d0\u10e1\u10ec\u10dd\u10e0\u10d8 \u10d0\u10e0\u10e1\u10d4\u10d1\u10e3\u10da\u10d8 \u10de\u10d0\u10e0\u10dd\u10da\u10d8.
|
||||
invalidPasswordBlacklistedMessage=\u10d0\u10e0\u10d0\u10e1\u10ec\u10dd\u10e0\u10d8 \u10de\u10d0\u10e0\u10dd\u10da\u10d8\: \u10de\u10d0\u10e0\u10dd\u10da\u10d8 \u10e8\u10d0\u10d5 \u10e1\u10d8\u10d0\u10e8\u10d8\u10d0.
|
||||
invalidPasswordConfirmMessage=\u10de\u10d0\u10e0\u10dd\u10da\u10d8\u10e1 \u10d3\u10d0\u10d3\u10d0\u10e1\u10e2\u10e3\u10e0\u10d4\u10d1\u10d0 \u10d0\u10e0 \u10d4\u10db\u10d7\u10ee\u10d5\u10d4\u10d5\u10d0.
|
||||
invalidTotpMessage=\u10d0\u10e0\u10d0\u10e1\u10ec\u10dd\u10e0\u10d8 \u10d0\u10d5\u10d7\u10d4\u10dc\u10e2\u10d8\u10d9\u10d0\u10e2\u10dd\u10e0\u10d8\u10e1 \u10d9\u10dd\u10d3\u10d8.
|
||||
usernameExistsMessage=\u10db\u10dd\u10db\u10ee\u10db\u10d0\u10e0\u10d4\u10d1\u10da\u10d8\u10e1 \u10e1\u10d0\u10ee\u10d4\u10da\u10d8 \u10e3\u10d9\u10d5\u10d4 \u10d0\u10e0\u10e1\u10d4\u10d1\u10dd\u10d1\u10e1.
|
||||
emailExistsMessage=\u10d4\u10da\u10e4\u10dd\u10e1\u10e2\u10d0 \u10e3\u10d9\u10d5\u10d4 \u10d0\u10e0\u10e1\u10d4\u10d1\u10dd\u10d1\u10e1.
|
||||
federatedIdentityExistsMessage=\u10db\u10dd\u10db\u10ee\u10db\u10d0\u10e0\u10d4\u10d1\u10d4\u10da\u10d8 {0}-\u10d8\u10d7 {1} \u10e3\u10d9\u10d5\u10d4 \u10d0\u10e0\u10e1\u10d4\u10d1\u10dd\u10d1\u10e1. \u10e8\u10d4\u10d3\u10d8\u10d7 \u10d0\u10dc\u10d2\u10d0\u10e0\u10d8\u10e8\u10d4\u10d1\u10d8\u10e1 \u10db\u10d0\u10e0\u10d7\u10d5\u10d0\u10e8\u10d8, \u10e0\u10dd\u10db \u10d0\u10dc\u10d2\u10d0\u10e0\u10d8\u10e8\u10d8 \u10db\u10d8\u10d0\u10d1\u10d0\u10d7.
|
||||
federatedIdentityUnavailableMessage=\u10db\u10dd\u10db\u10ee\u10db\u10d0\u10e0\u10d4\u10d1\u10d4\u10da\u10db\u10d0 {0} \u10d0\u10d5\u10d7\u10d4\u10dc\u10e2\u10d8\u10d9\u10d0\u10ea\u10d8\u10d0 \u10d8\u10d3\u10d4\u10dc\u10e2\u10d8\u10e4\u10d8\u10d9\u10d0\u10e2\u10dd\u10e0\u10d8\u10e1 \u10db\u10dd\u10db\u10ec\u10dd\u10d3\u10d4\u10d1\u10da\u10d8\u10d7 {1} \u10d2\u10d0\u10d8\u10d0\u10e0\u10d0 \u10d3\u10d0 \u10d0\u10e0 \u10d0\u10e0\u10e1\u10d4\u10d1\u10dd\u10d1\u10e1. \u10d3\u10d0\u10e3\u10d9\u10d0\u10d5\u10e8\u10d8\u10e0\u10d3\u10d8\u10d7 \u10d7\u10e5\u10d5\u10d4\u10dc\u10e1 \u10d0\u10d3\u10db\u10d8\u10dc\u10d8\u10e1\u10e2\u10e0\u10d0\u10e2\u10dd\u10e0.
|
||||
federatedIdentityUnmatchedEssentialClaimMessage=ID-\u10d8\u10e1 \u10d9\u10dd\u10d3\u10d8, \u10e0\u10dd\u10db\u10d4\u10da\u10d8\u10ea \u10d8\u10d3\u10d4\u10dc\u10e2\u10d8\u10e4\u10d8\u10d9\u10d0\u10e2\u10dd\u10e0\u10d8\u10e1 \u10db\u10dd\u10db\u10ec\u10dd\u10d3\u10d4\u10d1\u10d4\u10da\u10db\u10d0 \u10d2\u10d0\u10db\u10dd\u10e1\u10ea\u10d0, \u10d0\u10e0 \u10d4\u10db\u10d7\u10ee\u10d5\u10d4\u10d5\u10d0 \u10db\u10dd\u10e0\u10d2\u10d4\u10d1\u10e3\u10da \u10eb\u10d8\u10e0\u10d8\u10d7\u10d0\u10d3 \u10db\u10dd\u10d7\u10ee\u10dd\u10d5\u10dc\u10d0\u10e1. \u10d3\u10d0\u10e3\u10d9\u10d0\u10d5\u10e8\u10d8\u10e0\u10d3\u10d8\u10d7 \u10d7\u10e5\u10d5\u10d4\u10dc\u10e1 \u10d0\u10d3\u10db\u10d8\u10dc\u10d8\u10e1\u10e2\u10e0\u10d0\u10e2\u10dd\u10e0\u10e1.
|
||||
federatedIdentityConfirmLinkMessage=\u10db\u10dd\u10db\u10ee\u10db\u10d0\u10e0\u10d4\u10d1\u10d4\u10da\u10d8 {0}-\u10d8\u10d7 {1} \u10e3\u10d9\u10d5\u10d4 \u10d0\u10e0\u10e1\u10d4\u10d1\u10dd\u10d1\u10e1. \u10e0\u10dd\u10d2\u10dd\u10e0 \u10d2\u10dc\u10d4\u10d1\u10d0\u10d5\u10d7 \u10d2\u10d0\u10d2\u10e0\u10eb\u10d4\u10da\u10d4\u10d1\u10d0?
|
||||
federatedIdentityConfirmOverrideMessage=\u10ea\u10d3\u10d8\u10da\u10dd\u10d1\u10d7, \u10d7\u10e5\u10d5\u10d4\u10dc\u10d8 \u10d0\u10dc\u10d2\u10d0\u10e0\u10d8\u10e8\u10d8 {0} {1}-\u10d8\u10d7 \u10d0\u10dc\u10d2\u10d0\u10e0\u10d8\u10e8\u10e1 {2}. \u10db\u10d0\u10d2\u10e0\u10d0\u10db \u10d7\u10e5\u10d5\u10d4\u10dc\u10d8 \u10d0\u10dc\u10d2\u10d0\u10e0\u10d8\u10e8\u10d8 \u10e3\u10d9\u10d5\u10d4 \u10db\u10d8\u10d1\u10db\u10e3\u10da\u10d8\u10d0 \u10e1\u10ee\u10d5\u10d0 {3} \u10d0\u10dc\u10d2\u10d0\u10e0\u10d8\u10e8\u10e1 {4}. \u10d0\u10d3\u10d0\u10e1\u10e2\u10e3\u10e0\u10d4\u10d1\u10d7, \u10e0\u10dd\u10db \u10d2\u10dc\u10d4\u10d1\u10d0\u10d5\u10d7, \u10d0\u10e0\u10e1\u10d4\u10d1\u10e3\u10da\u10d8 \u10d1\u10db\u10e3\u10da\u10d8 \u10d0\u10ee\u10d0\u10da\u10d8 \u10d0\u10dc\u10d2\u10d0\u10e0\u10d8\u10e8\u10d8\u10d7 \u10e9\u10d0\u10d0\u10dc\u10d0\u10ea\u10d5\u10da\u10dd\u10d7?
|
||||
federatedIdentityConfirmReauthenticateMessage=\u10d2\u10d0\u10d8\u10d0\u10e0\u10d4\u10d7 \u10d0\u10d5\u10d7\u10d4\u10dc\u10e2\u10d8\u10d9\u10d0\u10ea\u10d8\u10d0, \u10e0\u10dd\u10db \u10db\u10d8\u10d0\u10d1\u10d0\u10d7 \u10d7\u10e5\u10d5\u10d4\u10dc\u10d8 \u10d0\u10dc\u10d2\u10d0\u10e0\u10d8\u10e8\u10d8 {0}-\u10e1
|
||||
configureTotpMessage=\u10d7\u10e5\u10d5\u10d4\u10dc\u10d8 \u10d0\u10dc\u10d2\u10d0\u10e0\u10d8\u10e8\u10d8\u10e1 \u10d2\u10d0\u10e1\u10d0\u10d0\u10e5\u10e2\u10d8\u10e3\u10e0\u10d4\u10d1\u10da\u10d0\u10d3 \u10db\u10dd\u10d1\u10d8\u10da\u10e3\u10e0\u10d8 \u10d0\u10d5\u10d7\u10d4\u10dc\u10e2\u10d8\u10d9\u10d0\u10e2\u10dd\u10e0\u10d8 \u10d2\u10ed\u10d8\u10e0\u10d3\u10d4\u10d1\u10d0\u10d7.
|
||||
configureBackupCodesMessage=\u10d7\u10e5\u10d5\u10d4\u10dc\u10d8 \u10d0\u10dc\u10d2\u10d0\u10e0\u10d8\u10e8\u10d8\u10e1 \u10d2\u10d0\u10e1\u10d0\u10d0\u10e5\u10e2\u10d8\u10e3\u10e0\u10d4\u10d1\u10da\u10d0\u10d3 \u10db\u10d0\u10e0\u10e5\u10d0\u10e4\u10d8 \u10d9\u10dd\u10d3\u10d4\u10d1\u10d8 \u10e3\u10dc\u10d3\u10d0 \u10db\u10dd\u10d8\u10e0\u10d2\u10dd\u10d7.
|
||||
updateProfileMessage=\u10d7\u10e5\u10d5\u10d4\u10dc\u10d8 \u10d0\u10dc\u10d2\u10d0\u10e0\u10d8\u10e8\u10d8\u10e1 \u10d2\u10d0\u10e1\u10d0\u10d0\u10e5\u10e2\u10d8\u10e3\u10e0\u10d4\u10d1\u10da\u10d0\u10d3 \u10d7\u10e5\u10d5\u10d4\u10dc\u10d8 \u10db\u10dd\u10db\u10ee\u10db\u10d0\u10e0\u10d4\u10d1\u10da\u10d8\u10e1 \u10de\u10e0\u10dd\u10e4\u10d8\u10da\u10d8 \u10e3\u10dc\u10d3\u10d0 \u10d2\u10d0\u10dc\u10d0\u10d0\u10ee\u10da\u10dd\u10d7.
|
||||
updateEmailMessage=\u10d7\u10e5\u10d5\u10d4\u10dc\u10d8 \u10d0\u10dc\u10d2\u10d0\u10e0\u10d8\u10e8\u10d8\u10e1 \u10d2\u10d0\u10e1\u10d0\u10d0\u10e5\u10e2\u10d8\u10e3\u10e0\u10d4\u10d1\u10da\u10d0\u10d3 \u10d4\u10da\u10e4\u10dd\u10e1\u10e2\u10d8\u10e1 \u10d0\u10dc\u10d2\u10d0\u10e0\u10d8\u10e8\u10d8\u10e1 \u10d2\u10d0\u10dc\u10d0\u10ee\u10da\u10d4\u10d1\u10d0 \u10d2\u10ed\u10d8\u10e0\u10d3\u10d4\u10d1\u10d0\u10d7.
|
||||
resetPasswordMessage=\u10e1\u10d0\u10ed\u10d8\u10e0\u10dd\u10d0, \u10e8\u10d4\u10ea\u10d5\u10d0\u10da\u10dd\u10d7 \u10d7\u10e5\u10d5\u10d4\u10dc\u10d8 \u10de\u10d0\u10e0\u10dd\u10da\u10d8.
|
||||
verifyEmailMessage=\u10e1\u10d0\u10ed\u10d8\u10e0\u10dd\u10d0, \u10d2\u10d0\u10d3\u10d0\u10d0\u10db\u10dd\u10ec\u10db\u10dd\u10d7 \u10d7\u10e5\u10d5\u10d4\u10dc\u10d8 \u10d4\u10da\u10e4\u10dd\u10e1\u10e2\u10d8\u10e1 \u10db\u10d8\u10e1\u10d0\u10db\u10d0\u10e0\u10d7\u10d8, \u10e0\u10dd\u10db \u10d2\u10d0\u10d0\u10d0\u10e5\u10e2\u10d8\u10e3\u10e0\u10dd\u10d7 \u10d7\u10e5\u10d5\u10d4\u10dc\u10d8 \u10d0\u10dc\u10d2\u10d0\u10e0\u10d8\u10e8\u10d8.
|
||||
emailSentMessage=\u10db\u10d0\u10da\u10d4 \u10e8\u10d4\u10db\u10d3\u10d2\u10dd\u10db\u10d8 \u10d8\u10dc\u10e1\u10e2\u10e0\u10e3\u10e5\u10ea\u10d8\u10d4\u10d1\u10d8\u10e1 \u10e8\u10d4\u10db\u10ea\u10d5\u10d4\u10da \u10d4\u10da\u10e4\u10dd\u10e1\u10e2\u10d0\u10e1 \u10db\u10d8\u10d8\u10e6\u10d4\u10d1\u10d7.
|
||||
emailSendErrorMessage=\u10d4\u10da\u10e4\u10dd\u10e1\u10e2\u10d8\u10e1 \u10d2\u10d0\u10d2\u10d6\u10d0\u10d5\u10dc\u10d0 \u10e9\u10d0\u10d5\u10d0\u10e0\u10d3\u10d0. \u10db\u10dd\u10d2\u10d5\u10d8\u10d0\u10dc\u10d4\u10d1\u10d8\u10d7 \u10e1\u10ea\u10d0\u10d3\u10d4\u10d7.
|
||||
accountUpdatedMessage=\u10d7\u10e5\u10d5\u10d4\u10dc\u10d8 \u10d0\u10dc\u10d2\u10d0\u10e0\u10d8\u10e8\u10d8 \u10d2\u10d0\u10dc\u10d0\u10ee\u10da\u10d3\u10d0.
|
||||
accountPasswordUpdatedMessage=\u10d7\u10e5\u10d5\u10d4\u10dc\u10d8 \u10de\u10d0\u10e0\u10dd\u10da\u10d8 \u10d2\u10d0\u10dc\u10d0\u10ee\u10da\u10d3\u10d0.
|
||||
delegationCompleteHeader=\u10e8\u10d4\u10e1\u10d5\u10da\u10d0 \u10ec\u10d0\u10e0\u10db\u10d0\u10e2\u10d4\u10d1\u10e3\u10da\u10d8\u10d0
|
||||
delegationCompleteMessage=\u10e8\u10d4\u10d2\u10d8\u10eb\u10da\u10d8\u10d0\u10d7 \u10d3\u10d0\u10ee\u10e3\u10e0\u10dd\u10d7 \u10d4\u10e1 \u10d1\u10e0\u10d0\u10e3\u10d6\u10d4\u10e0\u10d8\u10e1 \u10e4\u10d0\u10dc\u10ef\u10d0\u10e0\u10d0 \u10d3\u10d0 \u10d7\u10e5\u10d5\u10d4\u10dc\u10d8 \u10d9\u10dd\u10dc\u10e1\u10dd\u10da\u10d8\u10e1 \u10d0\u10de\u10da\u10d8\u10d9\u10d0\u10ea\u10d8\u10d0\u10d6\u10d4 \u10d3\u10d0\u10d1\u10e0\u10e3\u10dc\u10d3\u10d4\u10d7.
|
||||
delegationFailedHeader=\u10e8\u10d4\u10e1\u10d5\u10da\u10d0 \u10e9\u10d0\u10d5\u10d0\u10e0\u10d3\u10d0
|
||||
delegationFailedMessage=\u10e8\u10d4\u10d2\u10d8\u10eb\u10da\u10d8\u10d0\u10d7, \u10d3\u10d0\u10ee\u10e3\u10e0\u10dd\u10d7 \u10d4\u10e1 \u10d1\u10e0\u10d0\u10e3\u10d6\u10d4\u10e0\u10d8\u10e1 \u10e4\u10d0\u10dc\u10ef\u10d0\u10e0\u10d0 \u10d3\u10d0 \u10d7\u10e5\u10d5\u10d4\u10dc\u10d8 \u10d9\u10dd\u10dc\u10e1\u10dd\u10da\u10d8\u10e1 \u10d0\u10de\u10da\u10d8\u10d9\u10d0\u10ea\u10d8\u10d0\u10d6\u10d4 \u10d3\u10d0\u10d1\u10e0\u10e3\u10dc\u10d3\u10d4\u10d7 \u10d3\u10d0 \u10e8\u10d4\u10e1\u10d5\u10da\u10d0 \u10d7\u10d0\u10d5\u10d8\u10d3\u10d0\u10dc \u10e1\u10ea\u10d0\u10d3\u10dd\u10d7.
|
||||
noAccessMessage=\u10ec\u10d5\u10d3\u10dd\u10db\u10d8\u10e1 \u10d2\u10d0\u10e0\u10d4\u10e8\u10d4
|
||||
invalidPasswordMinDigitsMessage=\u10d0\u10e0\u10d0\u10e1\u10ec\u10dd\u10e0\u10d8 \u10de\u10d0\u10e0\u10dd\u10da\u10d8\: \u10e3\u10dc\u10d3\u10d0 \u10e8\u10d4\u10d8\u10ea\u10d0\u10d5\u10d3\u10d4\u10e1, \u10e1\u10e3\u10da \u10ea\u10dd\u10e2\u10d0 {0} \u10ea\u10d8\u10e4\u10e0\u10e1.
|
||||
invalidPasswordMinLowerCaseCharsMessage=\u10d0\u10e0\u10d0\u10e1\u10ec\u10dd\u10e0\u10d8 \u10de\u10d0\u10e0\u10dd\u10da\u10d8\: \u10e3\u10dc\u10d3\u10d0 \u10e8\u10d4\u10d8\u10ea\u10d0\u10d5\u10d3\u10d4\u10e1, \u10e1\u10e3\u10da \u10ea\u10dd\u10e2\u10d0 {0} \u10de\u10d0\u10e2\u10d0\u10e0\u10d0 \u10d0\u10e1\u10dd\u10e1.
|
||||
invalidPasswordMinUpperCaseCharsMessage=\u10d0\u10e0\u10d0\u10e1\u10ec\u10dd\u10e0\u10d8 \u10de\u10d0\u10e0\u10dd\u10da\u10d8\: \u10e3\u10dc\u10d3\u10d0 \u10e8\u10d4\u10d8\u10ea\u10d0\u10d5\u10d3\u10d4\u10e1, \u10e1\u10e3\u10da \u10ea\u10dd\u10e2\u10d0 {0} \u10d3\u10d8\u10d3 \u10d0\u10e1\u10dd\u10e1.
|
||||
invalidPasswordMinSpecialCharsMessage=\u10d0\u10e0\u10d0\u10e1\u10ec\u10dd\u10e0\u10d8 \u10de\u10d0\u10e0\u10dd\u10da\u10d8\: \u10e3\u10dc\u10d3\u10d0 \u10e8\u10d4\u10d8\u10ea\u10d0\u10d5\u10d3\u10d4\u10e1, \u10e1\u10e3\u10da \u10ea\u10dd\u10e2\u10d0 {0} \u10e1\u10de\u10d4\u10ea\u10d8\u10d0\u10da\u10e3\u10e0 \u10e1\u10d8\u10db\u10d1\u10dd\u10da\u10dd\u10e1.
|
||||
invalidPasswordNotUsernameMessage=\u10d0\u10e0\u10d0\u10e1\u10ec\u10dd\u10e0\u10d8 \u10de\u10d0\u10e0\u10dd\u10da\u10d8\: \u10d0\u10e0 \u10e3\u10dc\u10d3\u10d0 \u10d8\u10e7\u10dd\u10e1 \u10db\u10dd\u10db\u10ee\u10db\u10d0\u10e0\u10d4\u10d1\u10da\u10d8\u10e1 \u10e1\u10d0\u10ee\u10d4\u10da\u10d8\u10e1 \u10e2\u10dd\u10da\u10d8.
|
||||
invalidPasswordNotContainsUsernameMessage=\u10d0\u10e0\u10d0\u10e1\u10ec\u10dd\u10e0\u10d8 \u10de\u10d0\u10e0\u10dd\u10da\u10d8\: \u10d0\u10e0 \u10e8\u10d4\u10d8\u10eb\u10da\u10d4\u10d1\u10d0, \u10db\u10dd\u10db\u10ee\u10db\u10d0\u10e0\u10d4\u10d1\u10da\u10d8\u10e1 \u10e1\u10d0\u10ee\u10d4\u10da\u10e1 \u10e8\u10d4\u10d8\u10ea\u10d0\u10d5\u10d3\u10d4\u10e1.
|
||||
invalidPasswordNotEmailMessage=\u10d0\u10e0\u10d0\u10e1\u10ec\u10dd\u10e0\u10d8 \u10de\u10d0\u10e0\u10dd\u10da\u10d8\: \u10d0\u10e0 \u10e3\u10dc\u10d3\u10d0 \u10e3\u10d3\u10e0\u10d8\u10d3\u10d4\u10e1 \u10d4\u10da\u10e4\u10dd\u10e1\u10e2\u10d0\u10e1.
|
||||
invalidPasswordRegexPatternMessage=\u10d0\u10e0\u10d0\u10e1\u10ec\u10dd\u10e0\u10d8 \u10de\u10d0\u10e0\u10dd\u10da\u10d8\: \u10d0\u10e0 \u10d4\u10db\u10d7\u10ee\u10d5\u10d4\u10d5\u10d0 \u10e0\u10d4\u10d2\u10d2\u10d0\u10db\u10dd\u10e1\u10d8\u10e1 \u10dc\u10d8\u10db\u10e3\u10e8(\u10d4\u10d1)-\u10e1.
|
||||
invalidPasswordHistoryMessage=\u10d0\u10e0\u10d0\u10e1\u10ec\u10dd\u10e0\u10d8 \u10de\u10d0\u10e0\u10dd\u10da\u10d8\: \u10d0\u10e0 \u10e3\u10dc\u10d3\u10d0 \u10e3\u10d3\u10e0\u10d8\u10d3\u10d4\u10e1 \u10d1\u10dd\u10da\u10dd {0} \u10de\u10d0\u10e0\u10dd\u10da\u10e1.
|
||||
invalidPasswordGenericMessage=\u10d0\u10e0\u10d0\u10e1\u10ec\u10dd\u10e0\u10d8 \u10de\u10d0\u10e0\u10dd\u10da\u10d8\: \u10d0\u10ee\u10d0\u10da\u10d8 \u10de\u10d0\u10e0\u10dd\u10da\u10d8 \u10d0\u10e0 \u10d0\u10d9\u10db\u10d0\u10e7\u10dd\u10e4\u10d8\u10da\u10d4\u10d1\u10e1 \u10de\u10d0\u10e0\u10dd\u10da\u10d8\u10e1 \u10de\u10dd\u10da\u10d8\u10e2\u10d8\u10d9\u10d4\u10d1\u10e1.
|
||||
failedToProcessResponseMessage=\u10de\u10d0\u10e1\u10e3\u10ee\u10d8\u10e1 \u10d3\u10d0\u10db\u10e3\u10e8\u10d0\u10d5\u10d4\u10d1\u10d0 \u10e9\u10d0\u10d5\u10d0\u10e0\u10d3\u10d0
|
||||
httpsRequiredMessage=HTTPS \u10d0\u10e3\u10ea\u10d8\u10da\u10d4\u10d1\u10d4\u10da\u10d8\u10d0
|
||||
realmNotEnabledMessage=\u10e0\u10d4\u10d0\u10da\u10db\u10d8 \u10e9\u10d0\u10e0\u10d7\u10e3\u10da\u10d8 \u10d0\u10e0\u10d0\u10d0
|
||||
invalidRequestMessage=\u10d0\u10e0\u10d0\u10e1\u10ec\u10dd\u10e0\u10d8 \u10db\u10dd\u10d7\u10ee\u10dd\u10d5\u10dc\u10d0
|
||||
failedLogout=\u10d2\u10d0\u10e1\u10d5\u10da\u10d0 \u10e9\u10d0\u10d5\u10d0\u10e0\u10d3\u10d0
|
||||
loginRequesterNotEnabledMessage=\u10e8\u10d4\u10e1\u10d5\u10da\u10d8\u10e1 \u10db\u10dd\u10db\u10d7\u10ee\u10dd\u10d5\u10dc\u10d8 \u10e9\u10d0\u10e0\u10d7\u10e3\u10da\u10d8 \u10d0\u10e0\u10d0\u10d0
|
||||
implicitFlowDisabledMessage=\u10d9\u10da\u10d8\u10d4\u10dc\u10e2\u10e1 \u10e3\u10e4\u10da\u10d4\u10d1\u10d0, \u10e0\u10dd\u10db \u10d3\u10d0\u10d8\u10ec\u10e7\u10dd\u10e1 \u10d1\u10e0\u10d0\u10e3\u10d6\u10d4\u10e0\u10d8\u10d7 \u10e8\u10d4\u10e1\u10d5\u10da\u10d0 \u10db\u10d8\u10d7\u10d8\u10d7\u10d4\u10d1\u10e3\u10da\u10d8 \u10de\u10d0\u10e1\u10e3\u10ee\u10d8\u10e1 \u10e2\u10d8\u10de\u10d8\u10d7, \u10d0\u10e0 \u10d0\u10e5\u10d5\u10e1. \u10d9\u10da\u10d8\u10d4\u10dc\u10e2\u10d8\u10e1\u10d7\u10d5\u10d8\u10e1 \u10de\u10d8\u10e0\u10d3\u10d0\u10de\u10d8\u10e0\u10d8 \u10d3\u10d8\u10dc\u10d4\u10d1\u10d0 \u10d2\u10d0\u10d7\u10d8\u10e8\u10e3\u10da\u10d8\u10d0.
|
||||
invalidRedirectUriMessage=\u10d0\u10e0\u10d0\u10e1\u10ec\u10dd\u10e0\u10d8 \u10d2\u10d0\u10d3\u10d0\u10db\u10d8\u10e1\u10d0\u10db\u10d0\u10e0\u10d7\u10d4\u10d1\u10d8\u10e1 uri
|
||||
unsupportedNameIdFormatMessage=\u10db\u10ee\u10d0\u10e0\u10d3\u10d0\u10e3\u10ed\u10d4\u10e0\u10d4\u10da\u10d8 NameIDFormat
|
||||
noRelayStateInResponseMessage=\u10d8\u10d3\u10d4\u10dc\u10e2\u10d8\u10e4\u10d8\u10d9\u10d0\u10e2\u10dd\u10e0\u10d8\u10e1 \u10db\u10dd\u10db\u10ec\u10dd\u10d3\u10d4\u10d1\u10da\u10d8\u10e1 \u10de\u10d0\u10e1\u10e3\u10ee\u10e8\u10d8 \u10e0\u10d4\u10da\u10d4\u10e1 \u10db\u10d3\u10d2\u10dd\u10db\u10d0\u10e0\u10d4\u10dd\u10d1\u10d0 \u10d0\u10e6\u10db\u10dd\u10e9\u10d4\u10dc\u10d8\u10da\u10d8 \u10d0\u10e0\u10d0\u10d0.
|
||||
insufficientPermissionMessage=\u10d0\u10e0\u10d0\u10e1\u10d0\u10d9\u10db\u10d0\u10e0\u10d8\u10e1\u10d8 \u10ec\u10d5\u10d3\u10dd\u10db\u10d4\u10d1\u10d8 \u10d8\u10d3\u10d4\u10dc\u10e2\u10d8\u10e4\u10d8\u10d9\u10d0\u10e2\u10dd\u10e0\u10d4\u10d1\u10d8\u10e1 \u10d2\u10d0\u10d3\u10d0\u10e1\u10d0\u10d1\u10db\u10d4\u10da\u10d0\u10d3.
|
||||
couldNotProceedWithAuthenticationRequestMessage=\u10d8\u10d3\u10d4\u10dc\u10e2\u10d8\u10e4\u10d8\u10d9\u10d0\u10e2\u10dd\u10e0\u10d8\u10e1 \u10db\u10dd\u10db\u10ec\u10dd\u10d3\u10d4\u10d1\u10d4\u10da\u10d7\u10d0\u10dc \u10d0\u10d5\u10d7\u10d4\u10dc\u10e2\u10d8\u10d9\u10d0\u10ea\u10d8\u10d8\u10e1 \u10db\u10dd\u10d7\u10ee\u10dd\u10d5\u10dc\u10d8\u10e1 \u10d2\u10d0\u10d2\u10e0\u10eb\u10d4\u10da\u10d4\u10d1\u10d0 \u10e8\u10d4\u10e3\u10eb\u10da\u10d4\u10d1\u10d4\u10da\u10d8\u10d0.
|
||||
couldNotObtainTokenMessage=\u10d8\u10d3\u10d4\u10dc\u10e2\u10d8\u10e4\u10d8\u10d9\u10d0\u10e2\u10dd\u10e0\u10d8\u10e1 \u10db\u10dd\u10db\u10ec\u10dd\u10d3\u10d4\u10d1\u10da\u10d8\u10d3\u10d0\u10dc \u10d9\u10dd\u10d3\u10d8\u10e1 \u10db\u10d8\u10e6\u10d4\u10d1\u10d0 \u10e8\u10d4\u10e3\u10eb\u10da\u10d4\u10d1\u10d4\u10da\u10d8\u10d0.
|
||||
unexpectedErrorRetrievingTokenMessage=\u10db\u10dd\u10e3\u10da\u10dd\u10d3\u10dc\u10d4\u10da\u10d8 \u10e8\u10d4\u10ea\u10d3\u10dd\u10db\u10d0 \u10d8\u10d3\u10d4\u10dc\u10e2\u10d8\u10e4\u10d8\u10d9\u10d0\u10e2\u10dd\u10e0\u10d8\u10e1 \u10db\u10dd\u10db\u10ec\u10dd\u10d3\u10d4\u10d1\u10da\u10d8\u10d3\u10d0\u10dc \u10d9\u10dd\u10d3\u10d8\u10e1 \u10db\u10d8\u10e6\u10d4\u10d1\u10d8\u10e1\u10d0\u10e1.
|
||||
unexpectedErrorHandlingResponseMessage=\u10db\u10dd\u10e3\u10da\u10dd\u10d3\u10dc\u10d4\u10da\u10d8 \u10e8\u10d4\u10ea\u10d3\u10dd\u10db\u10d0 \u10d8\u10d3\u10d4\u10dc\u10e2\u10d8\u10e4\u10d8\u10d9\u10d0\u10e2\u10dd\u10e0\u10d8\u10e1 \u10db\u10dd\u10db\u10ec\u10dd\u10d3\u10d4\u10d1\u10da\u10d8\u10e1 \u10de\u10d0\u10e1\u10e3\u10ee\u10d8\u10e1 \u10d3\u10d0\u10db\u10e3\u10e8\u10d0\u10d5\u10d4\u10d1\u10d8\u10e1\u10d0\u10e1.
|
||||
identityProviderAuthenticationFailedMessage=\u10d0\u10d5\u10d7\u10d4\u10dc\u10e2\u10d8\u10d9\u10d0\u10ea\u10d8\u10d0 \u10e9\u10d0\u10d5\u10d0\u10e0\u10d3\u10d0. \u10d8\u10d3\u10d4\u10dc\u10e2\u10d8\u10e4\u10d8\u10d9\u10d0\u10e2\u10dd\u10e0\u10d8\u10e1 \u10db\u10dd\u10db\u10ec\u10dd\u10d3\u10d4\u10d1\u10d4\u10da\u10d7\u10d0\u10dc \u10d0\u10d5\u10d7\u10d4\u10dc\u10e2\u10d8\u10d9\u10d0\u10ea\u10d8\u10d0 \u10e9\u10d0\u10d5\u10d0\u10e0\u10d3\u10d0.
|
||||
couldNotSendAuthenticationRequestMessage=\u10d5\u10d4\u10e0 \u10d2\u10d0\u10d5\u10d0\u10d2\u10d6\u10d0\u10d5\u10dc\u10d4 \u10d0\u10d5\u10d7\u10d4\u10dc\u10e2\u10d8\u10d9\u10d0\u10ea\u10d8\u10d8\u10e1 \u10db\u10dd\u10d7\u10ee\u10dd\u10d5\u10dc\u10d0 \u10d8\u10d3\u10d4\u10dc\u10e2\u10d8\u10e4\u10d8\u10d9\u10d0\u10e2\u10dd\u10e0\u10d8\u10e1 \u10db\u10dd\u10db\u10ec\u10dd\u10d3\u10d4\u10d1\u10d4\u10da\u10d7\u10d0\u10dc.
|
||||
invalidAccessCodeMessage=\u10d0\u10e0\u10d0\u10e1\u10ec\u10dd\u10e0\u10d8 \u10ec\u10d5\u10d3\u10dd\u10db\u10d8\u10e1 \u10d9\u10dd\u10d3\u10d8.
|
||||
sessionNotActiveMessage=\u10e1\u10d4\u10e1\u10d8\u10d0 \u10d0\u10e5\u10e2\u10d8\u10e3\u10e0\u10d8 \u10d0\u10e0\u10d0\u10d0.
|
||||
invalidCodeMessage=\u10d0\u10e6\u10db\u10dd\u10e9\u10d4\u10dc\u10d8\u10da\u10d8\u10d0 \u10e8\u10d4\u10ea\u10d3\u10dd\u10db\u10d0. \u10e8\u10d4\u10d3\u10d8\u10d7 \u10d7\u10d0\u10d5\u10d8\u10d3\u10d0\u10dc \u10d7\u10e5\u10d5\u10d4\u10dc\u10d8 \u10d0\u10de\u10da\u10d8\u10d9\u10d0\u10ea\u10d8\u10d8\u10d7.
|
||||
cookieNotFoundMessage=\u10e5\u10e3\u10e5\u10d8 \u10d5\u10d4\u10e0 \u10d5\u10d8\u10de\u10dd\u10d5\u10d4. \u10d3\u10d0\u10e0\u10ec\u10db\u10e3\u10dc\u10d3\u10d8\u10d7, \u10e0\u10dd\u10db \u10d1\u10e0\u10d0\u10e3\u10d6\u10d4\u10e0\u10e8\u10d8 \u10e5\u10e3\u10e5\u10d8\u10d4\u10d1\u10d8 \u10e9\u10d0\u10e0\u10d7\u10e3\u10da\u10d8 \u10d2\u10d0\u10e5\u10d5\u10d7.
|
||||
insufficientLevelOfAuthentication=\u10d0\u10d5\u10d7\u10d4\u10dc\u10e2\u10d8\u10d9\u10d0\u10ea\u10d8\u10d8\u10e1 \u10db\u10dd\u10d7\u10ee\u10dd\u10d5\u10dc\u10d8\u10da\u10d8 \u10d3\u10dd\u10dc\u10d4 \u10d0\u10e0 \u10d3\u10d0\u10d9\u10db\u10d0\u10e7\u10dd\u10e4\u10d8\u10da\u10d4\u10d1\u10e3\u10da\u10d0.
|
||||
identityProviderUnexpectedErrorMessage=\u10db\u10dd\u10e3\u10da\u10dd\u10d3\u10dc\u10d4\u10da\u10d8 \u10e8\u10d4\u10ea\u10d3\u10dd\u10db\u10d0 \u10d8\u10d3\u10d4\u10dc\u10e2\u10d8\u10e4\u10d8\u10d9\u10d0\u10e2\u10dd\u10e0\u10d8\u10e1 \u10db\u10dd\u10db\u10ec\u10dd\u10d3\u10d4\u10d1\u10da\u10d8\u10d7 \u10d0\u10d5\u10d7\u10d4\u10dc\u10e2\u10d8\u10d9\u10d0\u10ea\u10d8\u10d8\u10e1\u10d0\u10e1
|
||||
identityProviderMissingStateMessage=\u10d8\u10d3\u10d4\u10dc\u10e2\u10d8\u10e4\u10d8\u10d9\u10d0\u10e2\u10dd\u10e0\u10d8\u10e1 \u10db\u10dd\u10db\u10ec\u10dd\u10d3\u10d4\u10d1\u10da\u10d8\u10e1 \u10de\u10d0\u10e1\u10e3\u10ee\u10e8\u10d8 \u10db\u10d3\u10d2\u10dd\u10db\u10d0\u10e0\u10d4\u10dd\u10d1\u10d8\u10e1 \u10de\u10d0\u10e0\u10d0\u10db\u10d4\u10e2\u10e0\u10d8 \u10db\u10d8\u10d7\u10d8\u10d7\u10d4\u10d1\u10e3\u10da\u10d8 \u10d0\u10e0\u10d0\u10d0.
|
||||
identityProviderMissingCodeOrErrorMessage=\u10dc\u10d0\u10d9\u10da\u10e3\u10da\u10d8 \u10d9\u10dd\u10d3\u10d8 \u10d0\u10dc \u10e8\u10d4\u10ea\u10d3\u10dd\u10db\u10d8\u10e1 \u10de\u10d0\u10e0\u10d0\u10db\u10d4\u10e2\u10e0\u10d8 \u10d8\u10d3\u10d4\u10dc\u10e2\u10d8\u10e4\u10d8\u10d9\u10d0\u10e2\u10dd\u10e0\u10d8\u10e1 \u10db\u10dd\u10db\u10ec\u10dd\u10d3\u10d4\u10d1\u10da\u10d8\u10e1 \u10de\u10d0\u10e1\u10e3\u10ee\u10e8\u10d8.
|
||||
identityProviderLinkSuccess=\u10d7\u10e5\u10d5\u10d4\u10dc \u10ec\u10d0\u10e0\u10db\u10d0\u10e2\u10d4\u10d1\u10d8\u10d7 \u10d2\u10d0\u10d3\u10d0\u10d0\u10db\u10dd\u10ec\u10db\u10d4\u10d7 \u10d7\u10e5\u10d5\u10d4\u10dc\u10d8 \u10d4\u10da\u10e4\u10dd\u10e1\u10e2\u10d0. \u10d3\u10d0\u10d1\u10e0\u10e3\u10dc\u10d3\u10d8\u10d7 \u10e1\u10d0\u10ec\u10e7\u10d8\u10e1 \u10d1\u10e0\u10d0\u10e3\u10d6\u10d4\u10e0\u10e8\u10d8 \u10d3\u10d0 \u10d2\u10d0\u10d0\u10d2\u10e0\u10eb\u10d4\u10da\u10d4\u10d7 \u10e8\u10d4\u10e1\u10d5\u10da\u10d0.
|
||||
missingParameterMessage=\u10dc\u10d0\u10d9\u10da\u10e3\u10da\u10d8 \u10de\u10d0\u10e0\u10d0\u10db\u10d4\u10e2\u10e0\u10d4\u10d1\u10d8\: {0}
|
||||
clientNotFoundMessage=\u10d9\u10da\u10d8\u10d4\u10dc\u10e2\u10d8 \u10d5\u10d4\u10e0 \u10d5\u10d8\u10de\u10dd\u10d5\u10d4.
|
||||
clientDisabledMessage=\u10d9\u10da\u10d8\u10d4\u10dc\u10e2\u10d8 \u10d2\u10d0\u10d7\u10d8\u10e8\u10e3\u10da\u10d8\u10d0.
|
||||
invalidParameterMessage=\u10d0\u10e0\u10d0\u10e1\u10ec\u10dd\u10e0\u10d8 \u10de\u10d0\u10e0\u10d0\u10db\u10d4\u10e2\u10e0\u10d8\: {0}
|
||||
alreadyLoggedIn=\u10e3\u10d9\u10d5\u10d4 \u10e8\u10d4\u10e1\u10e3\u10da\u10d8 \u10d1\u10e0\u10eb\u10d0\u10dc\u10d3\u10d4\u10d1\u10d8\u10d7.
|
||||
proceedWithAction=» \u10d3\u10d0\u10d0\u10ec\u10d9\u10d0\u10de\u10e3\u10dc\u10d4\u10d7 \u10d0\u10e5 \u10d2\u10d0\u10e1\u10d0\u10d2\u10e0\u10eb\u10d4\u10da\u10d4\u10d1\u10da\u10d0\u10d3
|
||||
requiredAction.UPDATE_PASSWORD=\u10de\u10d0\u10e0\u10dd\u10da\u10d8\u10e1 \u10d2\u10d0\u10dc\u10d0\u10ee\u10da\u10d4\u10d1\u10d0
|
||||
requiredAction.UPDATE_PROFILE=\u10de\u10e0\u10dd\u10e4\u10d8\u10da\u10d8\u10e1 \u10d2\u10d0\u10dc\u10d0\u10ee\u10da\u10d4\u10d1\u10d0
|
||||
requiredAction.VERIFY_EMAIL=\u10d4\u10da\u10e4\u10dd\u10e1\u10e2\u10d8\u10e1 \u10d2\u10d0\u10d3\u10d0\u10db\u10dd\u10ec\u10db\u10d4\u10d1\u10d0
|
||||
doX509Login=\u10e8\u10d4\u10ee\u10d5\u10d0\u10da\u10d7, \u10e0\u10dd\u10d2\u10dd\u10e0\u10ea\:
|
||||
console-username=\u10db\u10dd\u10db\u10ee\u10db\u10d0\u10e0\u10d4\u10d1\u10da\u10d8\u10e1 \u10e1\u10d0\u10ee\u10d4\u10da\u10d8\:
|
||||
console-password=\u10de\u10d0\u10e0\u10dd\u10da\u10d8\:
|
||||
console-otp=\u10d4\u10e0\u10d7\u10ef\u10d4\u10e0\u10d0\u10d3\u10d8 \u10de\u10d0\u10e0\u10dd\u10da\u10d8\:
|
||||
console-new-password=\u10d0\u10ee\u10d0\u10da\u10d8 \u10de\u10d0\u10e0\u10dd\u10da\u10d8\:
|
||||
console-confirm-password=\u10d3\u10d0\u10d0\u10d3\u10d0\u10e1\u10e2\u10e3\u10e0\u10d4\u10d7 \u10de\u10d0\u10e0\u10dd\u10da\u10d8\:
|
||||
console-update-password=\u10d0\u10e3\u10ea\u10d8\u10da\u10d4\u10d1\u10d4\u10da\u10d8\u10d0 \u10d7\u10e5\u10d5\u10d4\u10dc\u10d8 \u10de\u10d0\u10e0\u10dd\u10da\u10d8\u10e1 \u10d2\u10d0\u10dc\u10d0\u10ee\u10da\u10d4\u10d1\u10d0.
|
||||
console-email-code=\u10d4\u10da\u10e4\u10dd\u10e1\u10e2\u10d8\u10e1 \u10d9\u10dd\u10d3\u10d8\:
|
||||
console-accept-terms=\u10d4\u10d7\u10d0\u10dc\u10ee\u10db\u10d4\u10d1\u10d8\u10d7 \u10ec\u10d4\u10e1\u10d4\u10d1\u10e1? [y/n]\:
|
||||
console-accept=y
|
||||
openshift.scope.user_info=\u10db\u10dd\u10db\u10ee\u10db\u10d0\u10e0\u10d4\u10d1\u10da\u10d8\u10e1 \u10d8\u10dc\u10e4\u10dd\u10e0\u10db\u10d0\u10ea\u10d8\u10d0
|
||||
saml.post-form.title=\u10d0\u10d5\u10d7\u10d4\u10dc\u10e2\u10d8\u10d9\u10d0\u10ea\u10d8\u10d8\u10e1 \u10d2\u10d0\u10d3\u10d0\u10db\u10d8\u10e1\u10d0\u10db\u10d0\u10e0\u10d7\u10d4\u10d1\u10d0
|
||||
saml.post-form.message=\u10db\u10d8\u10db\u10d3\u10d8\u10dc\u10d0\u10e0\u10d4\u10dd\u10d1\u10e1 \u10d2\u10d0\u10d3\u10d0\u10db\u10d8\u10e1\u10d0\u10db\u10d0\u10e0\u10d7\u10d4\u10d1\u10d0. \u10d2\u10d7\u10ee\u10dd\u10d5\u10d7, \u10db\u10dd\u10d8\u10d7\u10db\u10d8\u10dc\u10dd\u10d7.
|
||||
password-help-text=\u10e8\u10d4\u10e1\u10d5\u10da\u10d0 \u10de\u10d0\u10e0\u10dd\u10da\u10d8\u10e1 \u10e8\u10d4\u10e7\u10d5\u10d0\u10dc\u10d8\u10d7.
|
||||
auth-username-form-display-name=\u10db\u10dd\u10db\u10ee\u10db\u10d0\u10e0\u10d4\u10d1\u10da\u10d8\u10e1 \u10e1\u10d0\u10ee\u10d4\u10da\u10d8
|
||||
auth-username-form-help-text=\u10d3\u10d0\u10d8\u10ec\u10e7\u10d4\u10d7 \u10e8\u10d4\u10e1\u10d5\u10da\u10d0 \u10d7\u10e5\u10d5\u10d4\u10dc\u10d8 \u10db\u10dd\u10db\u10ee\u10db\u10d0\u10e0\u10d4\u10d1\u10da\u10d8\u10e1 \u10e1\u10d0\u10ee\u10d4\u10da\u10d8\u10e1 \u10e8\u10d4\u10e7\u10d5\u10d0\u10dc\u10d8\u10d7
|
||||
auth-username-password-form-display-name=\u10db\u10dd\u10db\u10ee\u10db\u10d0\u10e0\u10d4\u10d1\u10d4\u10da\u10d8 \u10d3\u10d0 \u10de\u10d0\u10e0\u10dd\u10da\u10d8
|
||||
auth-username-password-form-help-text=\u10e8\u10d4\u10d3\u10d8\u10d7 \u10d7\u10e5\u10d5\u10d4\u10dc\u10d8 \u10db\u10dd\u10db\u10ee\u10db\u10d0\u10e0\u10d4\u10d1\u10da\u10d8\u10e1\u10d0 \u10d3\u10d0 \u10de\u10d0\u10e0\u10dd\u10da\u10d8\u10e1 \u10e8\u10d4\u10e7\u10d5\u10d0\u10dc\u10d8\u10d7.
|
||||
recovery-code-config-warning-message=\u10d3\u10d0\u10e0\u10ec\u10db\u10e3\u10dc\u10d3\u10d8\u10d7, \u10e0\u10dd\u10db \u10d3\u10d0\u10d1\u10d4\u10ed\u10d3\u10dd\u10d7, \u10d2\u10d0\u10d3\u10db\u10dd\u10ec\u10d4\u10e0\u10dd\u10d7 \u10d0\u10dc \u10e8\u10d4\u10d8\u10dc\u10d0\u10ee\u10dd\u10d7 \u10d8\u10e1\u10d8\u10dc\u10d8 \u10de\u10d0\u10e0\u10dd\u10da\u10d4\u10d1\u10d8\u10e1 \u10db\u10db\u10d0\u10e0\u10d7\u10d5\u10d4\u10da\u10e8\u10d8 \u10d3\u10d0 \u10d8\u10e5\u10dd\u10dc\u10d8\u10d4\u10d7 \u10d8\u10e1\u10d8\u10dc\u10d8 \u10e3\u10e1\u10d0\u10e4\u10e0\u10d7\u10ee\u10dd\u10d3. \u10d0\u10db \u10de\u10d0\u10e0\u10d0\u10db\u10d4\u10e2\u10e0\u10d4\u10d1\u10d8\u10e1 \u10d2\u10d0\u10e3\u10e5\u10db\u10d4\u10d1\u10d0 \u10d7\u10e5\u10d5\u10d4\u10dc\u10d8 \u10d0\u10dc\u10d2\u10d0\u10e0\u10d8\u10e8\u10d8\u10d3\u10d0\u10dc \u10d0\u10db \u10d9\u10dd\u10d3\u10d4\u10d1\u10e1 \u10ec\u10d0\u10e8\u10da\u10d8\u10e1.
|
||||
recovery-codes-action-complete=\u10db\u10dd\u10e0\u10d2\u10d4\u10d1\u10d8\u10e1 \u10d3\u10d0\u10e1\u10e0\u10e3\u10da\u10d4\u10d1\u10d0
|
||||
recovery-codes-action-cancel=\u10db\u10dd\u10e0\u10d2\u10d4\u10d1\u10d8\u10e1 \u10d2\u10d0\u10e3\u10e5\u10db\u10d4\u10d1\u10d0
|
||||
recovery-codes-download-file-header=\u10e8\u10d4\u10d8\u10dc\u10d0\u10ee\u10d4\u10d7 \u10d4\u10e1 \u10d9\u10dd\u10d3\u10d4\u10d1\u10d8 \u10e1\u10d0\u10d3\u10db\u10d4 \u10e3\u10e1\u10d0\u10e4\u10e0\u10d7\u10ee\u10dd \u10d0\u10d3\u10d2\u10d8\u10da\u10d0\u10e1.
|
||||
recovery-codes-download-file-date=\u10d4\u10e1 \u10d9\u10dd\u10d3\u10d4\u10d1\u10d8 \u10d3\u10d0\u10d0\u10d2\u10d4\u10dc\u10d4\u10e0\u10d8\u10e0\u10d0
|
||||
webauthn-login-title=Passkey-\u10d8\u10d7 \u10e8\u10d4\u10e1\u10d5\u10da\u10d0
|
||||
webauthn-registration-title=Passkey-\u10d8\u10e1\u10d8\u10e1 \u10e0\u10d4\u10d2\u10d8\u10e1\u10e2\u10e0\u10d0\u10ea\u10d8\u10d0
|
||||
webauthn-available-authenticators=\u10ee\u10d4\u10da\u10db\u10d8\u10e1\u10d0\u10ec\u10d5\u10d3\u10dd\u10db\u10d8 Passkeys
|
||||
webauthn-error-auth-verification=Passkey-\u10d8\u10d7 \u10d0\u10d5\u10d7\u10d4\u10dc\u10e2\u10d8\u10d9\u10d0\u10ea\u10d8\u10d8\u10e1 \u10e8\u10d4\u10d3\u10d4\u10d2\u10d8 \u10d0\u10e0\u10d0\u10e1\u10ec\u10dd\u10e0\u10d8\u10d0.<br/>{0}
|
||||
webauthn-error-register-verification=Passkey-\u10d8\u10e1 \u10e0\u10d4\u10d2\u10d8\u10e1\u10e2\u10e0\u10d0\u10ea\u10d8\u10d8\u10e1 \u10e8\u10d4\u10d3\u10d4\u10d2\u10d8 \u10d0\u10e0\u10d0\u10e1\u10ec\u10dd\u10e0\u10d8\u10d0.<br/>{0}
|
||||
webauthn-error-user-not-found=Passkey-\u10d8\u10d7 \u10d0\u10d5\u10d7\u10d4\u10dc\u10e2\u10d8\u10d9\u10d0\u10ea\u10d8\u10d0\u10d2\u10d0\u10d5\u10da\u10d8\u10da\u10d8 \u10db\u10dd\u10db\u10ee\u10db\u10d0\u10e0\u10d4\u10d1\u10d4\u10da\u10d8 \u10e3\u10ea\u10dc\u10dd\u10d1\u10d8\u10d0.
|
||||
irreversibleAction=\u10d4\u10e1 \u10e5\u10db\u10d4\u10d3\u10d4\u10d1\u10d0 \u10e8\u10d4\u10e3\u10e5\u10ea\u10d4\u10d5\u10d0\u10d3\u10d8\u10d0
|
||||
accountUnusable=\u10d0\u10db \u10d0\u10dc\u10d2\u10d0\u10e0\u10d8\u10e8\u10d8\u10d7 \u10d0\u10db\u10d8\u10e1 \u10e8\u10d4\u10db\u10d3\u10d4\u10d2 \u10d0\u10de\u10da\u10d8\u10d9\u10d0\u10ea\u10d8\u10d0\u10e1 \u10d5\u10d4\u10e0 \u10d2\u10d0\u10db\u10dd\u10d8\u10e7\u10d4\u10dc\u10d4\u10d1\u10d7
|
||||
passkey-login-title=Passkey-\u10d8\u10d7 \u10e8\u10d4\u10e1\u10d5\u10da\u10d0
|
||||
passkey-available-authenticators=\u10ee\u10d4\u10da\u10db\u10d8\u10e1\u10d0\u10ec\u10d5\u10d3\u10dd\u10db\u10d8 Passkeys
|
||||
idp-email-verification-display-name=\u10d4\u10da\u10e4\u10dd\u10e1\u10e2\u10d8\u10e1 \u10d2\u10d0\u10d3\u10d0\u10db\u10dd\u10ec\u10db\u10d4\u10d1\u10d0
|
||||
deletingImplies=\u10d7\u10e5\u10d5\u10d4\u10dc\u10d8 \u10d0\u10dc\u10d2\u10d0\u10e0\u10d8\u10e8\u10d8\u10e1 \u10ec\u10d0\u10e8\u10da\u10d0 \u10d2\u10d0\u10db\u10dd\u10d8\u10ec\u10d5\u10d4\u10d5\u10e1\:
|
||||
errasingData=\u10d7\u10e5\u10d5\u10d4\u10dc\u10d8 \u10e7\u10d5\u10d4\u10da\u10d0 \u10db\u10dd\u10dc\u10d0\u10ea\u10d4\u10db\u10d8\u10e1 \u10ec\u10d0\u10e8\u10da\u10d0\u10e1
|
||||
access-denied=\u10ec\u10d5\u10d3\u10dd\u10db\u10d0 \u10d0\u10d9\u10e0\u10eb\u10d0\u10da\u10e3\u10da\u10d8\u10d0
|
||||
access-denied-when-idp-auth=\u10ec\u10d5\u10d3\u10dd\u10db\u10d0 \u10d0\u10d9\u10e0\u10eb\u10d0\u10da\u10e3\u10da\u10d8\u10d0 {0}-\u10d8\u10d7 \u10d0\u10d5\u10d7\u10d4\u10dc\u10e2\u10d8\u10d9\u10d0\u10ea\u10d8\u10d8\u10e1\u10d0\u10e1
|
||||
doAccept=\u10db\u10d8\u10e6\u10d4\u10d1\u10d0
|
||||
doTryAgain=\u10d7\u10d0\u10d5\u10d8\u10d3\u10d0\u10dc \u10ea\u10d3\u10d0
|
||||
errorDeletingAccount=\u10e8\u10d4\u10ea\u10d3\u10dd\u10db\u10d0 \u10d0\u10dc\u10d2\u10d0\u10e0\u10d8\u10e8\u10d8\u10e1 \u10ec\u10d0\u10e8\u10da\u10d8\u10e1\u10d0\u10e1
|
||||
kerberosNotConfiguredTitle=Kerberos \u10db\u10dd\u10e0\u10d2\u10d4\u10d1\u10e3\u10da\u10d8 \u10d0\u10e0\u10d0\u10d0
|
||||
doBack=\u10e3\u10d9\u10d0\u10dc
|
||||
doYes=\u10d3\u10d8\u10d0\u10ee
|
||||
doIgnore=\u10d2\u10d0\u10db\u10dd\u10e2\u10dd\u10d5\u10d4\u10d1\u10d0
|
||||
impersonateTitleHtml=<strong>{0}</strong> \u10db\u10dd\u10db\u10ee\u10db\u10d0\u10e0\u10d4\u10d1\u10da\u10d8\u10e1 \u10d2\u10d0\u10dc\u10e1\u10d0\u10ee\u10d8\u10d4\u10e0\u10d4\u10d1\u10d0
|
||||
loginTimeout=\u10d7\u10e5\u10d5\u10d4\u10dc\u10d8 \u10e8\u10d4\u10e1\u10d5\u10da\u10d8\u10e1 \u10db\u10ea\u10d3\u10d4\u10da\u10dd\u10d1\u10d8\u10e1 \u10db\u10dd\u10da\u10dd\u10d3\u10d8\u10dc\u10d8\u10e1 \u10d5\u10d0\u10d3\u10d0 \u10d0\u10db\u10dd\u10d8\u10ec\u10e3\u10e0\u10d0. \u10e8\u10d4\u10e1\u10d5\u10da\u10d0 \u10d7\u10d0\u10d5\u10d8\u10d3\u10d0\u10dc \u10d3\u10d0\u10d8\u10ec\u10e7\u10d4\u10d1\u10d0.
|
||||
deletingAccountForbidden=\u10d7\u10e5\u10d5\u10d4\u10dc \u10d0\u10e0 \u10d2\u10d0\u10e5\u10d5\u10d7 \u10e1\u10d0\u10d9\u10db\u10d0\u10e0\u10d8\u10e1\u10d8 \u10ec\u10d5\u10d3\u10dd\u10db\u10d4\u10d1\u10d8, \u10e0\u10dd\u10db \u10e1\u10d0\u10d9\u10e3\u10d7\u10d0\u10e0\u10d8 \u10d0\u10dc\u10d2\u10d0\u10e0\u10d8\u10e8\u10d8 \u10ec\u10d0\u10e8\u10d0\u10da\u10dd\u10d7. \u10d3\u10d0\u10e3\u10d9\u10d0\u10d5\u10e8\u10d8\u10e0\u10d3\u10d8\u10d7 \u10d0\u10d3\u10db\u10d8\u10dc\u10d8\u10e1\u10e2\u10e0\u10d0\u10e2\u10dd\u10e0\u10e1.
|
||||
bypassKerberosDetail=\u10d0\u10dc \u10e8\u10d4\u10e1\u10e3\u10da\u10d8 \u10d0\u10e0 \u10d1\u10e0\u10eb\u10d0\u10dc\u10d3\u10d4\u10d1\u10d8\u10d7 Kerberos-\u10d8\u10d7, \u10d0\u10dc \u10d7\u10e5\u10d5\u10d4\u10dc\u10d8 \u10d1\u10e0\u10d0\u10e3\u10d6\u10d4\u10e0\u10d8 Kerberos-\u10d8\u10d7 \u10e8\u10d4\u10e1\u10d5\u10da\u10d0\u10d6\u10d4 \u10d0\u10e0\u10d0\u10d0 \u10db\u10dd\u10e0\u10d2\u10d4\u10d1\u10e3\u10da\u10d8. \u10d2\u10d0\u10d0\u10d2\u10e0\u10eb\u10d4\u10da\u10d4\u10d7 \u10e8\u10d4\u10e1\u10d5\u10da\u10d0, \u10dd\u10e6\u10dd\u10dc\u10d3 \u10e1\u10ee\u10d5\u10d0 \u10e1\u10d0\u10e8\u10e3\u10d0\u10da\u10d4\u10d1\u10d4\u10d1\u10d8\u10d7
|
||||
loginTotpTitle=\u10db\u10dd\u10d1\u10d8\u10da\u10e3\u10e0\u10d8 \u10d0\u10d5\u10d7\u10d4\u10dc\u10e2\u10d8\u10d9\u10d0\u10e2\u10dd\u10e0\u10d8\u10e1 \u10db\u10dd\u10e0\u10d2\u10d4\u10d1\u10d0
|
||||
loginIdpReviewProfileTitle=\u10d0\u10dc\u10d2\u10d0\u10e0\u10d8\u10e8\u10d8\u10e1 \u10d8\u10dc\u10e4\u10dd\u10e0\u10db\u10d0\u10ea\u10d8\u10d8\u10e1 \u10d2\u10d0\u10dc\u10d0\u10ee\u10da\u10d4\u10d1\u10d0
|
||||
organization.confirm-membership.title=\u10d0\u10de\u10d8\u10e0\u10d4\u10d1\u10d7, \u10e8\u10d4\u10e3\u10d4\u10e0\u10d7\u10d3\u10d4\u10d7 \u10dd\u10e0\u10d2\u10d0\u10dc\u10d8\u10d6\u10d0\u10ea\u10d8\u10d0\u10e1 ${kc.org.name}
|
||||
organization.confirm-membership=\u10e5\u10d5\u10d4\u10db\u10dd\u10d7 \u10d1\u10db\u10e3\u10da\u10d6\u10d4 \u10d3\u10d0\u10ec\u10d9\u10d0\u10de\u10e3\u10dc\u10d4\u10d1\u10d8\u10d7 \u10d7\u10e5\u10d5\u10d4\u10dc \u10e8\u10d4\u10e3\u10d4\u10e0\u10d7\u10d3\u10d4\u10d1\u10d8\u10d7 \u10dd\u10e0\u10d2\u10d0\u10dc\u10d8\u10d6\u10d0\u10ea\u10d8\u10d0\u10e1 {0}\:
|
||||
organization.member.register.title=\u10e8\u10d4\u10e5\u10db\u10d4\u10dc\u10d8\u10d7 \u10d0\u10dc\u10d2\u10d0\u10e0\u10d8\u10e8\u10d8, \u10e0\u10dd\u10db \u10e8\u10d4\u10e3\u10d4\u10e0\u10d7\u10d3\u10d4\u10d7 \u10dd\u10e0\u10d2\u10d0\u10dc\u10d8\u10d6\u10d0\u10ea\u10d8\u10d0\u10e1 ${kc.org.name}
|
||||
shouldBeEqual={0} \u10e3\u10dc\u10d3\u10d0 \u10d8\u10e7\u10dd\u10e1 \u10e2\u10dd\u10da\u10d8 {1}-\u10e1\u10d7\u10d5\u10d8\u10e1
|
||||
shouldBeDifferent={0} \u10e3\u10dc\u10d3\u10d0 \u10d8\u10e7\u10dd\u10e1 \u10e1\u10ee\u10d5\u10d0 {1}-\u10e1\u10d7\u10d5\u10d8\u10e1
|
||||
shouldMatchPattern=\u10e8\u10d0\u10d1\u10da\u10dd\u10dc\u10e1 \u10e3\u10dc\u10d3\u10d0 \u10d4\u10db\u10d7\u10ee\u10d5\u10d4\u10d5\u10d0\: `/{0}/`
|
||||
mustBeAnInteger=\u10e3\u10dc\u10d3\u10d0 \u10d8\u10e7\u10dd\u10e1 \u10db\u10d7\u10d4\u10da\u10d8 \u10e0\u10d8\u10ea\u10ee\u10d5\u10d8
|
||||
notAValidOption=\u10d0\u10e0\u10d0\u10e1\u10ec\u10dd\u10e0\u10d8 \u10d5\u10d0\u10e0\u10d8\u10d0\u10dc\u10e2\u10d8
|
||||
selectAnOption=\u10d0\u10d8\u10e0\u10e9\u10d8\u10d4\u10d7 \u10d5\u10d0\u10e0\u10d8\u10d0\u10dc\u10e2\u10d8
|
||||
remove=\u10ec\u10d0\u10e8\u10d0\u10da\u10d4\u10d7
|
||||
addValue=\u10d3\u10d0\u10d0\u10db\u10d0\u10e2\u10d4\u10d7 \u10db\u10dc\u10d8\u10e8\u10d5\u10dc\u10d4\u10da\u10dd\u10d1\u10d0
|
||||
languages=\u10d4\u10dc\u10d4\u10d1\u10d8
|
@ -0,0 +1,201 @@
|
||||
|
||||
doLogIn=Prisijungti
|
||||
doRegister=Registruotis
|
||||
doRegisterSecurityKey=Registruotis
|
||||
doCancel=At\u0161aukti
|
||||
doSubmit=Patvirtinti
|
||||
doYes=Taip
|
||||
doNo=Ne
|
||||
doContinue=T\u0119sti
|
||||
doAccept=Patvirtinti
|
||||
doDecline=At\u0161aukti
|
||||
doForgotPassword=Pamir\u0161ote slapta\u017eod\u012f?
|
||||
doClickHere=Spauskite \u010dia
|
||||
doImpersonate=Apsimesti kaip
|
||||
kerberosNotConfigured=Kerberos nesukonfig\u016bruotas
|
||||
kerberosNotConfiguredTitle=Kerberos nesukonfig\u016bruotas
|
||||
bypassKerberosDetail=J\u016bs neprisijung\u0119s per Kerberos arba J\u016bs\u0173 nar\u0161ykl\u0117 nesukonfig\u016bruota Kerberos prisijungimui. T\u0119skite ir pasirinkite kit\u0105 prisijungimo b\u016bd\u0105
|
||||
kerberosNotSetUp=Kerberos nesukonfig\u016bruotas. J\u016bs negalite prisijungti.
|
||||
registerWithTitle=Registruotis su {0}
|
||||
registerWithTitleHtml={0}
|
||||
loginTitle=Prisijungti su {0}
|
||||
loginTitleHtml={0}
|
||||
impersonateTitle=Apsimesti kaip naudotojas {0}
|
||||
impersonateTitleHtml=Apsimesti kaip <strong>{0}</strong>
|
||||
realmChoice=Sritis
|
||||
unknownUser=Ne\u017einomas naudotojas
|
||||
loginTotpTitle=Mobilaus autentifikatoriaus nustatymas
|
||||
loginProfileTitle=Atnaujinti paskyros informacij\u0105
|
||||
loginTimeout=U\u017etrukote per ilgai. Prisijungimo procesas pradedamas i\u0161 naujo.
|
||||
oauthGrantTitle=Suteitikti prieig\u0105
|
||||
oauthGrantTitleHtml={0}
|
||||
errorTitle=Atsipra\u0161ome ...
|
||||
errorTitleHtml=<strong>Atsipra\u0161ome</strong> ...
|
||||
emailVerifyTitle=El. pa\u0161to adreso patvirtinimas
|
||||
emailForgotTitle=Pamir\u0161ote slapta\u017eod\u012f?
|
||||
updatePasswordTitle=Atnaujinti slapta\u017eod\u012f
|
||||
codeSuccessTitle=S\u0117km\u0117
|
||||
codeErrorTitle=Klaidos kodas\: {0}
|
||||
termsTitle=Naudojimo s\u0105lygos
|
||||
termsTitleHtml=Naudojimo s\u0105lygos
|
||||
termsText=
|
||||
recaptchaFailed=Recaptcha neteisingas
|
||||
recaptchaNotConfigured=Reikalingas Recaptcha nesukonfig\u016bruotas
|
||||
consentDenied=Prieiga draud\u017eiama.
|
||||
noAccount=Dar neturite paskyros?
|
||||
username=Naudotojo vardas
|
||||
usernameOrEmail=Naudotojo vardas arba el. pa\u0161to adresas
|
||||
firstName=Vardas
|
||||
givenName=Vardas
|
||||
fullName=Pavard\u0117
|
||||
lastName=Pavard\u0117
|
||||
familyName=Pavard\u0117
|
||||
email=El. pa\u0161tas
|
||||
password=Slapta\u017eodis
|
||||
passwordConfirm=Pakartotas slapta\u017eodis
|
||||
passwordNew=Naujas slapta\u017eodis
|
||||
passwordNewConfirm=Pakartotas naujas slapta\u017eodis
|
||||
rememberMe=Prisiminti mane
|
||||
authenticatorCode=Vienkartinis kodas
|
||||
address=Adresas
|
||||
street=Gatv\u0117
|
||||
locality=Miestas arba vietov\u0117
|
||||
region=Rajonas
|
||||
postal_code=Pa\u0161to kodas
|
||||
country=\u0160alis
|
||||
emailVerified=El. pa\u0161to adresas patvirtintas
|
||||
gssDelegationCredential=GSS prisijungimo duomen\u0173 delegavimas
|
||||
loginTotpStep1=\u012ediekite <a href\="https\://freeotp.github.io/" target\="_blank">FreeOTP</a> arba Google Authenticator savo \u012frenginyje. Program\u0117l\u0117s prieinamos <a href\="https\://play.google.com">Google Play</a> ir Apple App Store.
|
||||
loginTotpStep2=Atidarykite program\u0117l\u0119 ir nuskenuokite barkod\u0105 arba \u012fveskite kod\u0105.
|
||||
loginTotpStep3=\u012eveskite program\u0117l\u0117je sugeneruot\u0105 vien\u0105 kart\u0105 galiojant\u012f kod\u0105 ir paspauskite Saugoti nor\u0117dami prisijungti.
|
||||
loginOtpOneTime=Vienkartinis kodas
|
||||
oauthGrantRequest=Ar J\u016bs suteikiate \u0161ias prieigos teises?
|
||||
inResource=\u012f
|
||||
emailVerifyInstruction1=El. pa\u0161tas su instrukcijomis ir patvirtinimo nuoroda nusi\u0173sti \u012f J\u016bs\u0173 el. pa\u0161t\u0105.
|
||||
emailVerifyInstruction2=El. pa\u0161tu negavote patvirtinimo kodo?
|
||||
emailVerifyInstruction3=pakartotoinai si\u0173sti el. lai\u0161k\u0105.
|
||||
emailLinkIdpTitle=Susieti {0}
|
||||
emailLinkIdp1=El. pa\u0161to lai\u0161kas su instrukcijomis susieti {0} paskyr\u0105 {1} su {2} buvo nusi\u0173stas.
|
||||
emailLinkIdp2=Negavote patvirtinimo kodo el. pa\u0161tu?
|
||||
emailLinkIdp3=pakartotoinai si\u0173sti el. lai\u0161k\u0105.
|
||||
backToLogin=« Gr\u012f\u017eti \u012f prisijungimo lang\u0105
|
||||
emailInstruction=\u012eveskite naudotojo vard\u0105 arba slapta\u017eod\u012f ir slapta\u017eod\u017eio pakeitimo instrukcijos bus atsi\u0173stos Jums el. pa\u0161tu
|
||||
copyCodeInstruction=Nukopijuokite \u0161\u012f kod\u0105 \u012f J\u016bs\u0173 program\u0105\:
|
||||
personalInfo=Asmenin\u0117 informacija\:
|
||||
role_admin=Administratorius
|
||||
role_realm-admin=Srities administravimas
|
||||
role_create-realm=Kurti srit\u012f
|
||||
role_create-client=Kurti program\u0105
|
||||
role_view-realm=Per\u017ei\u016br\u0117ti srit\u012f
|
||||
role_view-users=Per\u017ei\u016br\u0117ti naudotojus
|
||||
role_view-applications=Per\u017ei\u016br\u0117ti programas
|
||||
role_view-clients=Per\u017ei\u016br\u0117ti klientines programas
|
||||
role_view-events=Per\u017ei\u016br\u0117ti \u012fvyki\u0173 \u017eurnal\u0105
|
||||
role_view-identity-providers=Per\u017ei\u016br\u0117ti tapatyb\u0117s teik\u0117jus
|
||||
role_manage-realm=Valdyti sritis
|
||||
role_manage-users=Valdyti naudotojus
|
||||
role_manage-applications=Valdyti programas
|
||||
role_manage-identity-providers=Valdyti tapatyb\u0117s teik\u0117jus
|
||||
role_manage-clients=Valdyti programas
|
||||
role_manage-events=Valdyti \u012fvykius
|
||||
role_view-profile=Per\u017ei\u016br\u0117ti paskyr\u0105
|
||||
role_manage-account=Valdyti paskyr\u0105
|
||||
role_read-token=Skaityti prieigos rak\u0161\u0105
|
||||
role_offline-access=Darbas neprisijungus
|
||||
client_account=Paskyra
|
||||
client_security-admin-console=Saugumo administravimo konsol\u0117
|
||||
client_admin-cli=Administravimo CLI
|
||||
client_realm-management=Srities valdymas
|
||||
client_broker=Tarpininkas
|
||||
invalidUserMessage=Neteisingas naudotojo vardas arba slapta\u017eodis.
|
||||
invalidEmailMessage=Neteisingas el. pa\u0161to adresas.
|
||||
accountDisabledMessage=Paskyros galiojimas sustabdytas, kreipkit\u0117s \u012f administratori\u0173.
|
||||
accountTemporarilyDisabledMessage=Paskyros galiojimas laikinai sustabdytas. Kreipkit\u0117s \u012f administratori\u0173 arba pabandykite v\u0117liau.
|
||||
expiredCodeMessage=Prisijungimo laikas baig\u0117si. Bandykite dar kart\u0105.
|
||||
missingFirstNameMessage=Pra\u0161ome \u012fvesti vard\u0105.
|
||||
missingLastNameMessage=Pra\u0161ome \u012fvesti pavard\u0119.
|
||||
missingEmailMessage=Pra\u0161ome \u012fvesti el. pa\u0161to adres\u0105.
|
||||
missingUsernameMessage=Pra\u0161ome \u012fvesti naudotojo vard\u0105.
|
||||
missingPasswordMessage=Pra\u0161ome \u012fvesti slapta\u017eod\u012f.
|
||||
missingTotpMessage=Pra\u0161ome \u012fvesti autentifikacijos kod\u0105.
|
||||
notMatchPasswordMessage=Slapta\u017eod\u017eiai nesutampa.
|
||||
invalidPasswordExistingMessage=Neteisingas dabartinis slapta\u017eodis.
|
||||
invalidPasswordConfirmMessage=Pakartotas slapta\u017eodis nesutampa.
|
||||
invalidTotpMessage=Neteisingas autentifikacijos kodas.
|
||||
usernameExistsMessage=Toks naudotojas jau egzistuoja.
|
||||
emailExistsMessage=El. pa\u0161to adresas jau egzistuoja.
|
||||
federatedIdentityExistsMessage=Naudotojas {0} {1} jau egzistuoja. Pra\u0161ome prsijungti prie naudotoj\u0173 valdymo posistem\u0117s paskyr\u0173 susiejimui.
|
||||
confirmLinkIdpTitle=Paskyra jau egzistuoja
|
||||
federatedIdentityConfirmLinkMessage=Naudotojas {0} {1} jau egzistuoja. Ar t\u0119sti?
|
||||
federatedIdentityConfirmReauthenticateMessage=Prisijunkite nor\u0117dami susieti paskyr\u0105 su {0}
|
||||
confirmLinkIdpReviewProfile=Per\u017ei\u016br\u0117ti naudotojo profilio informacij\u0105
|
||||
confirmLinkIdpContinue=Susieti su egzistuojan\u010dia paskyra
|
||||
configureTotpMessage=Paskyros aktyvavimui Jums reikalingas Mobilus autentifikatorius.
|
||||
updateProfileMessage=Paskyros aktyvavimui Jums reikia atnaujinti profilio informacij\u0105.
|
||||
updatePasswordMessage=Paskyros aktyvavimui Jums reikia pakeisti slapta\u017eod\u012f.
|
||||
verifyEmailMessage=Paskyros aktyvavimui Jums reikia patvirtinti el. pa\u0161to adres\u0105.
|
||||
linkIdpMessage=El. pa\u0161to adreso susiejimui su J\u016bsu paskyra {0} reikalingas patvirtinimas.
|
||||
emailSentMessage=Netrukus tur\u0117tum\u0117te gauti el. pa\u0161to adres\u0105 su instrukcijomis.
|
||||
emailSendErrorMessage=Klaida siun\u010diant el. pa\u0161t\u0105, bandykite v\u0117liau.
|
||||
accountUpdatedMessage=J\u0173s\u0173 paskyros informacija atnaujinta.
|
||||
accountPasswordUpdatedMessage=J\u016bs\u0173 slapta\u017eodis pakeistas.
|
||||
noAccessMessage=Prieiga negalima
|
||||
invalidPasswordMinLengthMessage=Neteisingas slapta\u017eodis\: privalomi bent {0} simboliai.
|
||||
invalidPasswordMinDigitsMessage=Neteisingas slapta\u017eodis\: privalomi bent {0} skaitmenys.
|
||||
invalidPasswordMinLowerCaseCharsMessage=Neteisingas slapta\u017eodis\: privalomos bent {0} ma\u017eosios raid\u0117s.
|
||||
invalidPasswordMinUpperCaseCharsMessage=Neteisingas slapta\u017eodis\: privalomos bent {0} did\u017eiosios raid\u0117s.
|
||||
invalidPasswordMinSpecialCharsMessage=Neteisingas slapta\u017eodis\: privalomi bent {0} special\u016bs simboliai.
|
||||
invalidPasswordNotUsernameMessage=Neteisingas slapta\u017eodis\: negali sutapti su naudotojo vardu.
|
||||
invalidPasswordRegexPatternMessage=Neteisingas slapta\u017eodis\: neatitinka regexp taisykl\u0117s.
|
||||
invalidPasswordHistoryMessage=Neteisingas slapta\u017eodis\: negali sutapti su prie\u0161 tai naudotais {0} slapta\u017eod\u017eiais.
|
||||
failedToProcessResponseMessage=Klaida apdorojant atsakym\u0105
|
||||
httpsRequiredMessage=Privalomas HTTPS
|
||||
realmNotEnabledMessage=Srities galiojimas i\u0161jungtas
|
||||
invalidRequestMessage=Neteisinga u\u017eklausa
|
||||
failedLogout=Nepavyko u\u017ebaigti sesijos
|
||||
unknownLoginRequesterMessage=Ne\u017einomas prisijungimo pra\u0161ytojas
|
||||
loginRequesterNotEnabledMessage=Prisijungimo pra\u0161ytojo galiojimas i\u0161jungtas
|
||||
bearerOnlyMessage=Programos, sukonfig\u016bruotos tik kaip perdav\u0117jai, negali inicijuoti prisijungim\u0105 per nar\u0161ykl\u0119.
|
||||
standardFlowDisabledMessage=Su pateiktu atsakymo tipu prisijungimas per nar\u0161ykl\u0119 \u0161iam klientui negalimas. \u0160iam klientui ne\u012fgalinta standartin\u0117 seka.
|
||||
implicitFlowDisabledMessage=Su pateiktu atsakymo tipu prisijungimas per nar\u0161ykl\u0119 \u0161iam klientui negalimas. \u0160iam klientui ne\u012fgalinta i\u0161reik\u0161tin\u0117 seka.
|
||||
invalidRedirectUriMessage=Neteisinga nukreipimo nuoroda
|
||||
unsupportedNameIdFormatMessage=Nepalaikomas NameIDFormat
|
||||
invalidRequesterMessage=Neteisingas pra\u0161ytojas
|
||||
registrationNotAllowedMessage=Registracija negalima
|
||||
resetCredentialNotAllowedMessage=Prisijungimo duomen\u0173 atk\u016brimas negalimas
|
||||
permissionNotApprovedMessage=Teis\u012f nepatvirtinta.
|
||||
noRelayStateInResponseMessage=Tapatyb\u0117s teik\u0117jo atsakyme tr\u016bksta perdavimo b\u016bsenos.
|
||||
insufficientPermissionMessage=Tr\u016bksta teisi\u0173 tapatybi\u0173 susiejimui.
|
||||
couldNotProceedWithAuthenticationRequestMessage=Nepavyksta prad\u0117ti tapatyb\u0117s teik\u0117jo autentifikacijos u\u017eklausos.
|
||||
couldNotObtainTokenMessage=Negaunamas prieigos raktas i\u0161 tapatyb\u0117s teik\u0117jo.
|
||||
unexpectedErrorRetrievingTokenMessage=Prieigos rak\u0161o gavimo i\u0161 tapatyb\u0117s teik\u0117jo metu \u012fvyko netik\u0117ta klaida.
|
||||
unexpectedErrorHandlingResponseMessage=Tapatyb\u0117s teik\u0117jo atsakymo apdorojimo metu \u012fvyko netik\u0117ta klaida.
|
||||
identityProviderAuthenticationFailedMessage=Autentifikacijos klaida. Nepavyksta autentifikacija su tapatyb\u0117s teik\u0117ju.
|
||||
couldNotSendAuthenticationRequestMessage=Tapatyb\u0117s teik\u0117jui nepavyksta nusi\u0173sti autentifikacijos u\u017eklausos.
|
||||
unexpectedErrorHandlingRequestMessage=U\u017eklausos tapatyb\u0117s teik\u0117jui formavimo metu \u012fvyko netik\u0117ta klaida.
|
||||
invalidAccessCodeMessage=Neteisingas prieigos kodas.
|
||||
sessionNotActiveMessage=Sesija neaktyvi.
|
||||
invalidCodeMessage=\u012evyko klaida. Pra\u0161ome bandyti prisijungti dar kart\u0105.
|
||||
identityProviderUnexpectedErrorMessage=Autentifikavimo su i\u0161oriniu tapatyb\u0117s teik\u0117ju metu \u012fvyko netik\u0117ta klaida.
|
||||
identityProviderNotFoundMessage=Su nurodytu identifikatoriumi nerastas tapatyb\u0117s teik\u0117jas.
|
||||
identityProviderLinkSuccess=J\u016bs\u0173 naudotojo paskyra buvo s\u0117kmingai susieta su {0} paskyra {1} .
|
||||
staleCodeMessage=\u0160is puslapis nebegalioja. Pra\u0161ome gr\u012f\u017eti \u012f program\u0105 ir bandyti prisijungti i\u0161 naujo.
|
||||
realmSupportsNoCredentialsMessage=Sritis nepalaiko prisijungim\u0173 naudojant prisijungimo duomenis.
|
||||
identityProviderNotUniqueMessage=Sritis palaiko daugiau nei vien\u0105 tapatyb\u0117s teik\u0117j\u0105. Negalima nustatyti kuris tapatyb\u0117s teik\u0117jas turi b\u016bti naudojamas autentifikacijai.
|
||||
emailVerifiedMessage=J\u016bs\u0173 el. pa\u0161to adresas patvirtintas.
|
||||
staleEmailVerificationLink=Nuoroda, kuri\u0105 paspaud\u0117te nebegalioja? Galb\u016bt J\u016bs jau patvirtinote el. pa\u0161to adres\u0105?
|
||||
backToApplication=« Gr\u012f\u017eti \u012f program\u0105
|
||||
missingParameterMessage=Nenurodytas parametras\: {0}
|
||||
clientNotFoundMessage=Nenurodytas klientas.
|
||||
clientDisabledMessage=Kliento galiojimas i\u0161jungtas.
|
||||
invalidParameterMessage=Neteisingas parametras\: {0}
|
||||
alreadyLoggedIn=J\u016bs jau esate prisijung\u0119.
|
||||
shouldBeEqual={0} tur\u0117t\u0173 b\u016bti lygus {1}
|
||||
shouldBeDifferent={0} tur\u0117t\u0173 skirtis nuo {1}
|
||||
shouldMatchPattern=\u0160ablonas tur\u0117t\u0173 atitikti\: `/{0}/`
|
||||
mustBeAnInteger=Turi b\u016bti sveikasis skai\u010dius
|
||||
notAValidOption=Netinkama parinktis
|
||||
selectAnOption=Pasirinkite parinkt\u012f
|
||||
remove=Pa\u0161alinti
|
||||
addValue=Prid\u0117ti reik\u0161m\u0119
|
||||
languages=Kalbos
|
@ -0,0 +1,212 @@
|
||||
|
||||
doLogIn=Piesl\u0113gties
|
||||
doRegister=Re\u0123istr\u0113ties
|
||||
doRegisterSecurityKey=Re\u0123istr\u0113ties
|
||||
doCancel=Atcelt
|
||||
doSubmit=Iesniegt
|
||||
doBack=Atpaka\u013c
|
||||
doYes=J\u0101
|
||||
doNo=N\u0113
|
||||
doContinue=Turpin\u0101t
|
||||
doIgnore=Ignor\u0113t
|
||||
doAccept=Pie\u0146emt
|
||||
doDecline=Atteikties
|
||||
doForgotPassword=Aizmirs\u0101t paroli?
|
||||
doClickHere=Spiediet \u0161eit
|
||||
doImpersonate=Uzdoties
|
||||
doTryAgain=M\u0113\u0123in\u0101t v\u0113lreiz
|
||||
doTryAnotherWay=M\u0113\u0123in\u0101t cit\u0101 veid\u0101
|
||||
doConfirmDelete=Apstiprin\u0101t dz\u0113\u0161anu
|
||||
errorDeletingAccount=K\u013c\u016bda dz\u0113\u0161ot kontu
|
||||
deletingAccountForbidden=Jums nav pie\u0161\u0137irtas at\u013caujas sava konta dz\u0113\u0161anai, sazinieties ar administratoru.
|
||||
kerberosNotConfigured=Kerberos nav konfigur\u0113ts
|
||||
kerberosNotConfiguredTitle=Kerberos nav konfigur\u0113ts
|
||||
bypassKerberosDetail=J\u016bs neesat piesl\u0113dzies izmantojot Kerberos vai j\u016bsu p\u0101rl\u016bks nav iestat\u012bts Kerberos autentifik\u0101cijai. Spiediet turpin\u0101t, lai piesl\u0113gtos cit\u0101 veid\u0101
|
||||
kerberosNotSetUp=Kerberos nav uzst\u0101d\u012bts. J\u016bs nevarat piesl\u0113gties.
|
||||
registerTitle=Re\u0123istr\u0101cija
|
||||
loginAccountTitle=Piesl\u0113gties savam kontam
|
||||
loginTitle=Piesl\u0113gties {0}
|
||||
loginTitleHtml={0}
|
||||
impersonateTitle={0} uzdoties par lietot\u0101ju
|
||||
impersonateTitleHtml=<strong>{0}</strong> uzdoties par lietot\u0101ju
|
||||
realmChoice=Realm
|
||||
unknownUser=Nezin\u0101ms lietot\u0101js
|
||||
loginTotpTitle=Mobil\u0101 autentifikatora uzst\u0101d\u012b\u0161ana
|
||||
loginProfileTitle=Atjaunot profila inform\u0101ciju
|
||||
loginIdpReviewProfileTitle=Atjaunot konta inform\u0101cija
|
||||
loginTimeout=J\u016bs p\u0101r\u0101k ilgi piesl\u0113dzaties. Piesl\u0113g\u0161an\u0101s process tiks s\u0101kts no jauna.
|
||||
oauthGrantTitle=Pie\u0161\u0137irt at\u013cauju {0}
|
||||
oauthGrantTitleHtml={0}
|
||||
errorTitle=Notikusi k\u013c\u016bme...
|
||||
errorTitleHtml=Notikusi <strong>k\u013c\u016bme</strong> ...
|
||||
emailVerifyTitle=E-pasta apstiprin\u0101\u0161ana
|
||||
emailForgotTitle=Aizmirs\u0101t paroli?
|
||||
updatePasswordTitle=Atjaunot paroli
|
||||
codeSuccessTitle=Kods
|
||||
codeErrorTitle=K\u013c\u016bdas kods\: {0}
|
||||
displayUnsupported=Piepras\u012btais att\u0113lo\u0161anas veids netiek atbalst\u012bts
|
||||
browserRequired=Nepiecie\u0161ama piesl\u0113g\u0161an\u0101s caur p\u0101rl\u016bku
|
||||
browserContinue=Nepiecie\u0161ama piesl\u0113g\u0161an\u0101s caur p\u0101rl\u016bku, lai turpin\u0101tu autentifik\u0101ciju
|
||||
browserContinuePrompt=Vai atv\u0113rt p\u0101rl\u016bku lai turpin\u0101tu piesl\u0113g\u0161anos? [y/n]\:
|
||||
browserContinueAnswer=y
|
||||
termsTitle=Noteikumi un nosac\u012bjumi
|
||||
termsText=
|
||||
termsPlainText=Noteikumi un nosac\u012bjumi j\u0101nosaka
|
||||
recaptchaFailed=Nekorekts Recaptcha
|
||||
recaptchaNotConfigured=Recaptcha ir oblig\u0101ts, bet nav uzst\u0101d\u012bts
|
||||
consentDenied=Piekri\u0161ana liegta.
|
||||
noAccount=Jauns lietot\u0101js?
|
||||
username=Lietot\u0101jv\u0101rds
|
||||
usernameOrEmail=Lietot\u0101jv\u0101rds vai e-pasts
|
||||
firstName=V\u0101rds
|
||||
givenName=V\u0101rds
|
||||
fullName=Pilns v\u0101rds
|
||||
lastName=Uzv\u0101rds
|
||||
familyName=Uzv\u0101rds
|
||||
email=E-pasts
|
||||
password=Parole
|
||||
passwordConfirm=Parole atk\u0101rtoti
|
||||
passwordNew=Jauna parole
|
||||
passwordNewConfirm=Jauna parole atk\u0101rtoti
|
||||
rememberMe=Atcer\u0113ties mani
|
||||
authenticatorCode=Vienreiz\u0113j\u0101 parole
|
||||
address=Adrese
|
||||
street=Iela
|
||||
locality=Pils\u0113ta
|
||||
region=Novads vai re\u0123ions
|
||||
postal_code=Pasta indegs
|
||||
country=Valsts
|
||||
emailVerified=E-pasts apstiprin\u0101ts
|
||||
website=T\u012bmek\u013ca vietne
|
||||
phoneNumber=T\u0101lru\u0146a numurs
|
||||
phoneNumberVerified=T\u0101lru\u0146a numurs apstiprin\u0101ts
|
||||
gender=Dzimums
|
||||
birthday=Dzim\u0161anas datums
|
||||
zoneinfo=Laika josla
|
||||
gssDelegationCredential=GSS deleg\u0101cijas atsl\u0113ga
|
||||
logoutOtherSessions=Atteikties no vis\u0101m ier\u012bc\u0113m
|
||||
profileScopeConsentText=Lietot\u0101ja profils
|
||||
emailScopeConsentText=E-pasta adrese
|
||||
addressScopeConsentText=Adrese
|
||||
phoneScopeConsentText=T\u0101lrunis
|
||||
offlineAccessScopeConsentText=Bezsaustes piek\u013cuve
|
||||
samlRoleListScopeConsentText=Manas lomas
|
||||
rolesScopeConsentText=Lietot\u0101ju lomas
|
||||
restartLoginTooltip=Atk\u0101rtot piesl\u0113g\u0161anos
|
||||
emailVerifyInstruction1=E-pasts ar instrukcij\u0101m e-pasta apstiprin\u0101\u0161anai ir nos\u016bt\u012bts
|
||||
emailVerifyInstruction2=Nesa\u0146\u0113m\u0101t apsiptin\u0101\u0161anas kodu sav\u0101 e-past\u0101?
|
||||
emailVerifyInstruction3=lai atk\u0101rtoti nos\u016bt\u012btu e-pastu.
|
||||
emailLinkIdpTitle=Saist\u012bt {0}
|
||||
emailLinkIdp1=E-pasts ar instrukcij\u0101m, lai saist\u012btu {0} kontu {1} ar savu {2} kontu ir nos\u016bt\u012bts.
|
||||
emailLinkIdp2=Nesa\u0146\u0113m\u0101t apsiptin\u0101\u0161anas kodu sav\u0101 e-past\u0101?
|
||||
emailLinkIdp3=lai atk\u0101rtoti nos\u016bt\u012btu e-pastu.
|
||||
emailLinkIdp4=Ja j\u016bs jau apstiprin\u0101j\u0101t e-pastu cit\u0101 p\u0101rl\u016bk\u0101
|
||||
emailLinkIdp5=lai turpin\u0101tu.
|
||||
backToLogin=« Atpaka\u013c uz piesl\u0113g\u0161anos
|
||||
emailInstruction=Ievadiet lietot\u0101jv\u0101rdu vai e-pasta adresi un m\u0113s nos\u016bt\u012bsim jums instrukcijas k\u0101 izveidot jaunu paroli.
|
||||
copyCodeInstruction=L\u016bdzu nokop\u0113jiet \u0161o kodu un iel\u012bm\u0113jiet sav\u0101 lietojumprogramm\u0101\:
|
||||
pageExpiredTitle=Lapa ir beigusies
|
||||
pageExpiredMsg1=Lai ats\u0101ktu piesl\u0113g\u0161an\u0101s procesu
|
||||
pageExpiredMsg2=Lai turpin\u0101tu piesl\u0113g\u0161an\u0101s procesu
|
||||
personalInfo=Personisk\u0101 inform\u0101cija\:
|
||||
role_admin=Administrators
|
||||
role_realm-admin=Realm administrators
|
||||
role_create-realm=Izveidot realm
|
||||
role_view-realm=Skat\u012bt realm
|
||||
role_view-users=Skat\u012bt lieto\u0101jus
|
||||
role_view-applications=Skat\u012bt lietojumprogrammas
|
||||
role_view-clients=Skat\u012bt klientus
|
||||
role_view-events=Skat\u012bt notikumus
|
||||
role_view-identity-providers=Skat\u012bt identit\u0101tes sniedz\u0113jus
|
||||
role_manage-realm=P\u0101rvald\u012bt realm
|
||||
role_manage-users=P\u0101rvald\u012bt lietot\u0101jus
|
||||
role_manage-applications=P\u0101rvald\u012bt lietojumprogrammas
|
||||
role_manage-identity-providers=P\u0101rvald\u012bt identit\u0101tes sniedz\u0113jus
|
||||
role_manage-clients=P\u0101rvald\u012bt klientus
|
||||
role_manage-events=P\u0101rvald\u012bt notikumus
|
||||
role_view-profile=Skat\u012bt profilu
|
||||
role_manage-account=P\u0101rvald\u012bt kontu
|
||||
role_manage-account-links=P\u0101rvald\u012bt konta saites
|
||||
role_read-token=Las\u012bt talonu (token)
|
||||
role_offline-access=Bezsaistes piek\u013cuve
|
||||
role_uma_authorization=Ieg\u016bt at\u013caujas
|
||||
client_account=Konts
|
||||
client_security-admin-console=Dro\u0161\u012bbas administr\u0101cijas konsole
|
||||
client_admin-cli=Administr\u0101cijas CLI
|
||||
client_realm-management=Realm p\u0101rvald\u012bba
|
||||
client_broker=Brokeris
|
||||
invalidUserMessage=Nekorekts lietot\u0101jv\u0101rds vai parole.
|
||||
invalidEmailMessage=Nekorekta e-pasta adrese.
|
||||
accountDisabledMessage=Konts ir atsp\u0113jots, sazinieties ar administratoru.
|
||||
accountTemporarilyDisabledMessage=Konts ir uz laiku atsp\u0113jots, sazinieties ar administratoru vai m\u0113\u0123iniet v\u0113l\u0101k.
|
||||
expiredCodeMessage=Piesl\u0113g\u0161an\u0101s noilgums. L\u016bdzu piesl\u0113dzieties atk\u0101rtoti.
|
||||
expiredActionMessage=Darb\u012bba noilgusi. L\u016bdzu turpiniet ar piesl\u0113g\u0161anos.
|
||||
expiredActionTokenNoSessionMessage=Darb\u012bba noilgusi.
|
||||
expiredActionTokenSessionExistsMessage=Darb\u012bba noilgusi. L\u016bdzu uzs\u0101ciet to no jauna.
|
||||
missingFirstNameMessage=L\u016bdzu nor\u0101di v\u0101rdu.
|
||||
missingLastNameMessage=L\u016bdzu nor\u0101di uzv\u0101rdu.
|
||||
missingEmailMessage=L\u016bdzu nor\u0101di e-pastu.
|
||||
missingUsernameMessage=L\u016bdzu nor\u0101di lietot\u0101jv\u0101rdu.
|
||||
missingPasswordMessage=L\u016bdzu nor\u0101di paroli.
|
||||
notMatchPasswordMessage=Paroles nesakr\u012bt.
|
||||
invalidPasswordExistingMessage=Nekorekta pa\u0161reiz\u0113j\u0101 parole.
|
||||
invalidPasswordBlacklistedMessage=Nekorekta parole\: parole ir melnaj\u0101 sarakst\u0101.
|
||||
invalidPasswordConfirmMessage=Paroles apstiprin\u0101jums nav pareizs.
|
||||
usernameExistsMessage=Lietot\u0101jv\u0101rds jau eksist\u0113.
|
||||
emailExistsMessage=E-pasts jau eksist\u0113.
|
||||
federatedIdentityExistsMessage=Lietot\u0101jv\u0101rds ar {0} {1} jau eksist\u0113. L\u016bdzu piesl\u0113dzieties konta p\u0101rvaldniekam lai savienotu kontus.
|
||||
confirmLinkIdpTitle=Konts jau eksist\u0113
|
||||
federatedIdentityConfirmLinkMessage=Konts ar {0} {1} jau eksist\u0113. K\u0101 v\u0113lies turpin\u0101t?
|
||||
federatedIdentityConfirmReauthenticateMessage=Piesl\u0113dzieties ar {0}, lai savienotu kontu ar {1}
|
||||
confirmLinkIdpReviewProfile=P\u0101rskat\u012bt profilu
|
||||
confirmLinkIdpContinue=Pievienot eksist\u0113jo\u0161am kontam
|
||||
accountUpdatedMessage=J\u016bsu konts ir atjaunots.
|
||||
accountPasswordUpdatedMessage=J\u016bsu parole ir atjaunota.
|
||||
delegationCompleteHeader=Piesl\u0113g\u0161an\u0101s veiksm\u012bga
|
||||
delegationCompleteMessage=J\u016bs varat aizv\u0113rt \u0161o p\u0101rl\u016bka logu un doties atpaka\u013c uz konsoles lietojumprogrammu.
|
||||
delegationFailedHeader=Piesl\u0113g\u0161an\u0101s neizdev\u0101s
|
||||
delegationFailedMessage=J\u016bs varat aizv\u0113rt \u0161o p\u0101rl\u016bka logu un doties atpaka\u013c uz konsoles lietojumprogrammu un m\u0113\u0123in\u0101t piesl\u0113gties atk\u0101rtoti.
|
||||
noAccessMessage=Nav piek\u013cuves
|
||||
invalidPasswordMinLengthMessage=Nekorekta parole\: minim\u0101lais paroles garums {0}.
|
||||
invalidPasswordMinDigitsMessage=Nekorekta parole\: tai j\u0101satur vismaz {0} cipari.
|
||||
invalidPasswordMinLowerCaseCharsMessage=Nekorekta parole\: tai j\u0101satur vismaz {0} mazie burti.
|
||||
invalidPasswordMinUpperCaseCharsMessage=Nekorekta parole\: tai j\u0101satur vismaz {0} lielie burti.
|
||||
invalidPasswordMinSpecialCharsMessage=Nekorekta parole\: tai j\u0101satur vismaz {0} speci\u0101lie simboli.
|
||||
invalidPasswordNotUsernameMessage=Nekorekta parole\: t\u0101 nedr\u012bkst sakrist ar lietot\u0101jv\u0101rdu.
|
||||
invalidPasswordRegexPatternMessage=Nekorekta parole\: netabilst regex \u0161ablonam(iem).
|
||||
invalidPasswordHistoryMessage=Nekorekta parole\: nedr\u012bkst b\u016bt vien\u0101da ar iepriek\u0161\u0113j\u0101m {0} parol\u0113m.
|
||||
invalidPasswordGenericMessage=Nekorekta parole\: jaun\u0101 parole neatbilst paroles noteikumiem.
|
||||
backToApplication=« Atpaka\u013c uz lietojumprogrammu
|
||||
missingParameterMessage=Tr\u016bkst parametru\: {0}
|
||||
clientNotFoundMessage=Klients nav atrasts.
|
||||
clientDisabledMessage=Klients atsp\u0113jos.
|
||||
invalidParameterMessage=Nekorekts parametrs\: {0}
|
||||
alreadyLoggedIn=Tu jau esi piesl\u0113dzies.
|
||||
differentUserAuthenticated=J\u016bs jau esat piesl\u0113dzies ar citu lietot\u0101ju ''{0}'' \u0161aj\u0101 sesij\u0101. L\u016bdzu vispirms atsl\u0113gties.
|
||||
proceedWithAction=\u00bb Spiediet \u0161eit lai turpin\u0101tu
|
||||
requiredAction.CONFIGURE_TOTP=Konfigur\u0113t OTP
|
||||
requiredAction.TERMS_AND_CONDITIONS=Noteikumi un nosac\u012bjumi
|
||||
requiredAction.UPDATE_PASSWORD=Atjaunot paroli
|
||||
requiredAction.UPDATE_PROFILE=Atjaunot profilu
|
||||
requiredAction.VERIFY_EMAIL=Apstiprin\u0101t e-pastu
|
||||
pageNotFound=Lapa nav atrasta
|
||||
internalServerError=Notikusi servera k\u013c\u016bme
|
||||
console-username=Lietot\u0101jv\u0101rds\:
|
||||
console-password=Parole\:
|
||||
console-otp=Vienreiz\u0113j\u0101 parole\:
|
||||
console-new-password=Jauna parole\:
|
||||
console-confirm-password=Parole atk\u0101rtoti\:
|
||||
console-update-password=Jums ir j\u0101atjauno parole.
|
||||
console-verify-email=Jums ir j\u0101apstiprina e-pasta adrese. E-pasts tika nos\u016bt\u012bts uz {0}, kas satur apstiprin\u0101juma kodu. L\u016bdzu ievadiet \u0161o kodu ievadlauk\u0101 zem\u0101k.
|
||||
console-email-code=E-pasta kods\:
|
||||
console-accept-terms=Piekrist noteikumiem? [y/n]\:
|
||||
console-accept=y
|
||||
shouldBeEqual={0} j\u0101b\u016bt vien\u0101dam ar {1}
|
||||
shouldBeDifferent={0} j\u0101b\u016bt at\u0161\u0137ir\u012bgam no {1}
|
||||
shouldMatchPattern=Mustrim j\u0101sakr\u012bt\: `/{0}/`
|
||||
mustBeAnInteger=J\u0101b\u016bt veselam skaitlim
|
||||
notAValidOption=Nav der\u012bga opcija
|
||||
selectAnOption=Izv\u0113lieties opciju
|
||||
remove=No\u0146emt
|
||||
addValue=Pievienot v\u0113rt\u012bbu
|
||||
languages=Valodas
|
@ -0,0 +1,283 @@
|
||||
|
||||
doLogIn=Inloggen
|
||||
doRegister=Registreer
|
||||
doRegisterSecurityKey=Registreer
|
||||
doCancel=Annuleer
|
||||
doSubmit=Verzenden
|
||||
doBack=Terug
|
||||
doYes=Ja
|
||||
doNo=Nee
|
||||
doContinue=Doorgaan
|
||||
doIgnore=Negeer
|
||||
doAccept=Accepteren
|
||||
doDecline=Afwijzen
|
||||
doForgotPassword=Wachtwoord vergeten?
|
||||
doClickHere=Klik hier
|
||||
doImpersonate=Identiteit overnemen
|
||||
doTryAgain=Probeer opnieuw
|
||||
doTryAnotherWay=Probeer op een ander manier
|
||||
doConfirmDelete=Bevestig verwijderen
|
||||
errorDeletingAccount=Onverwachte fout bij het verwijderen van account
|
||||
deletingAccountForbidden=U heeft onvoldoende rechten om dit account te verwijderen, neem contact op met beheer.
|
||||
kerberosNotConfigured=Kerberos is niet geconfigureerd
|
||||
kerberosNotConfiguredTitle=Kerberos is niet geconfigureerd
|
||||
bypassKerberosDetail=U bent niet ingelogd via Kerberos of uw browser kan niet met Kerberos inloggen. Klik op ''doorgaan'' om via een andere manier in te loggen
|
||||
kerberosNotSetUp=Kerberos is onjuist geconfigureerd. U kunt niet inloggen.
|
||||
registerTitle=Registreer
|
||||
loginAccountTitle=Inloggen met uw account
|
||||
loginTitle=Log in met {0}
|
||||
loginTitleHtml={0}
|
||||
impersonateTitle={0} Identiteit overnemen
|
||||
impersonateTitleHtml=<strong>{0}</strong> Identiteit overnemen
|
||||
realmChoice=Realm
|
||||
unknownUser=Onbekende gebruiker
|
||||
loginTotpTitle=Mobiele Authenticator Instellen
|
||||
loginProfileTitle=Update accountinformatie
|
||||
loginTimeout=U bent te lang bezig geweest met inloggen. Het inlogproces begint opnieuw.
|
||||
reauthenticate=Log opnieuw in om verder te gaan
|
||||
oauthGrantTitle=Verleen Toegang
|
||||
oauthGrantTitleHtml={0}
|
||||
errorTitle=Er is een fout opgetreden...
|
||||
errorTitleHtml=Er is een fout opgetreden...
|
||||
emailVerifyTitle=E-mailadres-verificatie
|
||||
emailForgotTitle=Wachtwoord vergeten?
|
||||
updatePasswordTitle=Wachtwoord updaten
|
||||
codeSuccessTitle=Succescode
|
||||
codeErrorTitle=Foutcode\: {0}
|
||||
displayUnsupported=Opgevraagde weergave type is niet ondersteund
|
||||
browserRequired=Om in te loggen is een browser vereist
|
||||
browserContinue=Om het loginproces af te ronden is een browser vereist
|
||||
browserContinuePrompt=Open een browser en ga door met inloggen? [y/n]\:
|
||||
browserContinueAnswer=y
|
||||
termsTitle=Voorwaarden
|
||||
termsText=
|
||||
termsPlainText=Voorwaarden
|
||||
recaptchaFailed=Ongeldige Recaptcha
|
||||
recaptchaNotConfigured=Recaptcha is verplicht, maar niet geconfigureerd
|
||||
consentDenied=Toestemming geweigerd.
|
||||
noAccount=Nieuwe gebruiker?
|
||||
username=Gebruikersnaam
|
||||
usernameOrEmail=Gebruikersnaam of e-mailadres
|
||||
firstName=Voornaam
|
||||
givenName=Voornaam
|
||||
fullName=Volledige naam
|
||||
lastName=Achternaam
|
||||
familyName=Familienaam
|
||||
email=E-mailadres
|
||||
password=Wachtwoord
|
||||
passwordConfirm=Bevestig wachtwoord
|
||||
passwordNew=Nieuw wachtwoord
|
||||
passwordNewConfirm=Bevestiging nieuwe wachtwoord
|
||||
rememberMe=Ingelogd blijven
|
||||
authenticatorCode=Authenticatiecode
|
||||
address=Adres
|
||||
street=Straat
|
||||
locality=Woonplaats
|
||||
region=Provincie of regio
|
||||
postal_code=Postcode
|
||||
country=Land
|
||||
emailVerified=E-mailadres geverifieerd
|
||||
gssDelegationCredential=GSS delegatie Credential
|
||||
profileScopeConsentText=Gebruikersprofiel
|
||||
emailScopeConsentText=E-mailadres
|
||||
addressScopeConsentText=Adres
|
||||
phoneScopeConsentText=Telefoonnummer
|
||||
offlineAccessScopeConsentText=Offline toegang
|
||||
samlRoleListScopeConsentText=Mijn rollen
|
||||
rolesScopeConsentText=Gebruikersrollen
|
||||
loginTotpIntro=U bent verplicht om tweefactor-authenticatie in te stellen om dit account te kunnen gebruiken
|
||||
loginTotpStep1=Installeer een van de volgende applicaties op uw mobile telefoon
|
||||
loginTotpStep2=Open de applicatie en scan de barcode
|
||||
loginTotpStep3=Voer de eenmalige code die door de applicatie is aangeleverd in en klik op ''Verzenden'' om de setup te voltooien
|
||||
loginTotpManualStep2=Open de applicatie en voer de sleutel in
|
||||
loginTotpManualStep3=Gebruik de volgende configuratiewaarden (als de applicatie dit ondersteund)
|
||||
loginTotpUnableToScan=Lukt het scannen niet?
|
||||
loginTotpScanBarcode=Scan barcode?
|
||||
loginOtpOneTime=Eenmalige code
|
||||
loginTotpType=Type
|
||||
loginTotpAlgorithm=Algoritme
|
||||
loginTotpDigits=Cijfers
|
||||
loginTotpInterval=Interval
|
||||
loginTotpCounter=Teller
|
||||
loginTotpDeviceName=Apparaatnaam
|
||||
loginTotp.totp=Time-based
|
||||
loginTotp.hotp=Counter-based
|
||||
oauthGrantRequest=Wilt u deze toegangsrechten verlenen?
|
||||
inResource=in
|
||||
emailVerifyInstruction1=Een e-mail met instructies om uw e-mailadres te verifi\u00ebren is zojuist verzonden.
|
||||
emailVerifyInstruction2=Heeft u geen verificatiecode ontvangen in uw e-mail?
|
||||
emailVerifyInstruction3=om opnieuw een e-mail te versturen.
|
||||
emailLinkIdpTitle=Link {0}
|
||||
emailLinkIdp1=Er is een e-mail met instructies verzonden om {0} account {1} te koppelen met uw {2} account.
|
||||
emailLinkIdp2=Heeft u geen verificatiecode in uw e-mail ontvangen?
|
||||
emailLinkIdp3=om opnieuw een e-mail te versturen.
|
||||
emailLinkIdp4=Als u deze mail al geverifieerd hebt in een andere browser
|
||||
emailLinkIdp5=om door te gaan.
|
||||
backToLogin=« Terug naar Inloggen
|
||||
emailInstruction=Voer uw gebruikersnaam of e-mailadres in en wij sturen u een e-mailbericht met instructies voor het aanmaken van een nieuw wachtwoord.
|
||||
copyCodeInstruction=Kopieer deze code en plak deze in uw applicatie\:
|
||||
pageExpiredTitle=Sessie is verlopen
|
||||
pageExpiredMsg1=Om het loginproces opnieuw te doen
|
||||
pageExpiredMsg2=Om door te gaan met het loginproces
|
||||
personalInfo=Persoonlijke informatie\:
|
||||
role_admin=Admin
|
||||
role_realm-admin=Realm beheren
|
||||
role_create-realm=Realm aanmaken
|
||||
role_create-client=Client aanmaken
|
||||
role_view-realm=Bekijk realm
|
||||
role_view-users=Bekijk gebruikers
|
||||
role_view-applications=Bekijk applicaties
|
||||
role_view-clients=Bekijk clients
|
||||
role_view-events=Bekijk gebeurtenissen
|
||||
role_view-identity-providers=Bekijk identity providers
|
||||
role_manage-realm=Beheer realm
|
||||
role_manage-users=Gebruikers beheren
|
||||
role_manage-applications=Beheer applicaties
|
||||
role_manage-identity-providers=Beheer identity providers
|
||||
role_manage-clients=Beheer clients
|
||||
role_manage-events=Beheer gebeurtenissen
|
||||
role_view-profile=Profiel bekijken
|
||||
role_manage-account=Beheer account
|
||||
role_manage-account-links=Beheer accountlinks
|
||||
role_read-token=Token lezen
|
||||
role_offline-access=Offline toegang
|
||||
client_account=Account
|
||||
client_security-admin-console=Security Admin Console
|
||||
client_admin-cli=Admin CLI
|
||||
client_realm-management=Realm-beheer
|
||||
client_broker=Broker
|
||||
invalidUserMessage=Ongeldige gebruikersnaam of wachtwoord.
|
||||
invalidEmailMessage=Ongeldig e-mailadres.
|
||||
accountDisabledMessage=Account is uitgeschakeld, neem contact op met beheer.
|
||||
accountTemporarilyDisabledMessage=Account is tijdelijk uitgeschakeld, neem contact op met beheer of probeer het later opnieuw.
|
||||
expiredCodeMessage=Logintijd verlopen. Gelieve opnieuw in te loggen.
|
||||
expiredActionMessage=Actietijd verlopen. Log daarom opnieuw in.
|
||||
expiredActionTokenNoSessionMessage=Actietijd verlopen.
|
||||
expiredActionTokenSessionExistsMessage=Actietijd verlopen. Gelieve de actie opnieuw doen.
|
||||
missingFirstNameMessage=Voer uw voornaam in.
|
||||
missingLastNameMessage=Voer uw achternaam in.
|
||||
missingEmailMessage=Voer uw e-mailadres in.
|
||||
missingUsernameMessage=Voer uw gebruikersnaam in.
|
||||
missingPasswordMessage=Voer uw wachtwoord in.
|
||||
missingTotpMessage=Voer uw authenticatiecode in.
|
||||
notMatchPasswordMessage=Wachtwoorden komen niet overeen.
|
||||
invalidPasswordExistingMessage=Ongeldig bestaand wachtwoord.
|
||||
invalidPasswordBlacklistedMessage=Ongeldig wachtwoord\: wachtwoord is geblacklist.
|
||||
invalidPasswordConfirmMessage=Wachtwoord komt niet overeen met wachtwoordbevestiging.
|
||||
invalidTotpMessage=Ongeldige authenticatiecode.
|
||||
usernameExistsMessage=Gebruikersnaam bestaat al.
|
||||
emailExistsMessage=E-mailadres bestaat al.
|
||||
federatedIdentityExistsMessage=Gebruiker met {0} {1} bestaat al. Log in met het beheerdersaccount om het account te koppelen.
|
||||
confirmLinkIdpTitle=Account bestaat al
|
||||
federatedIdentityConfirmLinkMessage=Gebruiker met {0} {1} bestaat al. Hoe wilt u doorgaan?
|
||||
federatedIdentityConfirmReauthenticateMessage=Authenticeer om uw account te koppelen {0}
|
||||
confirmLinkIdpReviewProfile=Nalopen profiel
|
||||
confirmLinkIdpContinue=Voeg toe aan bestaande account
|
||||
configureTotpMessage=U moet de Mobile Authenticator configuren om uw account te activeren.
|
||||
updateProfileMessage=U moet uw gebruikersprofiel bijwerken om uw account te activeren.
|
||||
updatePasswordMessage=U moet uw wachtwoord wijzigen om uw account te activeren.
|
||||
resetPasswordMessage=U moet uw wachtwoord wijzigen.
|
||||
verifyEmailMessage=U moet uw e-mailadres verifi\u00ebren om uw account te activeren.
|
||||
linkIdpMessage=U moet uw e-mailadres verifi\u00ebren om uw account te koppelen aan {0}.
|
||||
emailSentMessage=U ontvangt binnenkort een e-mail met verdere instructies.
|
||||
emailSendErrorMessage=Het versturen van de e-mail is mislukt, probeer het later opnieuw.
|
||||
accountUpdatedMessage=Uw account is gewijzigd.
|
||||
accountPasswordUpdatedMessage=Uw wachtwoord is gewijzigd.
|
||||
delegationCompleteHeader=Login gelukt
|
||||
delegationCompleteMessage=U mag uw browser sluiten en terug gaan naar uw console applicatie
|
||||
delegationFailedHeader=Login mislukt
|
||||
delegationFailedMessage=U mag uw browser sluiten en terug gaan naar uw console applicatie om daar het loginproces nogmaalt te proberen.
|
||||
noAccessMessage=Geen toegang
|
||||
invalidPasswordMinLengthMessage=Ongeldig wachtwoord, de minimumlengte is {0} karakters.
|
||||
invalidPasswordMinDigitsMessage=Ongeldig wachtwoord, deze moet minstens {0} cijfers bevatten.
|
||||
invalidPasswordMinLowerCaseCharsMessage=Ongeldig wachtwoord, deze moet minstens {0} kleine letters bevatten.
|
||||
invalidPasswordMinUpperCaseCharsMessage=Ongeldig wachtwoord, deze moet minstens {0} hoofdletters bevatten.
|
||||
invalidPasswordMinSpecialCharsMessage=Ongeldig wachtwoord, deze moet minstens {0} speciale tekens bevatten.
|
||||
invalidPasswordNotUsernameMessage=Ongeldig wachtwoord, deze mag niet overeen komen met de gebruikersnaam.
|
||||
invalidPasswordRegexPatternMessage=Ongeldig wachtwoord, deze komt niet overeen met opgegeven reguliere expressie(s).
|
||||
invalidPasswordHistoryMessage=Ongeldig wachtwoord, deze mag niet overeen komen met een van de laatste {0} wachtwoorden.
|
||||
invalidPasswordGenericMessage=Ongeldig wachtwoord\: het nieuwe wachtwoord voldoet niet aan de opgestelde eisen.
|
||||
failedToProcessResponseMessage=Het verwerken van de respons is mislukt
|
||||
httpsRequiredMessage=HTTPS vereist
|
||||
realmNotEnabledMessage=Realm niet geactiveerd
|
||||
invalidRequestMessage=Ongeldige request
|
||||
failedLogout=Afmelden is mislukt
|
||||
unknownLoginRequesterMessage=De login requester is onbekend
|
||||
loginRequesterNotEnabledMessage=De login requester is niet geactiveerd
|
||||
bearerOnlyMessage=Bearer-only applicaties mogen geen browserlogin initi\u00ebren
|
||||
standardFlowDisabledMessage=Client mag geen browserlogin starten met het opgegeven response_type. Standard flow is uitgeschakeld voor de client.
|
||||
implicitFlowDisabledMessage=Client mag geen browserlogin starten met opgegeven response_type. Implicit flow is uitgeschakeld voor de klant.
|
||||
invalidRedirectUriMessage=Ongeldige redirect-URI
|
||||
unsupportedNameIdFormatMessage=Niet-ondersteunde NameIDFormat
|
||||
invalidRequesterMessage=Ongeldige requester
|
||||
registrationNotAllowedMessage=Registratie is niet toegestaan
|
||||
resetCredentialNotAllowedMessage=Het opnieuw instellen van de aanmeldgegevens is niet toegestaan
|
||||
permissionNotApprovedMessage=Recht verworpen.
|
||||
noRelayStateInResponseMessage=Geen relay state in antwoord van de identity provider.
|
||||
insufficientPermissionMessage=Onvoldoende rechten om identiteiten te koppelen.
|
||||
couldNotProceedWithAuthenticationRequestMessage=Het authenticatieverzoek naar de identity provider wordt afgebroken.
|
||||
couldNotObtainTokenMessage=Kon geen token bemachtigen van de identity provider.
|
||||
unexpectedErrorRetrievingTokenMessage=Onverwachte fout bij het ophalen van de token van de identity provider.
|
||||
unexpectedErrorHandlingResponseMessage=Onverwachte fout bij het verwerken van de respons van de identity provider.
|
||||
identityProviderAuthenticationFailedMessage=Verificatie mislukt. Er kon niet worden geauthenticeerd met de identity provider.
|
||||
couldNotSendAuthenticationRequestMessage=Kan het authenticatieverzoek niet verzenden naar de identity provider.
|
||||
unexpectedErrorHandlingRequestMessage=Onverwachte fout bij het verwerken van het authenticatieverzoek naar de identity provider.
|
||||
invalidAccessCodeMessage=Ongeldige toegangscode.
|
||||
sessionNotActiveMessage=Sessie inactief.
|
||||
invalidCodeMessage=Er is een fout opgetreden, probeer nogmaals in te loggen.
|
||||
identityProviderUnexpectedErrorMessage=Onverwachte fout tijdens de authenticatie met de identity provider
|
||||
identityProviderNotFoundMessage=Geen identity provider gevonden met deze naam.
|
||||
identityProviderLinkSuccess=Uw account is met succes gekoppeld aan {0} account {1}.
|
||||
staleCodeMessage=Deze pagina is verlopen. Keer terug naar uw applicatie om opnieuw in te loggen.
|
||||
realmSupportsNoCredentialsMessage=Realm ondersteunt geen enkel soort aanmeldgegeven.
|
||||
identityProviderNotUniqueMessage=Realm ondersteunt meerdere identity providers. Er kon niet bepaald worden welke identity provider er gebruikt zou moeten worden tijdens de authenticatie.
|
||||
emailVerifiedMessage=Uw e-mailadres is geverifieerd.
|
||||
staleEmailVerificationLink=De link die u gebruikt is verlopen, wellicht omdat u uw e-mailadres al eerder geverifieerd heeft.
|
||||
identityProviderAlreadyLinkedMessage=De door {0} teruggegeven gefedereerde identiteit is al aan een andere gebruiker gekoppeld.
|
||||
confirmAccountLinking=Bevestig dat het account {0} van identity provider {1} overeenkomt met uw account.
|
||||
confirmEmailAddressVerification=Bevestig dat e-mailadres {0} valide is.
|
||||
confirmExecutionOfActions=Voer de volgende actie(s) uit
|
||||
backToApplication=« Terug naar de applicatie
|
||||
missingParameterMessage=Missende parameters\: {0}
|
||||
clientNotFoundMessage=Client niet gevonden.
|
||||
clientDisabledMessage=Client is inactief.
|
||||
invalidParameterMessage=Ongeldige parameter\: {0}
|
||||
alreadyLoggedIn=U bent al ingelogd.
|
||||
differentUserAuthenticated=U bent in deze sessie al als de gebruiker "{0}" aangemeld. Log eerst uit.
|
||||
brokerLinkingSessionExpired=Broker account linking aangevraagd, maar de huidige sessie in verlopen.
|
||||
proceedWithAction=» Klik hier om verder te gaan
|
||||
requiredAction.CONFIGURE_TOTP=Configureer OTP
|
||||
requiredAction.TERMS_AND_CONDITIONS=Voorwaarden
|
||||
requiredAction.UPDATE_PASSWORD=Update wachtwoord
|
||||
requiredAction.UPDATE_PROFILE=Update profiel
|
||||
requiredAction.VERIFY_EMAIL=Verifieer e-mail
|
||||
doX509Login=U wordt ingelogd als\:
|
||||
clientCertificate=X509 client certificate\:
|
||||
noCertificate=[No Certificate]
|
||||
pageNotFound=Pagina niet gevonden
|
||||
internalServerError=Er is een interne serverfout opgetreden
|
||||
console-username=Gebruikersnaam\:
|
||||
console-password=Wachtwoord\:
|
||||
console-otp=Eenmalige code\:
|
||||
console-new-password=Nieuw wachtwoord\:
|
||||
console-confirm-password=Bevestig wachtwoord\:
|
||||
console-update-password=Een update van uw wachtwoord is verplicht.
|
||||
console-verify-email=U bent verplicht om uw e-mailadres te verifi\u00ebren. Een e-mail met de verificatiecode is naar {0} gestuurd. Voer deze code hieronder in.
|
||||
console-email-code=E-mail Code\:
|
||||
console-accept-terms=Accepteert u de voorwaarden? [y/n]\:
|
||||
console-accept=y
|
||||
identity-provider-redirector=Gebruik een andere Identity Provider
|
||||
identity-provider-login-label=Of login met
|
||||
idp-email-verification-display-name=E-mail Verificatie
|
||||
idp-email-verification-help-text=Bevestig uw account per e-mail.
|
||||
idp-username-password-form-display-name=Gebruikersnaam en wachtwoord
|
||||
idp-username-password-form-help-text=Bevestig uw account door in te loggen.
|
||||
shouldBeEqual={0} moet gelijk zijn aan {1}
|
||||
shouldBeDifferent={0} moet verschillen van {1}
|
||||
shouldMatchPattern=Patroon moet overeenkomen\: `/{0}/`
|
||||
mustBeAnInteger=Moet een geheel getal zijn
|
||||
notAValidOption=Geen geldige optie
|
||||
selectAnOption=Selecteer een optie
|
||||
remove=Verwijderen
|
||||
addValue=Waarde toevoegen
|
||||
languages=Talen
|
@ -0,0 +1,200 @@
|
||||
|
||||
doLogIn=Logg inn
|
||||
doRegister=Registrer deg
|
||||
doRegisterSecurityKey=Registrer deg
|
||||
doCancel=Avbryt
|
||||
doSubmit=Send inn
|
||||
doYes=Ja
|
||||
doNo=Nei
|
||||
doContinue=Fortsett
|
||||
doAccept=Aksepter
|
||||
doDecline=Avsl\u00e5
|
||||
doForgotPassword=Glemt passord?
|
||||
doClickHere=Klikk her
|
||||
doImpersonate=Utgi deg for \u00e5 v\u00e6re en annen bruker
|
||||
kerberosNotConfigured=Kerberos er ikke konfigurert
|
||||
kerberosNotConfiguredTitle=Kerberos er ikke konfigurert
|
||||
bypassKerberosDetail=Enten er du ikke logget inn via Kerberos eller s\u00e5 st\u00f8tter ikke nettleseren innlogging med Kerberos. Vennligst klikk Fortsett for \u00e5 logge inn p\u00e5 andre m\u00e5ter
|
||||
kerberosNotSetUp=Kerberos er ikke konfigurert. Du kan ikke logge inn.
|
||||
registerWithTitle=Registrer deg med {0}
|
||||
registerWithTitleHtml={0}
|
||||
loginTitle=Logg inn p\u00e5 {0}
|
||||
loginTitleHtml={0}
|
||||
impersonateTitle={0} Gi deg ut for \u00e5 v\u00e6re en annen bruker
|
||||
impersonateTitleHtml=<strong>{0}</strong> Gi deg ut for \u00e5 v\u00e6re en annen bruker
|
||||
realmChoice=Sikkerhetsdomene
|
||||
unknownUser=Ukjent bruker
|
||||
loginTotpTitle=Konfigurer autentifikator for mobil
|
||||
loginProfileTitle=Oppdater konto
|
||||
loginTimeout=Du brukte for lang tid p\u00e5 \u00e5 logge inn. Vennligst pr\u00f8v igjen.
|
||||
oauthGrantTitle=Gi tilgang
|
||||
oauthGrantTitleHtml={0}
|
||||
errorTitle=Vi beklager...
|
||||
errorTitleHtml=Vi <strong>beklager</strong> ...
|
||||
emailVerifyTitle=E-postbekreftelse
|
||||
emailForgotTitle=Glemt passord?
|
||||
updatePasswordTitle=Oppdater passord
|
||||
codeSuccessTitle=Suksesskode
|
||||
codeErrorTitle=Feilkode\: {0}
|
||||
termsTitle=Vilk\u00e5r og betingelser
|
||||
termsTitleHtml=Vilk\u00e5r og betingelser
|
||||
termsText=
|
||||
recaptchaFailed=Ugyldig Bildebekreftelse
|
||||
recaptchaNotConfigured=Bildebekreftelse er p\u00e5krevet, men er ikke konfigurert
|
||||
consentDenied=Samtykke avsl\u00e5tt.
|
||||
noAccount=Ny bruker?
|
||||
username=Brukernavn
|
||||
usernameOrEmail=Brukernavn eller e-postadresse
|
||||
firstName=Fornavn
|
||||
givenName=Fornavn
|
||||
fullName=Fullstendig navn
|
||||
lastName=Etternavn
|
||||
familyName=Etternavn
|
||||
email=E-postadresse
|
||||
password=Passord
|
||||
passwordConfirm=Bekreft passord
|
||||
passwordNew=Nytt passord
|
||||
passwordNewConfirm=Bekreft nytt Passord
|
||||
rememberMe=Husk meg
|
||||
authenticatorCode=Engangskode
|
||||
address=Adresse
|
||||
street=Gate-/veinavn + husnummer
|
||||
locality=By
|
||||
region=Fylke
|
||||
postal_code=Postnummer
|
||||
country=Land
|
||||
emailVerified=E-postadresse bekreftet
|
||||
gssDelegationCredential=GSS legitimasjons-delegering
|
||||
loginTotpStep1=Installer <a href\="https\://freeotp.github.io/" target\="_blank">FreeOTP</a> eller Google Authenticator p\u00e5 din mobiltelefon. Begge applikasjoner er tilgjengelige p\u00e5 <a href\="https\://play.google.com">Google Play</a> og Apple App Store.
|
||||
loginTotpStep2=\u00c5pne applikasjonen og skann strekkoden eller skriv inn koden
|
||||
loginTotpStep3=Skriv inn engangskoden fra applikasjonen og klikk send inn for \u00e5 fullf\u00f8re
|
||||
loginOtpOneTime=Engangskode
|
||||
oauthGrantRequest=Vil du gi disse tilgangsrettighetene?
|
||||
inResource=i
|
||||
emailVerifyInstruction1=En e-post med instruksjoner for \u00e5 bekrefte din e-postadresse har blitt sendt til deg.
|
||||
emailVerifyInstruction2=Ikke mottatt en bekreftelseskode i e-posten vi sendte til deg?
|
||||
emailVerifyInstruction3=for \u00e5 sende e-post p\u00e5 nytt.
|
||||
emailLinkIdpTitle=Lenke {0}
|
||||
emailLinkIdp1=En e-post med instruksjoner for \u00e5 koble {0} konto med din {2} konto har blitt sendt til deg.
|
||||
emailLinkIdp2=Ikke mottatt en bekreftelseskode i e-posten vi sendte til deg?
|
||||
emailLinkIdp3=for \u00e5 sende e-post p\u00e5 nytt.
|
||||
backToLogin=« Tilbake til innlogging
|
||||
emailInstruction=Skriv inn e-postadressen din og vi vil sende deg instruksjoner for hvordan du oppretter et nytt passord.
|
||||
copyCodeInstruction=Vennligst kopier denne koden og lim den inn i applikasjonen din\:
|
||||
personalInfo=Personlig informasjon\:
|
||||
role_admin=Administrator
|
||||
role_realm-admin=Administrator for sikkerhetsdomene
|
||||
role_create-realm=Opprette sikkerhetsdomene
|
||||
role_create-client=Opprette klient
|
||||
role_view-realm=Se sikkerhetsdomene
|
||||
role_view-users=Se brukere
|
||||
role_view-applications=Se applikasjoner
|
||||
role_view-clients=Se klienter
|
||||
role_view-events=Se hendelser
|
||||
role_view-identity-providers=Se identitetsleverand\u00f8rer
|
||||
role_manage-realm=Administrere sikkerhetsdomene
|
||||
role_manage-users=Administrere brukere
|
||||
role_manage-applications=Administrere applikasjoner
|
||||
role_manage-identity-providers=Administrere identitetsleverand\u00f8rer
|
||||
role_manage-clients=Administrere klienter
|
||||
role_manage-events=Administrere hendelser
|
||||
role_view-profile=Se profil
|
||||
role_manage-account=Administrere konto
|
||||
role_read-token=Lese token
|
||||
role_offline-access=Frakoblet tilgang
|
||||
role_uma_authorization=Skaffe tillatelser
|
||||
client_account=Konto
|
||||
client_security-admin-console=Sikkerthetsadministrasjonskonsoll
|
||||
client_realm-management=Sikkerhetsdomene-administrasjon
|
||||
client_broker=Broker
|
||||
invalidUserMessage=Ugyldig brukernavn eller passord.
|
||||
invalidEmailMessage=Ugyldig e-postadresse.
|
||||
accountDisabledMessage=Konto er deaktivert, kontakt administrator.
|
||||
accountTemporarilyDisabledMessage=Konto er midlertidig deaktivert, kontakt administrator eller pr\u00f8v p\u00e5 nytt senere.
|
||||
expiredCodeMessage=Login ble tidsavbrutt. Vennligst logg inn p\u00e5 nytt.
|
||||
missingFirstNameMessage=Vennligst oppgi fornavn.
|
||||
missingLastNameMessage=Vennligst oppgi etternavn.
|
||||
missingEmailMessage=Vennligst oppgi e-postadresse.
|
||||
missingUsernameMessage=Vennligst oppgi brukernavn.
|
||||
missingPasswordMessage=Vennligst oppgi passord.
|
||||
missingTotpMessage=Vennligst oppgi autentiseringskode.
|
||||
notMatchPasswordMessage=Passordene er ikke like.
|
||||
invalidPasswordExistingMessage=Ugyldig eksisterende passord.
|
||||
invalidPasswordConfirmMessage=Passord er ikke like.
|
||||
invalidTotpMessage=Ugyldig engangskode.
|
||||
usernameExistsMessage=Brukernavnet finnes allerede.
|
||||
emailExistsMessage=E-post finnes allerede.
|
||||
federatedIdentityExistsMessage=Bruker med {0} {1} finnes allerede. Vennligst logg inn p\u00e5 kontoadministratsjon for \u00e5 koble sammen kontoene.
|
||||
confirmLinkIdpTitle=Kontoen finnes allerede
|
||||
federatedIdentityConfirmLinkMessage=Bruker med {0} {1} finnes allerede. Hvordan vil du fortsette?
|
||||
confirmLinkIdpReviewProfile=Se over og bekreft profil
|
||||
confirmLinkIdpContinue=Legg til eksisterende konto
|
||||
configureTotpMessage=Du m\u00e5 sette opp en engangskode-generator for \u00e5 aktivere konto.
|
||||
updateProfileMessage=Du m\u00e5 oppdatere brukerprofilen din for \u00e5 aktivere konto.
|
||||
updatePasswordMessage=Du m\u00e5 skifte passord for \u00e5 aktivere kontoen din.
|
||||
verifyEmailMessage=Du m\u00e5 bekrefte e-postadressen din for \u00e5 aktivere konto.
|
||||
linkIdpMessage=You need to verify your email address to link your account with {0}.
|
||||
emailSentMessage=Du vil straks motta en e-post med ytterlige instruksjoner.
|
||||
emailSendErrorMessage=Mislyktes \u00e5 sende e-post, vennligst pr\u00f8v igjen senere.
|
||||
accountUpdatedMessage=Din konto har blitt oppdatert.
|
||||
accountPasswordUpdatedMessage=Ditt passord har blitt oppdatert.
|
||||
noAccessMessage=Ingen tilgang
|
||||
invalidPasswordMinLengthMessage=Ugyldig passord\: minimum lengde {0}.
|
||||
invalidPasswordMinDigitsMessage=Ugyldig passord\: m\u00e5 inneholde minimum {0} sifre.
|
||||
invalidPasswordMinLowerCaseCharsMessage=Ugyldig passord\: m\u00e5 inneholde minimum {0} sm\u00e5 bokstaver.
|
||||
invalidPasswordMinUpperCaseCharsMessage=Ugyldig passord\: m\u00e5 inneholde minimum {0} store bokstaver.
|
||||
invalidPasswordMinSpecialCharsMessage=Ugyldig passord\: m\u00e5 inneholde minimum {0} spesialtegn.
|
||||
invalidPasswordNotUsernameMessage=Ugyldig passord\: kan ikke v\u00e6re likt brukernavn.
|
||||
invalidPasswordRegexPatternMessage=Ugyldig passord\: tilfredsstiller ikke kravene for passord-m\u00f8nster.
|
||||
invalidPasswordHistoryMessage=Ugyldig passord\: kan ikke v\u00e6re likt noen av de {0} foreg\u00e5ende passordene.
|
||||
failedToProcessResponseMessage=Kunne ikke behandle svar
|
||||
httpsRequiredMessage=HTTPS p\u00e5krevd
|
||||
realmNotEnabledMessage=Sikkerhetsdomene er ikke aktivert
|
||||
invalidRequestMessage=Ugyldig foresp\u00f8rsel
|
||||
failedLogout=Utlogging feilet
|
||||
unknownLoginRequesterMessage=Ukjent anmoder for innlogging
|
||||
loginRequesterNotEnabledMessage=Anmoder for innlogging er ikke aktivert
|
||||
bearerOnlyMessage=Bearer-only applikasjoner har ikke lov til \u00e5 initiere innlogging via nettleser
|
||||
standardFlowDisabledMessage=Klienten har ikke lov til \u00e5 initiere innlogging via nettleser med gitt response_type. Standard flow er deaktivert for denne klienten.
|
||||
implicitFlowDisabledMessage=Klienten har ikke lov til \u00e5 initiere innlogging via nettleser med gitt response_type. Implicit flow er deaktivert for denne klienten.
|
||||
invalidRedirectUriMessage=Ugyldig redirect uri
|
||||
unsupportedNameIdFormatMessage=NameIDFormat er ikke st\u00f8ttet
|
||||
invalidRequesterMessage=Ugyldig sender av foresp\u00f8rsel
|
||||
registrationNotAllowedMessage=Registrering er ikke lov
|
||||
resetCredentialNotAllowedMessage=Tilbakestilling av innloggingsdata er ikke lov
|
||||
permissionNotApprovedMessage=Tillatelse ikke godkjent.
|
||||
noRelayStateInResponseMessage=Ingen relay state i svar fra identitetsleverand\u00f8r.
|
||||
insufficientPermissionMessage=Utilstrekkelige rettigheter for \u00e5 koble identiteter.
|
||||
couldNotProceedWithAuthenticationRequestMessage=Kunne ikke g\u00e5 videre med autentiseringsforesp\u00f8rsel til identitetsleverand\u00f8r.
|
||||
couldNotObtainTokenMessage=Klarte ikke \u00e5 innhente token fra identitetsleverand\u00f8r.
|
||||
unexpectedErrorRetrievingTokenMessage=Uventet feil ved henting av token fra identitetsleverand\u00f8r.
|
||||
unexpectedErrorHandlingResponseMessage=Uventet feil ved h\u00e5ndtering av svar fra identitetsleverand\u00f8r.
|
||||
identityProviderAuthenticationFailedMessage=Autentisering feilet. Kunne ikke autentisere med identitetsleverand\u00f8r.
|
||||
couldNotSendAuthenticationRequestMessage=Kunne ikke sende autentiseringsforesp\u00f8rsel til identitetsleverand\u00f8r.
|
||||
unexpectedErrorHandlingRequestMessage=Uventet feil ved h\u00e5ndtering av autentiseringsforesp\u00f8rsel til identitetsleverand\u00f8r.
|
||||
invalidAccessCodeMessage=Ugyldig tilgangskode.
|
||||
sessionNotActiveMessage=Sesjonen er ikke aktiv.
|
||||
invalidCodeMessage=En feil oppstod, vennligst logg inn p\u00e5 nytt i din applikasjon.
|
||||
identityProviderUnexpectedErrorMessage=Uventet feil ved autentisering med identitetsleverand\u00f8r
|
||||
identityProviderNotFoundMessage=Kunne ikke finne en identitetsleverand\u00f8r med identifikatoren.
|
||||
identityProviderLinkSuccess=Din konto ble suksessfullt koblet med {0} konto {1}.
|
||||
staleCodeMessage=Denne siden er ikke lenger gyldig. Vennligst g\u00e5 tilbake til applikasjonen din og logg inn p\u00e5 nytt.
|
||||
realmSupportsNoCredentialsMessage=Sikkerhetsdomene st\u00f8tter ingen legitimasjonstyper.
|
||||
identityProviderNotUniqueMessage=Sikkerhetsdomene st\u00f8tter flere identitetsleverand\u00f8rer. Kunne ikke avgj\u00f8re hvilken identitetsleverand\u00f8r som burde brukes for autentisering.
|
||||
emailVerifiedMessage=Din e-postadresse har blitt verifisert.
|
||||
staleEmailVerificationLink=Lenken du klikket er utg\u00e5tt og er ikke lenger gyldig. Har du kanskje allerede bekreftet e-postadressen din?
|
||||
backToApplication=« Tilbake til applikasjonen
|
||||
missingParameterMessage=Manglende parameter\: {0}
|
||||
clientNotFoundMessage=Klient ikke funnet.
|
||||
clientDisabledMessage=Klient deaktivert.
|
||||
invalidParameterMessage=Ugyldig parameter\: {0}
|
||||
alreadyLoggedIn=Du er allerede innlogget.
|
||||
shouldBeEqual={0} skal v\u00e6re lik {1}
|
||||
shouldBeDifferent={0} skal v\u00e6re forskjellig fra {1}
|
||||
shouldMatchPattern=M\u00f8nsteret skal matche\: `/{0}/`
|
||||
mustBeAnInteger=M\u00e5 v\u00e6re et heltall
|
||||
notAValidOption=Ikke et gyldig alternativ
|
||||
selectAnOption=Velg et alternativ
|
||||
remove=Fjern
|
||||
addValue=Legg til verdi
|
||||
languages=Spr\u00e5k
|
@ -0,0 +1,290 @@
|
||||
|
||||
doLogIn=Logowanie
|
||||
doRegister=Rejestracja
|
||||
doRegisterSecurityKey=Rejestracja
|
||||
doCancel=Anuluj
|
||||
doSubmit=Zatwierd\u017a
|
||||
doBack=Cofnij
|
||||
doYes=Tak
|
||||
doNo=Nie
|
||||
doContinue=Kontynuuj
|
||||
doIgnore=Ignoruj
|
||||
doAccept=Akceptuj
|
||||
doDecline=Odrzu\u0107
|
||||
doForgotPassword=Nie pami\u0119tasz has\u0142a?
|
||||
doClickHere=Kliknij tutaj
|
||||
doImpersonate=Wciel si\u0119
|
||||
doTryAgain=Spr\u00f3buj ponownie
|
||||
doTryAnotherWay=Spr\u00f3buj inn\u0105 metod\u0105
|
||||
kerberosNotConfigured=Kerberos nie jest skonfigurowany
|
||||
kerberosNotConfiguredTitle=Kerberos nie jest skonfigurowany
|
||||
bypassKerberosDetail=Albo nie jeste\u015b zalogowany przez Kerberos albo twoja przegl\u0105darka nie jest skonfigurowana do logowania Kerberos. Kliknij kontynuuj by zalogowa\u0107 si\u0119 w inny spos\u00f3b.
|
||||
kerberosNotSetUp=Kerberos nie jest skonfigurowany. Nie mo\u017cna si\u0119 zalogowa\u0107.
|
||||
registerTitle=Rejestracja
|
||||
loginAccountTitle=Zaloguj si\u0119 na swoje konto
|
||||
loginTitle=Zaloguj si\u0119 do {0}
|
||||
loginTitleHtml={0}
|
||||
impersonateTitle=Wcielenie {0}
|
||||
impersonateTitleHtml=Wcielenie <strong>{0}</strong>
|
||||
realmChoice=Strefa
|
||||
unknownUser=Nieznany u\u017cytkownik
|
||||
loginTotpTitle=Konfiguracja dla Mobile Authenticator
|
||||
loginProfileTitle=Zaktualizuj informacje konta
|
||||
loginTimeout=Zbyt du\u017co czasu zaj\u0119\u0142o logowanie. Proces logowania rozpocznie si\u0119 od nowa.
|
||||
oauthGrantTitle=Przydziel dost\u0119p dla {0}
|
||||
oauthGrantTitleHtml={0}
|
||||
errorTitle=Przykro nam...
|
||||
errorTitleHtml=<strong>Przykro</strong> nam...
|
||||
emailVerifyTitle=Weryfikacja e-maila
|
||||
emailForgotTitle=Nie pami\u0119tasz has\u0142a?
|
||||
updatePasswordTitle=Aktualizacja has\u0142a
|
||||
codeSuccessTitle=Kod sukcesu
|
||||
codeErrorTitle=Kod b\u0142\u0119du\: {0}
|
||||
displayUnsupported=\u017b\u0105dany typ wy\u015bwietlania jest nieobs\u0142ugiwany
|
||||
browserRequired=Do zalogowania wymagana jest przegl\u0105darka
|
||||
browserContinue=Przegl\u0105darka jest wymagana by doko\u0144czy\u0107 logowanie
|
||||
browserContinuePrompt=Otworzy\u0107 przegl\u0105dark\u0119 i kontynuowa\u0107 logowanie? [t/n]\:
|
||||
browserContinueAnswer=t
|
||||
termsTitle=Regulamin
|
||||
termsText=
|
||||
termsPlainText=Regulamin, kt\u00f3ry nale\u017cy zdefiniowa\u0107.
|
||||
recaptchaFailed=B\u0142\u0119dna Recaptcha
|
||||
recaptchaNotConfigured=Recaptcha jest wymagana, ale nie skonfigurowana
|
||||
consentDenied=Zgoda odrzucona.
|
||||
noAccount=Nie masz konta?
|
||||
username=Nazwa u\u017cytkownika (login)
|
||||
usernameOrEmail=Nazwa u\u017cytkownika lub e-mail (login)
|
||||
firstName=Imi\u0119
|
||||
givenName=Nadane imi\u0119
|
||||
fullName=Pe\u0142ne imi\u0119 i nazwisko
|
||||
lastName=Nazwisko
|
||||
familyName=Nazwisko rodowe
|
||||
email=E-mail
|
||||
password=Has\u0142o
|
||||
passwordConfirm=Potwierd\u017a has\u0142o
|
||||
passwordNew=Nowe has\u0142o
|
||||
passwordNewConfirm=Potwierdzenie nowego has\u0142a
|
||||
rememberMe=Zapami\u0119taj mnie
|
||||
authenticatorCode=Kod jednorazowy
|
||||
address=Adres
|
||||
street=Ulica
|
||||
locality=Miejscowo\u015b\u0107
|
||||
region=Wojew\u00f3dztwo
|
||||
postal_code=Kod pocztowy
|
||||
country=Pa\u0144stwo
|
||||
emailVerified=Email zweryfikowany
|
||||
website=Strona internetowa
|
||||
phoneNumber=Nr telefonu
|
||||
phoneNumberVerified=Nr telefonu zweryfikowany
|
||||
gender=P\u0142e\u0107
|
||||
birthday=Data urodzenia
|
||||
zoneinfo=Strefa czasowa
|
||||
gssDelegationCredential=\u015awiadectwo przekazania uprawnie\u0144 GSS
|
||||
profileScopeConsentText=Profil u\u017cytkownika
|
||||
emailScopeConsentText=Adres email
|
||||
addressScopeConsentText=Adres
|
||||
phoneScopeConsentText=Numer telefonu
|
||||
offlineAccessScopeConsentText=Dost\u0119p offline
|
||||
samlRoleListScopeConsentText=Moje role
|
||||
rolesScopeConsentText=Role u\u017cytkownika
|
||||
restartLoginTooltip=Restart logowania
|
||||
loginTotpIntro=Aby uzyska\u0107 dost\u0119p do tego konta, musisz skonfigurowa\u0107 generator hase\u0142 jednorazowych
|
||||
loginTotpStep1=Zainstaluj jedn\u0105 z nast\u0119puj\u0105cych aplikacji na telefonie kom\u00f3rkowym
|
||||
loginTotpStep2=Otw\u00f3rz aplikacj\u0119 i zeskanuj kod kreskowy
|
||||
loginTotpStep3=Wprowad\u017a jednorazowy kod podany przez aplikacj\u0119 i kliknij Prze\u015blij aby zako\u0144czy\u0107 konfiguracj\u0119
|
||||
loginTotpManualStep2=Otw\u00f3rz aplikacj\u0119 i wprowad\u017a klucz
|
||||
loginTotpManualStep3=U\u017cyj poni\u017cszych warto\u015bci konfiguracji, je\u015bli aplikacja pozwala na ich ustawienie
|
||||
loginTotpUnableToScan=Nie mo\u017cna skanowa\u0107?
|
||||
loginTotpScanBarcode=Zeskanowa\u0107 kod paskowy?
|
||||
loginCredential=Po\u015bwiadczenia
|
||||
loginOtpOneTime=Kod jednorazowy
|
||||
loginTotpType=Typ
|
||||
loginTotpAlgorithm=Algorytm
|
||||
loginTotpDigits=Cyfry
|
||||
loginTotpInterval=Interwa\u0142
|
||||
loginTotpCounter=Licznik
|
||||
loginTotpDeviceName=Nazwa urz\u0105dzenia
|
||||
loginTotp.totp=Oparte o czas
|
||||
loginTotp.hotp=Oparte o licznik
|
||||
loginChooseAuthenticator=Wybierz metod\u0119 logowania
|
||||
oauthGrantRequest=Czy przyznajesz te uprawnienia dost\u0119pu?
|
||||
inResource=w
|
||||
emailVerifyInstruction1=Zosta\u0142a wys\u0142ana do Ciebie wiadomo\u015b\u0107 e-mail z instrukcjami jak zweryfikowa\u0107 sw\u00f3j adres e-mail.
|
||||
emailVerifyInstruction2=Nie otrzyma\u0142em kodu weryfikacyjnego w wiadomo\u015bci e-mail?
|
||||
emailVerifyInstruction3=aby ponownie wys\u0142a\u0107 wiadomo\u015b\u0107 e-mail.
|
||||
emailLinkIdpTitle=Link {0}
|
||||
emailLinkIdp1=Wiadomo\u015b\u0107 e-mail z instrukcjami, aby powi\u0105za\u0107 konto {0} {1} z kontem {2} zosta\u0142a wys\u0142ana do Ciebie.
|
||||
emailLinkIdp2=Nie otrzyma\u0142em kodu weryfikacyjnego w wiadomo\u015bci e-mail?
|
||||
emailLinkIdp3=aby ponownie wys\u0142a\u0107 wiadomo\u015b\u0107 e-mail.
|
||||
emailLinkIdp4=Je\u015bli ju\u017c zweryfikowana e-mail w innej przegl\u0105darce
|
||||
emailLinkIdp5=aby kontynuowa\u0107.
|
||||
backToLogin=« Powr\u00f3t do logowania
|
||||
emailInstruction=Wpisz sw\u00f3j adres e-mail lub nazw\u0119 u\u017cytkownika a wy\u015blemy do Ciebie instrukcje, jak utworzy\u0107 nowe has\u0142o.
|
||||
copyCodeInstruction=Prosz\u0119 skopiowa\u0107 ten kod i wklej go do aplikacji\:
|
||||
pageExpiredTitle=Strona wygas\u0142a
|
||||
pageExpiredMsg1=Aby ponownie uruchomi\u0107 proces logowania
|
||||
pageExpiredMsg2=Aby kontynuowa\u0107 proces logowania
|
||||
personalInfo=Informacje osobiste\:
|
||||
role_admin=Admin
|
||||
role_realm-admin=Strefa Admin
|
||||
role_create-realm=Utw\u00f3rz stref\u0119
|
||||
role_create-client=Utw\u00f3rz klienta
|
||||
role_view-realm=Wy\u015bwietl stref\u0119
|
||||
role_view-users=Wy\u015bwietl u\u017cytkownik\u00f3w
|
||||
role_view-applications=Wy\u015bwietl aplikacje
|
||||
role_view-clients=Wy\u015bwietl klient\u00f3w
|
||||
role_view-events=Wy\u015bwietl zdarzenia
|
||||
role_view-identity-providers=Wy\u015bwietl dostawc\u00f3w to\u017csamo\u015bci
|
||||
role_manage-realm=Zarz\u0105dzaj stref\u0105
|
||||
role_manage-users=Zarz\u0105dzaj u\u017cytkownikami
|
||||
role_manage-applications=Zarz\u0105dzaj aplikacjami
|
||||
role_manage-identity-providers=Zarz\u0105dzaj dostawcami to\u017csamo\u015bci
|
||||
role_manage-clients=Zarz\u0105dzaj klientami
|
||||
role_manage-events=Zarz\u0105dzaj zdarzeniami
|
||||
role_view-profile=Zobacz profil
|
||||
role_manage-account=Zarz\u0105dzaj kontem
|
||||
role_manage-account-links=Zarz\u0105dzanie \u0142\u0105czami konta
|
||||
role_read-token=Odczytu tokenu
|
||||
role_offline-access=Dost\u0119p offline
|
||||
client_account=Konto
|
||||
client_account-console=Konsola konta
|
||||
client_security-admin-console=Konsola administratora bezpiecze\u0144stwa
|
||||
client_admin-cli=Admin CLI
|
||||
client_realm-management=Zarz\u0105dzanie stref\u0105
|
||||
client_broker=Broker
|
||||
requiredFields=Wymagane pola
|
||||
invalidUserMessage=Nieprawid\u0142owa nazwa u\u017cytkownika lub has\u0142o.
|
||||
invalidUsernameMessage=Nieprawid\u0142owa nazwa u\u017cytkownika.
|
||||
invalidUsernameOrEmailMessage=Nieprawid\u0142owa nazwa u\u017cytkownika lub has\u0142o.
|
||||
invalidPasswordMessage=Nieprawid\u0142owe has\u0142o.
|
||||
invalidEmailMessage=Nieprawid\u0142owy adres e-mail.
|
||||
accountDisabledMessage=Konto jest wy\u0142\u0105czone, skontaktuj si\u0119 z administratorem.
|
||||
accountTemporarilyDisabledMessage=Konto jest tymczasowo wy\u0142\u0105czone, skontaktuj si\u0119 z administratorem lub spr\u00f3buj ponownie p\u00f3\u017aniej.
|
||||
expiredCodeMessage=Przekroczono limit czasu logowania. Prosz\u0119 Zaloguj si\u0119 ponownie.
|
||||
expiredActionMessage=Akcja wygas\u0142a. Prosz\u0119 kontynuowa\u0107 logowanie.
|
||||
expiredActionTokenNoSessionMessage=Akcja wygas\u0142a.
|
||||
expiredActionTokenSessionExistsMessage=Akcja wygas\u0142a. Prosz\u0119 uruchomi\u0107 ponownie.
|
||||
missingFirstNameMessage=Prosz\u0119 poda\u0107 imi\u0119.
|
||||
missingLastNameMessage=Prosz\u0119 poda\u0107 nazwisko.
|
||||
missingEmailMessage=Prosz\u0119 poda\u0107 e-mail.
|
||||
missingUsernameMessage=Prosz\u0119 poda\u0107 nazw\u0119 u\u017cytkownika.
|
||||
missingPasswordMessage=Prosz\u0119 poda\u0107 has\u0142o.
|
||||
missingTotpMessage=Prosz\u0119 poda\u0107 kod uwierzytelniaj\u0105cy.
|
||||
missingTotpDeviceNameMessage=Prosz\u0119 poda\u0107 nazw\u0119 urz\u0105dzenia.
|
||||
notMatchPasswordMessage=Has\u0142a nie s\u0105 zgodne.
|
||||
invalidPasswordExistingMessage=Nieprawid\u0142owe istniej\u0105ce has\u0142o.
|
||||
invalidPasswordBlacklistedMessage=Nieprawid\u0142owe has\u0142o\: has\u0142o jest na czarnej li\u015bcie.
|
||||
invalidPasswordConfirmMessage=Potwierdzenie has\u0142a nie pasuje.
|
||||
invalidTotpMessage=Nieprawid\u0142owy kod uwierzytelnienia.
|
||||
usernameExistsMessage=Nazwa u\u017cytkownika ju\u017c istnieje.
|
||||
emailExistsMessage=Email ju\u017c istnieje.
|
||||
federatedIdentityExistsMessage=U\u017cytkownik z {0} {1} ju\u017c istnieje. Zaloguj si\u0119 do zarz\u0105dzania kontem aby po\u0142\u0105czy\u0107 konto.
|
||||
confirmLinkIdpTitle=Konto ju\u017c istnieje
|
||||
federatedIdentityConfirmLinkMessage=U\u017cytkownik z {0} {1} ju\u017c istnieje. Co chcesz zrobi\u0107?
|
||||
federatedIdentityConfirmReauthenticateMessage=Uwierzytelnij si\u0119 aby po\u0142\u0105czy\u0107 swoje konto z {0}
|
||||
nestedFirstBrokerFlowMessage=U\u017cytkownik {0} {1} nie jest powi\u0105zany z \u017cadnym znanym u\u017cytkownikiem.
|
||||
confirmLinkIdpReviewProfile=Przejrzyj profil
|
||||
confirmLinkIdpContinue=Dodaj do istniej\u0105cego konta
|
||||
configureTotpMessage=Musisz skonfigurowa\u0107 Mobile Authenticator aby aktywowa\u0107 swoje konto.
|
||||
updateProfileMessage=Musisz zaktualizowa\u0107 profilu u\u017cytkownika aby aktywowa\u0107 swoje konto.
|
||||
updatePasswordMessage=Musisz zmieni\u0107 swoje has\u0142o aby aktywowa\u0107 swoje konto.
|
||||
resetPasswordMessage=Musisz zmieni\u0107 swoje has\u0142o.
|
||||
verifyEmailMessage=Musisz zweryfikowa\u0107 sw\u00f3j adres e-mail aby aktywowa\u0107 swoje konto.
|
||||
linkIdpMessage=Musisz zweryfikowa\u0107 sw\u00f3j adres e-mail, aby po\u0142\u0105czy\u0107 swoje konto z {0}.
|
||||
emailSentMessage=Powiniene\u015b otrzymywa\u0107 wkr\u00f3tce poczt\u0119 z dalszymi instrukcjami.
|
||||
emailSendErrorMessage=Nie mo\u017cna wys\u0142a\u0107 wiadomo\u015bci e-mail, prosz\u0119 spr\u00f3bowa\u0107 ponownie p\u00f3\u017aniej.
|
||||
accountUpdatedMessage=Twoje konto zosta\u0142o zaktualizowane.
|
||||
accountPasswordUpdatedMessage=Twoje has\u0142o zosta\u0142o zaktualizowane.
|
||||
delegationCompleteHeader=Logowanie udane
|
||||
delegationCompleteMessage=Mo\u017cesz zamkn\u0105\u0107 okno przegl\u0105darki i przej\u015b\u0107 wstecz do aplikacji konsoli.
|
||||
delegationFailedHeader=Logowanie nie powiod\u0142o si\u0119
|
||||
delegationFailedMessage=Mo\u017cesz zamkn\u0105\u0107 okno przegl\u0105darki, wr\u00f3ci\u0107 do aplikacji konsoli i spr\u00f3bowa\u0107 zalogowa\u0107 si\u0119 ponownie.
|
||||
noAccessMessage=Brak dost\u0119pu
|
||||
invalidPasswordMinLengthMessage=Nieprawid\u0142owe has\u0142o\: minimalna d\u0142ugo\u015b\u0107 {0}.
|
||||
invalidPasswordMinDigitsMessage=Nieprawid\u0142owe has\u0142o\: musi zawiera\u0107 przynajmniej {0} cyfr.
|
||||
invalidPasswordMinLowerCaseCharsMessage=Nieprawid\u0142owe has\u0142o\: musi zawiera\u0107 co najmniej {0} ma\u0142ych liter.
|
||||
invalidPasswordMinUpperCaseCharsMessage=Nieprawid\u0142owe has\u0142o\: musi zawiera\u0107 co najmniej {0} wielkich liter.
|
||||
invalidPasswordMinSpecialCharsMessage=Nieprawid\u0142owe has\u0142o\: musi zawiera\u0107 przynajmniej {0} znak\u00f3w specjalnych.
|
||||
invalidPasswordNotUsernameMessage=Nieprawid\u0142owe has\u0142o\: nie mo\u017ce by\u0107 nazw\u0105 u\u017cytkownika.
|
||||
invalidPasswordRegexPatternMessage=Nieprawid\u0142owe has\u0142o\: brak zgodno\u015bci z wyra\u017ceniem regularnym.
|
||||
invalidPasswordHistoryMessage=Nieprawid\u0142owe has\u0142o\: nie mo\u017ce by\u0107 takie jak {0} ostatnich hase\u0142.
|
||||
invalidPasswordGenericMessage=Nieprawid\u0142owe has\u0142o\: nowe has\u0142o nie jest zgodne z zasadami hase\u0142.
|
||||
failedToProcessResponseMessage=Nie mo\u017cna przetworzy\u0107 odpowiedzi
|
||||
httpsRequiredMessage=Wymagany HTTPS
|
||||
realmNotEnabledMessage=Strefa nie jest aktywna
|
||||
invalidRequestMessage=Nieprawid\u0142owe \u017c\u0105danie
|
||||
failedLogout=Wylogowanie nie powiod\u0142o si\u0119
|
||||
unknownLoginRequesterMessage=Nieznany \u017c\u0105daj\u0105cy logowania
|
||||
loginRequesterNotEnabledMessage=\u017b\u0105daj\u0105cy logowania nie jest aktywny
|
||||
bearerOnlyMessage=Klienci bearer-only nie mog\u0105 inicjowa\u0107 logowania przez przegl\u0105dark\u0119
|
||||
standardFlowDisabledMessage=Klient nie mo\u017ce zainicjowa\u0107 logowania przez przegl\u0105dark\u0119 z podanym response_type. Standardowy przep\u0142yw jest wy\u0142\u0105czony dla klienta.
|
||||
implicitFlowDisabledMessage=Klient nie mo\u017ce zainicjowa\u0107 logowania przez przegl\u0105dark\u0119 z podanym response_type. Niejawny przep\u0142yw jest wy\u0142\u0105czony dla klienta.
|
||||
invalidRedirectUriMessage=Nieprawid\u0142owy uri przekierowania
|
||||
unsupportedNameIdFormatMessage=Nieobs\u0142ugiwany NameIDFormat
|
||||
invalidRequesterMessage=Nieprawid\u0142owy \u017c\u0105daj\u0105cy
|
||||
registrationNotAllowedMessage=Rejestracja nie jest dozwolona
|
||||
resetCredentialNotAllowedMessage=Zresetowanie po\u015bwiadcze\u0144 nie jest dozwolone
|
||||
permissionNotApprovedMessage=Uprawnienie nie zatwierdzone.
|
||||
noRelayStateInResponseMessage=Brak przekazanego stanu w odpowiedzi dostawcy to\u017csamo\u015bci.
|
||||
insufficientPermissionMessage=Niewystarczaj\u0105ce uprawnienia do \u0142\u0105czenia to\u017csamo\u015bci.
|
||||
couldNotProceedWithAuthenticationRequestMessage=Nie mo\u017cna kontynuowa\u0107 \u017c\u0105dania uwierzytelnienia do dostawcy to\u017csamo\u015bci.
|
||||
couldNotObtainTokenMessage=Nie mo\u017cna uzyska\u0107 tokenu od dostawcy to\u017csamo\u015bci.
|
||||
unexpectedErrorRetrievingTokenMessage=Nieoczekiwany b\u0142\u0105d podczas pobierania tokenu od dostawcy to\u017csamo\u015bci.
|
||||
unexpectedErrorHandlingResponseMessage=Nieoczekiwany b\u0142\u0105d podczas obs\u0142ugi odpowiedzi od dostawcy to\u017csamo\u015bci.
|
||||
identityProviderAuthenticationFailedMessage=Uwierzytelnianie nie powiod\u0142o si\u0119. Nie mo\u017cna uwierzytelni\u0107 za pomoc\u0105 dostawcy to\u017csamo\u015bci.
|
||||
couldNotSendAuthenticationRequestMessage=Nie mo\u017ce wysy\u0142a\u0107 \u017c\u0105dania uwierzytelniania do dostawcy to\u017csamo\u015bci.
|
||||
unexpectedErrorHandlingRequestMessage=Nieoczekiwany b\u0142\u0105d podczas obs\u0142ugi \u017c\u0105dania uwierzytelnienia do dostawcy to\u017csamo\u015bci.
|
||||
invalidAccessCodeMessage=Nieprawid\u0142owy kod dost\u0119pu.
|
||||
sessionNotActiveMessage=Sesja nie jest aktywna.
|
||||
invalidCodeMessage=Wyst\u0105pi\u0142 b\u0142\u0105d, zaloguj si\u0119 ponownie za po\u015brednictwem aplikacji.
|
||||
identityProviderUnexpectedErrorMessage=Nieoczekiwany b\u0142\u0105d podczas uwierzytelniania u dostawcy to\u017csamo\u015bci
|
||||
identityProviderNotFoundMessage=Nie mo\u017cna odnale\u017a\u0107 dostawcy to\u017csamo\u015bci z tym identyfikatorem.
|
||||
identityProviderLinkSuccess=Pomy\u015blnie zweryfikowano e-mail. Wr\u00f3\u0107 do oryginalnej przegl\u0105darki i tam kontynuuj logowanie.
|
||||
staleCodeMessage=Ta strona nie jest ju\u017c wa\u017cna, prosz\u0119 wr\u00f3ci\u0107 do aplikacji i zalogowa\u0107 si\u0119 ponownie
|
||||
realmSupportsNoCredentialsMessage=Strefa nie obs\u0142uguje dowolnego typu po\u015bwiadcze\u0144.
|
||||
identityProviderNotUniqueMessage=Strefa obs\u0142uguje wielu dostawc\u00f3w to\u017csamo\u015bci. Nie mo\u017cna okre\u015bli\u0107 dostawcy to\u017csamo\u015bci, kt\u00f3ry powinien by\u0107 u\u017cywany do uwierzytelniania.
|
||||
emailVerifiedMessage=Tw\u00f3j adres e-mail zosta\u0142 zweryfikowany.
|
||||
staleEmailVerificationLink=U\u017cyto nieaktualny link stanu, kt\u00f3ry straci\u0142 wa\u017cno\u015b\u0107. Mo\u017ce e-mail zosta\u0142 ju\u017c zweryfikowany?
|
||||
identityProviderAlreadyLinkedMessage=Stowarzyszona to\u017csamo\u015b\u0107, zwr\u00f3cona przez {0} jest ju\u017c po\u0142\u0105czona z innym u\u017cytkownikiem.
|
||||
confirmAccountLinking=Potwierd\u017a powi\u0105zanie konta {0} dostawcy to\u017csamo\u015bci {1} z twoim kontem.
|
||||
confirmEmailAddressVerification=Potwierd\u017a wa\u017cno\u015b\u0107 adresu e-mail {0}.
|
||||
confirmExecutionOfActions=Wykonaj nast\u0119puj\u0105ce akcje
|
||||
backToApplication=« Powr\u00f3t do aplikacji
|
||||
missingParameterMessage=Brakuj\u0105ce parametry\: {0}
|
||||
clientNotFoundMessage=Klient nie znaleziony.
|
||||
clientDisabledMessage=Klient nieaktywny.
|
||||
invalidParameterMessage=Nieprawid\u0142owy parametr\: {0}
|
||||
alreadyLoggedIn=Jeste\u015b ju\u017c zalogowany.
|
||||
differentUserAuthenticated=Jeste\u015b ju\u017c uwierzytelniona/y jako inny u\u017cytkownik ''{0}'' w tej sesji. Najpierw si\u0119 wyloguj.
|
||||
brokerLinkingSessionExpired=\u017b\u0105dano \u0142\u0105czenia kont brokera, ale bie\u017c\u0105ca sesja ju\u017c jest niewa\u017cna.
|
||||
proceedWithAction=» kliknij tutaj, aby przej\u015b\u0107
|
||||
requiredAction.CONFIGURE_TOTP=Skonfiguruj OTP
|
||||
requiredAction.TERMS_AND_CONDITIONS=Regulamin
|
||||
requiredAction.UPDATE_PASSWORD=Zaktualizuj has\u0142o
|
||||
requiredAction.UPDATE_PROFILE=Zaktualizuj profil
|
||||
requiredAction.VERIFY_EMAIL=Zweryfikuj adres e-mail
|
||||
doX509Login=U\u017cytkownik b\u0119dzie zalogowany jako\:
|
||||
clientCertificate=X509 certyfikat klienta\:
|
||||
noCertificate=[brak certyfikatu]
|
||||
pageNotFound=Nie znaleziono strony
|
||||
internalServerError=Wyst\u0105pi\u0142 b\u0142\u0105d wewn\u0119trzny serwera
|
||||
console-username=Nazwa u\u017cytkownika\:
|
||||
console-password=Has\u0142o\:
|
||||
console-otp=Has\u0142o jednorazowe\:
|
||||
console-new-password=Nowe has\u0142o\:
|
||||
console-confirm-password=Potwierd\u017a has\u0142o\:
|
||||
console-update-password=Aktualizacja has\u0142a jest wymagana.
|
||||
console-verify-email=Musisz zweryfikowa\u0107 sw\u00f3j adres e-mail. Wiadomo\u015b\u0107 e-mail z kodem weryfikacyjnym zosta\u0142a wys\u0142ana do {0}. Podaj ten kod poni\u017cej.
|
||||
console-email-code=Kod z e-mail\:
|
||||
console-accept-terms=Akceptujesz warunki? [t/n]\:
|
||||
console-accept=t
|
||||
readOnlyUsernameMessage=Zmiana nazwy u\u017cytkownika nie jest mo\u017cliwa, poniewa\u017c edycja konta jest zablokowana.
|
||||
shouldBeEqual={0} powinno by\u0107 r\u00f3wne {1}
|
||||
shouldBeDifferent={0} powinno by\u0107 r\u00f3\u017cne od {1}
|
||||
shouldMatchPattern=Wz\u00f3r pow inien pasowa\u0107\: `/{0}/`
|
||||
mustBeAnInteger=Musi by\u0107 liczb\u0105 ca\u0142kowit\u0105
|
||||
notAValidOption=Nieprawid\u0142owa opcja
|
||||
selectAnOption=Wybierz opcj\u0119
|
||||
remove=Usu\u0144
|
||||
addValue=Dodaj warto\u015b\u0107
|
||||
languages=J\u0119zyki
|
@ -0,0 +1,345 @@
|
||||
|
||||
doLogIn=Entrar
|
||||
doRegister=Cadastre-se
|
||||
doRegisterSecurityKey=Cadastre-se
|
||||
doCancel=Cancelar
|
||||
doSubmit=Ok
|
||||
doBack=Voltar
|
||||
doYes=Sim
|
||||
doNo=N\u00e3o
|
||||
doContinue=Continuar
|
||||
doIgnore=Ignorar
|
||||
doAccept=Aceitar
|
||||
doDecline=Rejeitar
|
||||
doForgotPassword=Esqueceu sua senha?
|
||||
doClickHere=Clique aqui
|
||||
doImpersonate=Personificar
|
||||
doTryAgain=Tente novamente
|
||||
doTryAnotherWay=Tente outra forma
|
||||
doConfirmDelete=Confirmar descadastramento
|
||||
errorDeletingAccount=Falha ao apagar conta
|
||||
deletingAccountForbidden=Voc\u00ea n\u00e3o tem permiss\u00f5es para apagar a sua pr\u00f3pria conta, entre em contato com um administrador.
|
||||
kerberosNotConfigured=Kerberos N\u00e3o Configurado
|
||||
kerberosNotConfiguredTitle=Kerberos N\u00e3o Configurado
|
||||
bypassKerberosDetail=Ou voc\u00ea n\u00e3o possui uma sess\u00e3o Kerberos ou o seu navegador n\u00e3o est\u00e1 configurado para usar o acesso do Kerberos. Por favor, clique em continuar para fazer o login no atrav\u00e9s de outros meios
|
||||
kerberosNotSetUp=Kerberos n\u00e3o est\u00e1 configurado. Voc\u00ea n\u00e3o pode acessar a aplica\u00e7\u00e3o.
|
||||
registerTitle=Registre-se
|
||||
loginAccountTitle=Entrar na sua conta
|
||||
loginTitle=Entrar em {0}
|
||||
loginTitleHtml={0}
|
||||
impersonateTitle={0} Personificar Usu\u00e1rio
|
||||
impersonateTitleHtml=<strong>{0}</strong> Personificar Usu\u00e1rio
|
||||
realmChoice=Dom\u00ednio
|
||||
unknownUser=Usu\u00e1rio desconhecido
|
||||
loginTotpTitle=Configura\u00e7\u00e3o do autenticador m\u00f3vel
|
||||
loginProfileTitle=Atualizar Informa\u00e7\u00f5es da Conta
|
||||
loginTimeout=Voc\u00ea demorou muito para entrar. Por favor, recomece o processo de login.
|
||||
oauthGrantTitle=Conceder acesso a {0}
|
||||
oauthGrantTitleHtml={0}
|
||||
errorTitle=Sentimos muito...
|
||||
errorTitleHtml=<strong>Sentimos</strong> muito ...
|
||||
emailVerifyTitle=Verifica\u00e7\u00e3o de endere\u00e7o de e-mail
|
||||
emailForgotTitle=Esqueceu sua senha?
|
||||
updatePasswordTitle=Atualizar senha
|
||||
codeSuccessTitle=C\u00f3digo de sucesso
|
||||
codeErrorTitle=C\u00f3digo de erro\: {0}
|
||||
displayUnsupported=Tipo de exibi\u00e7\u00e3o solicitado n\u00e3o suportado
|
||||
browserRequired=Navegador necess\u00e1rio para realizar acesso
|
||||
browserContinue=Navegador necess\u00e1rio para concluir o login
|
||||
browserContinuePrompt=Abrir navegador e continuar o login? [s/n]\:
|
||||
browserContinueAnswer=s
|
||||
termsTitle=Termos e Condi\u00e7\u00f5es
|
||||
termsText=
|
||||
termsPlainText=Termos e condi\u00e7\u00f5es a serem definidos.
|
||||
recaptchaFailed=Recaptcha Inv\u00e1lido
|
||||
recaptchaNotConfigured=O recaptcha \u00e9 necess\u00e1rio, mas n\u00e3o foi configurado
|
||||
consentDenied=Consentimento negado.
|
||||
noAccount=Novo usu\u00e1rio?
|
||||
username=Nome de usu\u00e1rio
|
||||
usernameOrEmail=Nome de usu\u00e1rio ou e-mail
|
||||
firstName=Primeiro nome
|
||||
givenName=Primeiro nome
|
||||
fullName=Nome completo
|
||||
lastName=Sobrenome
|
||||
familyName=Sobrenome
|
||||
email=Endere\u00e7o de e-mail
|
||||
password=Senha
|
||||
passwordConfirm=Confirme a senha
|
||||
passwordNew=Nova senha
|
||||
passwordNewConfirm=Confirma\u00e7\u00e3o de Nova Senha
|
||||
rememberMe=Mantenha-me conectado
|
||||
authenticatorCode=C\u00f3digo autenticador
|
||||
address=Endere\u00e7o
|
||||
street=Logradouro
|
||||
locality=Cidade ou localidade
|
||||
region=Estado
|
||||
postal_code=CEP
|
||||
country=Pa\u00eds
|
||||
emailVerified=Endere\u00e7o de e-mail verificado
|
||||
website=P\u00e1gina da web
|
||||
phoneNumber=N\u00famero de telefone
|
||||
phoneNumberVerified=N\u00famero de telefone verificado
|
||||
gender=G\u00eanero
|
||||
birthday=Data de nascimento
|
||||
zoneinfo=Zona hor\u00e1ria
|
||||
gssDelegationCredential=Delega\u00e7\u00e3o de Credenciais GSS
|
||||
logoutOtherSessions=Sair dos outros dispositivos
|
||||
profileScopeConsentText=Perfil de usu\u00e1rio
|
||||
emailScopeConsentText=Endere\u00e7o de e-mail
|
||||
addressScopeConsentText=Endere\u00e7o
|
||||
phoneScopeConsentText=N\u00famero de telefone
|
||||
offlineAccessScopeConsentText=Acesso Offline
|
||||
samlRoleListScopeConsentText=Meus Perfis de Acesso
|
||||
rolesScopeConsentText=Perfis de acesso do usu\u00e1rio
|
||||
restartLoginTooltip=Reiniciar o login
|
||||
loginTotpIntro=Voc\u00ea precisa configurar um gerador de c\u00f3digo de uso \u00fanico para acessar esta conta
|
||||
loginTotpStep1=Instale um dos seguintes aplicativos no seu celular\:
|
||||
loginTotpStep2=Abra o aplicativo e escaneie o c\u00f3digo QR\:
|
||||
loginTotpStep3=Digite o c\u00f3digo de uso \u00fanico fornecido pelo aplicativo e clique em Ok para concluir a configura\u00e7\u00e3o.
|
||||
loginTotpStep3DeviceName=Forne\u00e7a um nome de dispositivo para ajud\u00e1-lo a gerenciar seus dispositivos de autentica\u00e7\u00e3o de dois fatores.
|
||||
loginTotpManualStep2=Abra o aplicativo e digite a chave\:
|
||||
loginTotpManualStep3=Use os seguintes valores de configura\u00e7\u00e3o se o aplicativo permitir defini-los\:
|
||||
loginTotpUnableToScan=N\u00e3o foi poss\u00edvel ler o c\u00f3digo QR?
|
||||
loginTotpScanBarcode=Escanear c\u00f3digo QR?
|
||||
loginCredential=Credencial
|
||||
loginOtpOneTime=C\u00f3digo de uso \u00fanico
|
||||
loginTotpType=Tipo
|
||||
loginTotpAlgorithm=Algoritmo
|
||||
loginTotpDigits=D\u00edgitos
|
||||
loginTotpInterval=Intervalo
|
||||
loginTotpCounter=Contador
|
||||
loginTotpDeviceName=Nome do dispositivo
|
||||
loginTotp.totp=Baseado em tempo
|
||||
loginTotp.hotp=Baseado em contador
|
||||
loginChooseAuthenticator=Selecione o m\u00e9todo de login
|
||||
oauthGrantRequest=Voc\u00ea concede esses privil\u00e9gios de acesso?
|
||||
inResource=em
|
||||
emailVerifyInstruction1=Um e-mail com instru\u00e7\u00f5es para verificar o seu endere\u00e7o de e-mail foi enviado para voc\u00ea.
|
||||
emailVerifyInstruction2=N\u00e3o recebeu um c\u00f3digo de verifica\u00e7\u00e3o em seu e-mail?
|
||||
emailVerifyInstruction3=para reenviar o e-mail.
|
||||
emailLinkIdpTitle=Vincular {0}
|
||||
emailLinkIdp1=Um e-mail com instru\u00e7\u00f5es para vincular a conta {0} {1} com sua conta {2} foi enviado para voc\u00ea.
|
||||
emailLinkIdp2=N\u00e3o recebeu um c\u00f3digo de verifica\u00e7\u00e3o no e-mail?
|
||||
emailLinkIdp3=para reenviar o e-mail.
|
||||
emailLinkIdp4=Se voc\u00ea j\u00e1 verificou o email em outro navegador
|
||||
emailLinkIdp5=para continuar.
|
||||
backToLogin=« Voltar ao Login
|
||||
emailInstruction=Digite seu nome de usu\u00e1rio ou endere\u00e7o de e-mail e n\u00f3s lhe enviaremos instru\u00e7\u00f5es sobre como criar uma nova senha.
|
||||
copyCodeInstruction=Por favor, copie o c\u00f3digo e cole-o em seu aplicativo\:
|
||||
pageExpiredTitle=A p\u00e1gina expirou
|
||||
pageExpiredMsg1=Para reiniciar o processo de login
|
||||
pageExpiredMsg2=Para continuar o processo de login
|
||||
personalInfo=Informa\u00e7\u00f5es Pessoais\:
|
||||
role_admin=Admininstrador
|
||||
role_realm-admin=Admininstrador do Dom\u00ednio
|
||||
role_create-realm=Criar dom\u00ednio
|
||||
role_create-client=Criar cliente
|
||||
role_view-realm=Visualizar dom\u00ednio
|
||||
role_view-users=Visualizar usu\u00e1rios
|
||||
role_view-applications=Visualizar aplicativos
|
||||
role_view-clients=Visualizar clientes
|
||||
role_view-events=Visualizar eventos
|
||||
role_view-identity-providers=Visualizar provedores de identidade
|
||||
role_manage-realm=Gerenciar dom\u00ednio
|
||||
role_manage-users=Gerenciar usu\u00e1rios
|
||||
role_manage-applications=Gerenciar aplicativos
|
||||
role_manage-identity-providers=Gerenciar provedores de identidade
|
||||
role_manage-clients=Gerenciar clientes
|
||||
role_manage-events=Gerenciar eventos
|
||||
role_view-profile=Visualizar perfil
|
||||
role_manage-account=Gerenciar conta
|
||||
role_manage-account-links=Gerenciar vincula\u00e7\u00f5es de conta
|
||||
role_read-token=Ler token
|
||||
role_offline-access=Acesso offline
|
||||
client_account=Conta
|
||||
client_account-console=Console da Conta
|
||||
client_security-admin-console=Console de Administra\u00e7\u00e3o de Seguran\u00e7a
|
||||
client_admin-cli=CLI de Administra\u00e7\u00e3o
|
||||
client_realm-management=Gerenciamento de Dom\u00ednio
|
||||
client_broker=Provedor de Identidade
|
||||
requiredFields=Campos obrigat\u00f3rios
|
||||
invalidUserMessage=Nome de usu\u00e1rio ou senha inv\u00e1lida.
|
||||
invalidUsernameMessage=Nome de usu\u00e1rio inv\u00e1lido.
|
||||
invalidUsernameOrEmailMessage=Nome de usu\u00e1rio ou endere\u00e7o de e-mail inv\u00e1lido.
|
||||
invalidPasswordMessage=Senha inv\u00e1lida.
|
||||
invalidEmailMessage=Endere\u00e7o de e-mail inv\u00e1lido.
|
||||
accountDisabledMessage=Conta desativada, por favor, contate um administrador.
|
||||
accountTemporarilyDisabledMessage=Conta temporariamente indispon\u00edvel, por favor, contate um administrador ou tente novamente mais tarde.
|
||||
expiredCodeMessage=Tempo de login expirado. Por favor, fa\u00e7a login novamente.
|
||||
expiredActionMessage=A\u00e7\u00e3o expirada. Por favor, continue com o login agora.
|
||||
expiredActionTokenNoSessionMessage=A\u00e7\u00e3o expirada.
|
||||
expiredActionTokenSessionExistsMessage=A\u00e7\u00e3o expirada. Por favor, comece novamente.
|
||||
missingFirstNameMessage=Por favor, informe o primeiro nome.
|
||||
missingLastNameMessage=Por favor, informe o sobrenome.
|
||||
missingEmailMessage=Por favor, informe o endere\u00e7o de e-mail.
|
||||
missingUsernameMessage=Por favor, informe o nome de usu\u00e1rio.
|
||||
missingPasswordMessage=Por favor, informe a senha.
|
||||
missingTotpMessage=Por favor, informe o c\u00f3digo de uso \u00fanico.
|
||||
missingTotpDeviceNameMessage=Por favor, informe o nome do dispositivo.
|
||||
notMatchPasswordMessage=As senhas n\u00e3o coincidem.
|
||||
invalidPasswordExistingMessage=Senha atual inv\u00e1lida.
|
||||
invalidPasswordBlacklistedMessage=Senha inv\u00e1lida, devido a lista de exclus\u00e3o.
|
||||
invalidPasswordConfirmMessage=Senha de confirma\u00e7\u00e3o n\u00e3o coincide.
|
||||
invalidTotpMessage=C\u00f3digo de uso \u00fanico inv\u00e1lido.
|
||||
usernameExistsMessage=Nome de usu\u00e1rio j\u00e1 existe.
|
||||
emailExistsMessage=Endere\u00e7o de e-mail j\u00e1 existe.
|
||||
federatedIdentityExistsMessage=Usu\u00e1rio com {0} {1} j\u00e1 existe. Por favor, entre no gerenciamento de conta para vincular a conta.
|
||||
federatedIdentityUnavailableMessage=Usu\u00e1rio {0} autenticado com o provedor de identidade {1} n\u00e3o existe. Por favor, entre em contato com um administrador.
|
||||
confirmLinkIdpTitle=Conta j\u00e1 existente
|
||||
federatedIdentityConfirmLinkMessage=Usu\u00e1rio com {0} {1} j\u00e1 existe. Como voc\u00ea quer continuar?
|
||||
federatedIdentityConfirmReauthenticateMessage=Autenticar para vincular sua conta com {0}
|
||||
nestedFirstBrokerFlowMessage=O usu\u00e1rio {0} {1} n\u00e3o est\u00e1 vinculado a nenhum usu\u00e1rio conhecido.
|
||||
confirmLinkIdpReviewProfile=Revisar informa\u00e7\u00f5es do perfil
|
||||
confirmLinkIdpContinue=Vincular \u00e0 conta existente
|
||||
configureTotpMessage=Voc\u00ea precisa configurar seu celular com o autenticador Mobile para ativar sua conta.
|
||||
updateProfileMessage=Voc\u00ea precisa atualizar o seu perfil de usu\u00e1rio para ativar sua conta.
|
||||
updatePasswordMessage=Voc\u00ea precisa mudar sua senha para ativar sua conta.
|
||||
resetPasswordMessage=Voc\u00ea precisa mudar sua senha.
|
||||
verifyEmailMessage=Voc\u00ea precisa verificar o seu endere\u00e7o de e-mail para ativar sua conta.
|
||||
linkIdpMessage=Voc\u00ea precisa confirmar o seu endere\u00e7o de e-mail para vincular sua conta com {0}.
|
||||
emailSentMessage=Voc\u00ea dever\u00e1 receber um e-mail em breve com mais instru\u00e7\u00f5es.
|
||||
emailSendErrorMessage=Falha ao enviar e-mail, por favor, tente novamente mais tarde.
|
||||
accountUpdatedMessage=Sua conta foi atualizada.
|
||||
accountPasswordUpdatedMessage=Sua senha foi atualizada.
|
||||
delegationCompleteHeader=Autentica\u00e7\u00e3o Bem Sucedida
|
||||
delegationCompleteMessage=Voc\u00ea pode fechar esta janela do navegador e voltar ao seu aplicativo.
|
||||
delegationFailedHeader=Falha na Autentica\u00e7\u00e3o
|
||||
delegationFailedMessage=Voc\u00ea pode fechar esta janela do navegador e voltar ao aplicativo e tentar fazer login novamente.
|
||||
noAccessMessage=Sem acesso
|
||||
invalidPasswordMinLengthMessage=Senha inv\u00e1lida\: deve ter pelo menos {0} caracteres.
|
||||
invalidPasswordMinDigitsMessage=Senha inv\u00e1lida\: deve conter pelo menos {0} n\u00famero(s).
|
||||
invalidPasswordMinLowerCaseCharsMessage=Senha inv\u00e1lida\: deve conter pelo menos {0} letra(s) min\u00fascula(s).
|
||||
invalidPasswordMinUpperCaseCharsMessage=Senha inv\u00e1lida\: deve conter pelo menos {0} letra(s) mai\u00fascula(s).
|
||||
invalidPasswordMinSpecialCharsMessage=Senha inv\u00e1lida\: deve conter pelo menos {0} caractere(s) especial(is).
|
||||
invalidPasswordNotUsernameMessage=Senha inv\u00e1lida\: n\u00e3o pode ser igual ao nome de usu\u00e1rio
|
||||
invalidPasswordNotContainsUsernameMessage=Senha inv\u00e1lida\: n\u00e3o pode conter o nome de usu\u00e1rio.
|
||||
invalidPasswordNotEmailMessage=Senha inv\u00e1lida\: n\u00e3o pode ser igual ao endere\u00e7o de e-mail.
|
||||
invalidPasswordRegexPatternMessage=Senha inv\u00e1lida\: n\u00e3o corresponde ao(s) padr\u00e3o(\u00f5es) de express\u00e3o regular.
|
||||
invalidPasswordHistoryMessage=Senha inv\u00e1lida\: n\u00e3o pode ser igual a qualquer uma da(s) \u00faltima(s) {0} senha(s).
|
||||
invalidPasswordGenericMessage=Senha inv\u00e1lida\: a nova senha n\u00e3o cumpre as pol\u00edticas de senha.
|
||||
failedToProcessResponseMessage=Falha ao processar a resposta
|
||||
httpsRequiredMessage=HTTPS necess\u00e1rio
|
||||
realmNotEnabledMessage=Dom\u00ednio desativado
|
||||
invalidRequestMessage=Solicita\u00e7\u00e3o inv\u00e1lida
|
||||
failedLogout=Falha ao sair
|
||||
unknownLoginRequesterMessage=Solicitante de login desconhecido
|
||||
loginRequesterNotEnabledMessage=Solicitante de login desativado
|
||||
bearerOnlyMessage=Aplicativos configurados como Bearer-Only n\u00e3o t\u00eam permiss\u00e3o para iniciar o login pelo navegador
|
||||
standardFlowDisabledMessage=O cliente n\u00e3o tem permiss\u00e3o para iniciar o login com o response_type informado. O fluxo padr\u00e3o est\u00e1 desabilitado para o cliente.
|
||||
implicitFlowDisabledMessage=O cliente n\u00e3o tem permiss\u00e3o para iniciar o login com o response_type informado. O fluxo impl\u00edcito est\u00e1 desabilitado para o cliente.
|
||||
invalidRedirectUriMessage=URI de redirecionamento inv\u00e1lido
|
||||
unsupportedNameIdFormatMessage=NameIDFormat n\u00e3o suportado
|
||||
invalidRequesterMessage=Solicitante inv\u00e1lido
|
||||
registrationNotAllowedMessage=Cadastro n\u00e3o \u00e9 permitido
|
||||
resetCredentialNotAllowedMessage=Sem permiss\u00e3o de redefini\u00e7\u00e3o de credenciais
|
||||
permissionNotApprovedMessage=Permiss\u00e3o n\u00e3o aprovada.
|
||||
noRelayStateInResponseMessage=Sem estado de retransmiss\u00e3o na resposta do provedor de identidade.
|
||||
insufficientPermissionMessage=Permiss\u00f5es insuficientes para vincular identidades.
|
||||
couldNotProceedWithAuthenticationRequestMessage=N\u00e3o foi poss\u00edvel proceder com a solicita\u00e7\u00e3o de autentica\u00e7\u00e3o ao provedor de identidade.
|
||||
couldNotObtainTokenMessage=N\u00e3o foi poss\u00edvel obter token do provedor de identidade.
|
||||
unexpectedErrorRetrievingTokenMessage=Erro inesperado ao recuperar token do provedor de identidade.
|
||||
unexpectedErrorHandlingResponseMessage=Erro inesperado ao tratar a resposta do provedor de identidade.
|
||||
identityProviderAuthenticationFailedMessage=Falha na autentica\u00e7\u00e3o. N\u00e3o foi poss\u00edvel autenticar com o provedor de identidade.
|
||||
couldNotSendAuthenticationRequestMessage=N\u00e3o foi poss\u00edvel enviar a solicita\u00e7\u00e3o de autentica\u00e7\u00e3o ao provedor de identidade.
|
||||
unexpectedErrorHandlingRequestMessage=Erro inesperado ao tratar o pedido de autentica\u00e7\u00e3o ao provedor de identidade.
|
||||
invalidAccessCodeMessage=C\u00f3digo de acesso inv\u00e1lido.
|
||||
sessionNotActiveMessage=Sess\u00e3o inativa.
|
||||
invalidCodeMessage=Um erro correu, por favor, fa\u00e7a login novamente atrav\u00e9s da aplica\u00e7\u00e3o.
|
||||
identityProviderUnexpectedErrorMessage=Erro inesperado durante a autentica\u00e7\u00e3o com o provedor de identidade
|
||||
identityProviderMissingStateMessage=Par\u00e2metro de estado ausente da resposta do provedor de identidades.
|
||||
identityProviderNotFoundMessage=N\u00e3o foi poss\u00edvel encontrar um provedor de identidade com o identificador.
|
||||
identityProviderLinkSuccess=O seu endere\u00e7o de e-mail foi confirmado com sucesso. Por favor, retorne \u00e0 aba original e continue com o login.
|
||||
staleCodeMessage=Esta p\u00e1gina n\u00e3o \u00e9 mais v\u00e1lida. Por favor, volte \u00e0 aplica\u00e7\u00e3o e fa\u00e7a login novamente
|
||||
realmSupportsNoCredentialsMessage=O dom\u00ednio n\u00e3o suporta qualquer tipo de credencial.
|
||||
credentialSetupRequired=N\u00e3o \u00e9 poss\u00edvel fazer o login, a configura\u00e7\u00e3o de credencial \u00e9 necess\u00e1ria.
|
||||
identityProviderNotUniqueMessage=O dom\u00ednio suporta m\u00faltiplos provedores de identidade. N\u00e3o foi poss\u00edvel determinar qual o provedor de identidade deve ser usado para autentica\u00e7\u00e3o.
|
||||
emailVerifiedMessage=O seu endere\u00e7o de e-mail foi confirmado.
|
||||
staleEmailVerificationLink=O link em que voc\u00ea clicou \u00e9 um link antigo e n\u00e3o \u00e9 mais v\u00e1lido. Talvez voc\u00ea j\u00e1 tenha confirmado o seu endere\u00e7o de e-mail.
|
||||
identityProviderAlreadyLinkedMessage=A conta retornada do {0} j\u00e1 est\u00e1 vinculada a outro usu\u00e1rio.
|
||||
confirmAccountLinking=Confirme o vincula\u00e7\u00e3o da conta {0} do provedor de identidade {1} \u00e0 sua conta.
|
||||
confirmEmailAddressVerification=Confirme a validade do endere\u00e7o de e-mail {0}.
|
||||
confirmExecutionOfActions=Execute a(s) seguinte(s) a\u00e7\u00e3o(\u00f5es)
|
||||
backToApplication=« Voltar para o aplicativo
|
||||
missingParameterMessage=Par\u00e2metros ausentes\: {0}
|
||||
clientNotFoundMessage=Cliente n\u00e3o encontrado.
|
||||
clientDisabledMessage=Cliente desativado.
|
||||
invalidParameterMessage=Par\u00e2metro inv\u00e1lido\: {0}
|
||||
alreadyLoggedIn=Voc\u00ea j\u00e1 est\u00e1 logado.
|
||||
differentUserAuthenticated=Voc\u00ea j\u00e1 est\u00e1 autenticado como outro usu\u00e1rio ''{0}'' nesta sess\u00e3o. Por favor, finalize a sess\u00e3o primeiro.
|
||||
brokerLinkingSessionExpired=A vincul\u00e7\u00e3o de conta do provedor de identidade foi solicitado, mas a sess\u00e3o atual n\u00e3o \u00e9 mais v\u00e1lida.
|
||||
proceedWithAction=\u00bb Clique aqui para continuar
|
||||
requiredAction.CONFIGURE_TOTP=Configurar Autentica\u00e7\u00e3o de Dois Fatores
|
||||
requiredAction.TERMS_AND_CONDITIONS=Termos e Condi\u00e7\u00f5es
|
||||
requiredAction.UPDATE_PASSWORD=Atualizar Senha
|
||||
requiredAction.UPDATE_PROFILE=Atualizar Perfil
|
||||
requiredAction.VERIFY_EMAIL=Verificar Endere\u00e7o de E-mail
|
||||
doX509Login=Voc\u00ea ser\u00e1 logado como\:
|
||||
clientCertificate=Certificado X509 do cliente\:
|
||||
noCertificate=[Sem Certificado]
|
||||
pageNotFound=P\u00e1gina n\u00e3o encontrada
|
||||
internalServerError=Ocorreu um erro interno no servidor
|
||||
console-username=Nome de usu\u00e1rio\:
|
||||
console-password=Senha\:
|
||||
console-otp=C\u00f3digo de uso \u00fanico\:
|
||||
console-new-password=Nova Senha\:
|
||||
console-confirm-password=Confirma\u00e7\u00e3o de Senha\:
|
||||
console-update-password=Voc\u00ea precisa atualizar a sua senha.
|
||||
console-verify-email=Voc\u00ea precisa verificar o seu endere\u00e7o de e-mail. Enviamos um e-mail para {0} que cont\u00e9m um c\u00f3digo de verifica\u00e7\u00e3o. Digite o c\u00f3digo enviado no campo abaixo.
|
||||
console-email-code=C\u00f3digo do e-mail\:
|
||||
console-accept-terms=Aceita os Termos? [s/n]\:
|
||||
console-accept=s
|
||||
openshift.scope.user_info=Informa\u00e7\u00f5es do usu\u00e1rio
|
||||
openshift.scope.user_check-access=Informa\u00e7\u00f5es de acesso do usu\u00e1rio
|
||||
openshift.scope.user_full=Acesso Completo
|
||||
openshift.scope.list-projects=Listar projetos
|
||||
saml.post-form.title=Redirecionamento de Autentica\u00e7\u00e3o
|
||||
saml.post-form.message=Redirecionando... Por favor, aguarde.
|
||||
saml.post-form.js-disabled=O JavaScript est\u00e1 desabilitado. \u00c9 altamente recomend\u00e1vel habilit\u00e1-lo. Clique no bot\u00e3o abaixo para continuar.
|
||||
otp-display-name=Aplicativo Autenticador
|
||||
otp-help-text=Insira o c\u00f3digo de verifica\u00e7\u00e3o do aplicativo autenticador.
|
||||
password-display-name=Senha
|
||||
password-help-text=Fa\u00e7a o login digitando sua senha.
|
||||
auth-username-form-display-name=Nome de usu\u00e1rio
|
||||
auth-username-form-help-text=Fa\u00e7a o login digitando seu nome de usu\u00e1rio.
|
||||
auth-username-password-form-display-name=Nome de usu\u00e1rio e senha
|
||||
auth-username-password-form-help-text=Fa\u00e7a o login digitando seu nome de usu\u00e1rio e senha.
|
||||
webauthn-display-name=Chave de Seguran\u00e7a
|
||||
webauthn-help-text=Use sua chave de seguran\u00e7a para fazer login.
|
||||
webauthn-passwordless-display-name=Chave de Seguran\u00e7a
|
||||
webauthn-passwordless-help-text=Use sua chave de seguran\u00e7a para fazer login sem senha.
|
||||
webauthn-login-title=Login com Chave de Seguran\u00e7a
|
||||
webauthn-registration-title=Registrar Chave de Seguran\u00e7a
|
||||
webauthn-available-authenticators=Autenticadores dispon\u00edveis
|
||||
webauthn-unsupported-browser-text=WebAuthn n\u00e3o \u00e9 suportada pelo seu navegador. Tente outro navegador ou entre em contato com um administrador.
|
||||
webauthn-error-title=Erro de Chave de Seguran\u00e7a
|
||||
webauthn-error-registration=Falha ao registrar sua Chave de Seguran\u00e7a.
|
||||
webauthn-error-api-get=Falha ao autenticar usando a Chave de Seguran\u00e7a.
|
||||
webauthn-error-different-user=O primeiro usu\u00e1rio autenticado n\u00e3o corresponde \u00e0quele autenticado pela Chave de Seguran\u00e7a.
|
||||
webauthn-error-auth-verification=O resultado da autentica\u00e7\u00e3o da Chave de Seguran\u00e7a \u00e9 inv\u00e1lido.<br /> {0}
|
||||
webauthn-error-register-verification=O resultado do registro da Chave de Seguran\u00e7a \u00e9 inv\u00e1lido.<br /> {0}
|
||||
webauthn-error-user-not-found=Usu\u00e1rio desconhecido autenticado pela Chave de Seguran\u00e7a.
|
||||
identity-provider-redirector=Conecte-se com outro Provedor de Identidade
|
||||
identity-provider-login-label=Ou entre com
|
||||
finalDeletionConfirmation=Se voc\u00ea apagar a sua conta, ela n\u00e3o poder\u00e1 ser recuperada. Para manter a sua conta, clique em Cancelar.
|
||||
irreversibleAction=Esta a\u00e7\u00e3o \u00e9 irrevers\u00edvel
|
||||
deleteAccountConfirm=Confirma\u00e7\u00e3o de descadastramento
|
||||
deletingImplies=Apagar a sua conta implica em\:
|
||||
errasingData=Remover todos os seus dados
|
||||
loggingOutImmediately=Sair da aplica\u00e7\u00e3o imediatamente
|
||||
accountUnusable=Qualquer uso subsequente da aplica\u00e7\u00e3o n\u00e3o ser\u00e1 poss\u00edvel com esta conta
|
||||
userDeletedSuccessfully=Usu\u00e1rio exclu\u00eddo com sucesso
|
||||
readOnlyUsernameMessage=Voc\u00ea n\u00e3o pode atualizar o seu nome de usu\u00e1rio, uma vez que \u00e9 apenas de leitura.
|
||||
frontchannel-logout.title=Saindo
|
||||
frontchannel-logout.message=Voc\u00ea est\u00e1 saindo dos seguintes aplicativos
|
||||
logoutConfirmTitle=Saindo
|
||||
logoutConfirmHeader=Voc\u00ea realmente deseja sair?
|
||||
doLogout=Sair
|
||||
shouldBeEqual={0} deve ser igual a {1}
|
||||
shouldBeDifferent={0} deve ser diferente de {1}
|
||||
shouldMatchPattern=O padr\u00e3o deve corresponder\: `/{0}/`
|
||||
mustBeAnInteger=Deve ser um n\u00famero inteiro
|
||||
notAValidOption=N\u00e3o \u00e9 uma op\u00e7\u00e3o v\u00e1lida
|
||||
selectAnOption=Selecione uma op\u00e7\u00e3o
|
||||
remove=Remover
|
||||
addValue=Adicionar valor
|
||||
languages=Idiomas
|
@ -0,0 +1,446 @@
|
||||
|
||||
doLogIn=Entrar
|
||||
doRegister=Criar conta
|
||||
doRegisterSecurityKey=Criar conta
|
||||
doCancel=Cancelar
|
||||
doSubmit=Confirmar
|
||||
doBack=Voltar
|
||||
doYes=Sim
|
||||
doNo=N\u00e3o
|
||||
doContinue=Continuar
|
||||
doIgnore=Ignorar
|
||||
doAccept=Aceitar
|
||||
doDecline=Rejeitar
|
||||
doForgotPassword=Esqueceu-se da sua palavra-passe?
|
||||
doClickHere=Clique aqui
|
||||
doImpersonate=Personificar
|
||||
doTryAgain=Tente novamente
|
||||
doTryAnotherWay=Tente outra forma
|
||||
doConfirmDelete=Confirmar apagar conta
|
||||
errorDeletingAccount=Falha ao apagar conta
|
||||
deletingAccountForbidden=N\u00e3o tem permiss\u00f5es para apagar a sua pr\u00f3pria conta, entre em contacto com um administrador.
|
||||
kerberosNotConfigured=Kerberos N\u00e3o Configurado
|
||||
kerberosNotConfiguredTitle=Kerberos N\u00e3o Configurado
|
||||
bypassKerberosDetail=N\u00e3o possui uma sess\u00e3o Kerberos ou o seu navegador n\u00e3o est\u00e1 configurado para usar o acesso do Kerberos. Por favor, clique em continuar para fazer o login atrav\u00e9s de outros meios
|
||||
kerberosNotSetUp=Kerberos n\u00e3o est\u00e1 configurado. N\u00e3o pode aceder a aplica\u00e7\u00e3o.
|
||||
registerTitle=Registe-se
|
||||
loginAccountTitle=Entrar na sua conta
|
||||
loginTitle=Entrar em {0}
|
||||
loginTitleHtml={0}
|
||||
impersonateTitle={0} Personificar utilizador
|
||||
impersonateTitleHtml=<strong>{0}</strong> Personificar utilizador
|
||||
realmChoice=Dom\u00ednio
|
||||
unknownUser=Utilizador desconhecido
|
||||
loginTotpTitle=Configura\u00e7\u00e3o do autenticador m\u00f3vel
|
||||
loginProfileTitle=Atualizar Informa\u00e7\u00f5es da Conta
|
||||
loginIdpReviewProfileTitle=Atualizar informa\u00e7\u00f5es da conta
|
||||
loginTimeout=Demorou muito tempo para entrar. Por favor, recomece o processo de login.
|
||||
reauthenticate=Autentique-se novamente para continuar
|
||||
oauthGrantTitle=Conceder acesso a {0}
|
||||
oauthGrantTitleHtml={0}
|
||||
oauthGrantInformation=Certifique-se de confiar em {0} aprendendo como {0} lidar\u00e1 com os seus dados.
|
||||
oauthGrantReview=Pode rever o
|
||||
oauthGrantTos=termos de servi\u00e7o.
|
||||
oauthGrantPolicy=pol\u00edtica de privacidade.
|
||||
errorTitle=Lamentamos...
|
||||
errorTitleHtml=<strong>Lamentamos</strong> ...
|
||||
emailVerifyTitle=Verifica\u00e7\u00e3o do endere\u00e7o de e-mail
|
||||
emailForgotTitle=Esqueceu-se da sua palavra-passe?
|
||||
updateEmailTitle=Atualizar e-mail
|
||||
emailUpdateConfirmationSentTitle=E-mail de confirma\u00e7\u00e3o enviado
|
||||
emailUpdateConfirmationSent=Um e-mail de confirma\u00e7\u00e3o foi enviado para {0}. Deve seguir as instru\u00e7\u00f5es do primeiro para concluir a atualiza\u00e7\u00e3o do e-mail.
|
||||
emailUpdatedTitle=E-mail atualizado.
|
||||
emailUpdated=O e-mail da conta foi atualizado com sucesso para {0}.
|
||||
updatePasswordTitle=Atualizar palavra-passe
|
||||
codeSuccessTitle=C\u00f3digo de sucesso
|
||||
codeErrorTitle=C\u00f3digo de erro\: {0}
|
||||
displayUnsupported=Tipo de exibi\u00e7\u00e3o solicitado n\u00e3o suportado
|
||||
browserRequired=Navegador necess\u00e1rio para realizar acesso
|
||||
browserContinue=Navegador necess\u00e1rio para concluir o login
|
||||
browserContinuePrompt=Abrir navegador e continuar o login? [s/n]\:
|
||||
browserContinueAnswer=s
|
||||
usb=USB
|
||||
nfc=NFC
|
||||
bluetooth=Bluetooth
|
||||
internal=Interno
|
||||
unknown=Desconhecido
|
||||
termsTitle=Termos e Condi\u00e7\u00f5es
|
||||
termsText=
|
||||
termsPlainText=Termos e condi\u00e7\u00f5es a serem definidos.
|
||||
termsAcceptanceRequired=Tem que concordar com os termos e condi\u00e7\u00f5es.
|
||||
acceptTerms=Concordo com os termos e condi\u00e7\u00f5es
|
||||
recaptchaFailed=Recaptcha Inv\u00e1lido
|
||||
recaptchaNotConfigured=O recaptcha \u00e9 necess\u00e1rio, mas n\u00e3o foi configurado
|
||||
consentDenied=Consentimento negado.
|
||||
noAccount=Novo utilizador?
|
||||
username=Nome de utilizador
|
||||
usernameOrEmail=Nome de utilizador ou e-mail
|
||||
firstName=Nome
|
||||
givenName=Nome
|
||||
fullName=Nome completo
|
||||
lastName=Apelido
|
||||
familyName=Apelido
|
||||
email=Endere\u00e7o de e-mail
|
||||
password=Palavra-passe
|
||||
passwordConfirm=Confirme a palavra-passe
|
||||
passwordNew=Nova palavra-passe
|
||||
passwordNewConfirm=Confirma\u00e7\u00e3o da nova palavra-passe
|
||||
hidePassword=Esconder palavra-passe
|
||||
showPassword=Mostrar palavra-passe
|
||||
rememberMe=Lembre-se de mim
|
||||
authenticatorCode=C\u00f3digo autenticador
|
||||
address=Endere\u00e7o
|
||||
street=Rua
|
||||
locality=Cidade ou localidade
|
||||
region=Distrito
|
||||
postal_code=C\u00f3digo Postal
|
||||
country=Pa\u00eds
|
||||
emailVerified=Endere\u00e7o de e-mail verificado
|
||||
website=P\u00e1gina da web
|
||||
phoneNumber=N\u00famero de telefone
|
||||
phoneNumberVerified=N\u00famero de telefone verificado
|
||||
gender=G\u00e9nero
|
||||
birthday=Data de nascimento
|
||||
zoneinfo=Zona hor\u00e1ria
|
||||
gssDelegationCredential=Delega\u00e7\u00e3o de Credenciais GSS
|
||||
logoutOtherSessions=Sair dos outros dispositivos
|
||||
profileScopeConsentText=Perfil de utilizador
|
||||
emailScopeConsentText=Endere\u00e7o de e-mail
|
||||
addressScopeConsentText=Endere\u00e7o
|
||||
phoneScopeConsentText=N\u00famero de telefone
|
||||
offlineAccessScopeConsentText=Acesso Offline
|
||||
samlRoleListScopeConsentText=Os meus Perfis de Acesso
|
||||
rolesScopeConsentText=Perfis de acesso do utilizador
|
||||
restartLoginTooltip=Reiniciar o login
|
||||
loginTotpIntro=Precisa configurar um gerador de c\u00f3digo de uso \u00fanico para aceder a esta conta
|
||||
loginTotpStep1=Instale um das seguintes aplica\u00e7\u00f5es no seu telem\u00f3vel\:
|
||||
loginTotpStep2=Abra a aplica\u00e7\u00e3o e leia o c\u00f3digo QR\:
|
||||
loginTotpStep3=Digite o c\u00f3digo de uso \u00fanico fornecido pela aplica\u00e7\u00e3o e clique em Ok para concluir a configura\u00e7\u00e3o.
|
||||
loginTotpStep3DeviceName=Forne\u00e7a um nome de dispositivo para ajud\u00e1-lo a gerir os seus dispositivos de autentica\u00e7\u00e3o de dois fatores.
|
||||
loginTotpManualStep2=Abra a aplica\u00e7\u00e3o e digite a chave\:
|
||||
loginTotpManualStep3=Use os seguintes valores de configura\u00e7\u00e3o se a aplica\u00e7\u00e3o permitir defini-los\:
|
||||
loginTotpUnableToScan=N\u00e3o foi poss\u00edvel ler o c\u00f3digo QR?
|
||||
loginTotpScanBarcode=Ler c\u00f3digo QR?
|
||||
loginCredential=Credencial
|
||||
loginOtpOneTime=C\u00f3digo de uso \u00fanico
|
||||
loginTotpType=Tipo
|
||||
loginTotpAlgorithm=Algoritmo
|
||||
loginTotpDigits=D\u00edgitos
|
||||
loginTotpInterval=Intervalo
|
||||
loginTotpCounter=Contador
|
||||
loginTotpDeviceName=Nome do dispositivo
|
||||
loginTotp.totp=Baseado em tempo
|
||||
loginTotp.hotp=Baseado em contador
|
||||
totpAppFreeOTPName=FreeOTP
|
||||
totpAppGoogleName=Google Authenticator
|
||||
totpAppMicrosoftAuthenticatorName=Microsoft Authenticator
|
||||
loginChooseAuthenticator=Selecione o m\u00e9todo de login
|
||||
oauthGrantRequest=Concede esses privil\u00e9gios de acesso?
|
||||
inResource=em
|
||||
oauth2DeviceVerificationTitle=Login do dispositivo
|
||||
verifyOAuth2DeviceUserCode=Insira o c\u00f3digo fornecido pelo seu dispositivo e clique em Confirmar
|
||||
oauth2DeviceInvalidUserCodeMessage=C\u00f3digo inv\u00e1lido, tente novamente.
|
||||
oauth2DeviceExpiredUserCodeMessage=O c\u00f3digo expirou. Por favor, volte para o seu dispositivo e tente novamente.
|
||||
oauth2DeviceVerificationCompleteHeader=Login do dispositivo bem-sucedido
|
||||
oauth2DeviceVerificationCompleteMessage=Pode fechar esta janela do navegador e voltar ao seu dispositivo.
|
||||
oauth2DeviceVerificationFailedHeader=Falha no login do dispositivo
|
||||
oauth2DeviceVerificationFailedMessage=Pode fechar esta janela do navegador, voltar ao seu dispositivo e tentar novamente.
|
||||
oauth2DeviceConsentDeniedMessage=Consentimento negado para conectar o dispositivo.
|
||||
oauth2DeviceAuthorizationGrantDisabledMessage=O cliente n\u00e3o tem permiss\u00e3o para iniciar a concess\u00e3o de autoriza\u00e7\u00e3o de dispositivo OAuth 2.0. O fluxo \u00e9 desativado para o cliente.
|
||||
emailVerifyInstruction1=Foi-lhe enviado um e-mail com instru\u00e7\u00f5es para verificar o seu endere\u00e7o de e-mail.
|
||||
emailVerifyInstruction2=N\u00e3o recebeu um c\u00f3digo de verifica\u00e7\u00e3o no seu e-mail?
|
||||
emailVerifyInstruction3=para reenviar o e-mail.
|
||||
emailLinkIdpTitle=Vincular {0}
|
||||
emailLinkIdp1=Foi-lhe enviado um e-mail com instru\u00e7\u00f5es para vincular a conta {0} {1} com a sua conta {2}.
|
||||
emailLinkIdp2=N\u00e3o recebeu um c\u00f3digo de verifica\u00e7\u00e3o no e-mail?
|
||||
emailLinkIdp3=para reenviar o e-mail.
|
||||
emailLinkIdp4=Se j\u00e1 verificou o e-mail em outro navegador
|
||||
emailLinkIdp5=para continuar.
|
||||
backToLogin=« Voltar ao Login
|
||||
emailInstruction=Insira o seu nome de utilizador ou endere\u00e7o de e-mail e enviaremos instru\u00e7\u00f5es sobre como definir uma nova palavra-passe.
|
||||
emailInstructionUsername=Insira o seu nome de utilizador e enviaremos instru\u00e7\u00f5es sobre como criar uma palavra-passe.
|
||||
copyCodeInstruction=Por favor, copie o c\u00f3digo e cole na sua aplica\u00e7\u00e3o\:
|
||||
pageExpiredTitle=A p\u00e1gina expirou
|
||||
pageExpiredMsg1=Para reiniciar o processo de login
|
||||
pageExpiredMsg2=Para continuar o processo de login
|
||||
personalInfo=Informa\u00e7\u00f5es Pessoais\:
|
||||
role_admin=Admininstrador
|
||||
role_realm-admin=Admininstrador do Dom\u00ednio
|
||||
role_create-realm=Criar dom\u00ednio
|
||||
role_create-client=Criar cliente
|
||||
role_view-realm=Visualizar dom\u00ednio
|
||||
role_view-users=Visualizar utilizadores
|
||||
role_view-applications=Visualizar aplica\u00e7\u00f5es
|
||||
role_view-clients=Visualizar clientes
|
||||
role_view-events=Visualizar eventos
|
||||
role_view-identity-providers=Visualizar provedores de identidade
|
||||
role_manage-realm=Gerir dom\u00ednio
|
||||
role_manage-users=Gerir utilizadores
|
||||
role_manage-applications=Gerir aplica\u00e7\u00f5es
|
||||
role_manage-identity-providers=Gerir provedores de identidade
|
||||
role_manage-clients=Gerir clientes
|
||||
role_manage-events=Gerir eventos
|
||||
role_view-profile=Visualizar perfil
|
||||
role_manage-account=Gerir conta
|
||||
role_manage-account-links=Gerir vincula\u00e7\u00f5es de conta
|
||||
role_read-token=Ler token
|
||||
role_offline-access=Acesso offline
|
||||
client_account=Conta
|
||||
client_account-console=Consola da Conta
|
||||
client_security-admin-console=Consola de Administra\u00e7\u00e3o de Seguran\u00e7a
|
||||
client_admin-cli=CLI de Administra\u00e7\u00e3o
|
||||
client_realm-management=Gerir de Dom\u00ednio
|
||||
client_broker=Provedor de Identidade
|
||||
requiredFields=Campos obrigat\u00f3rios
|
||||
invalidUserMessage=Nome de utilizador ou palavra-passe inv\u00e1lida.
|
||||
invalidUsernameMessage=Nome de utilizador inv\u00e1lido.
|
||||
invalidUsernameOrEmailMessage=Nome de utilizador ou endere\u00e7o de e-mail inv\u00e1lido.
|
||||
invalidPasswordMessage=Palavra-passe inv\u00e1lida.
|
||||
invalidEmailMessage=Endere\u00e7o de e-mail inv\u00e1lido.
|
||||
accountDisabledMessage=Conta desativada, por favor, contacte um administrador.
|
||||
accountTemporarilyDisabledMessage=Conta temporariamente indispon\u00edvel, por favor, contacte um administrador ou tente novamente mais tarde.
|
||||
expiredCodeMessage=Tempo de login expirado. Por favor, fa\u00e7a login novamente.
|
||||
expiredActionMessage=A\u00e7\u00e3o expirada. Por favor, continue com o login agora.
|
||||
expiredActionTokenNoSessionMessage=A\u00e7\u00e3o expirada.
|
||||
expiredActionTokenSessionExistsMessage=A\u00e7\u00e3o expirada. Por favor, comece novamente.
|
||||
sessionLimitExceeded=H\u00e1 demasiadas sess\u00f5es
|
||||
missingFirstNameMessage=Por favor, insira o nome.
|
||||
missingLastNameMessage=Por favor, insira o apelido.
|
||||
missingEmailMessage=Por favor, insira o endere\u00e7o de e-mail.
|
||||
missingUsernameMessage=Por favor, insira o nome de utilizador.
|
||||
missingPasswordMessage=Por favor, insira a palavra-passe.
|
||||
missingTotpMessage=Por favor, insira o c\u00f3digo de uso \u00fanico.
|
||||
missingTotpDeviceNameMessage=Por favor, insira o nome do dispositivo.
|
||||
notMatchPasswordMessage=As palavras-passes n\u00e3o coincidem.
|
||||
error-invalid-value=Valor inv\u00e1lido.
|
||||
error-invalid-blank=Especifique o valor.
|
||||
error-empty=Especifique o valor.
|
||||
error-invalid-length=O tamanho deve estar entre {1} e {2}.
|
||||
error-invalid-length-too-short=O tamanho m\u00ednimo \u00e9 {1}.
|
||||
error-invalid-length-too-long=O tamanho m\u00e1ximo \u00e9 {2}.
|
||||
error-invalid-email=Endere\u00e7o de e-mail inv\u00e1lido.
|
||||
error-invalid-number=N\u00famero inv\u00e1lido.
|
||||
error-number-out-of-range=O n\u00famero deve estar entre {1} e {2}.
|
||||
error-number-out-of-range-too-small=O n\u00famero deve ter um valor m\u00ednimo de {1}.
|
||||
error-number-out-of-range-too-big=O n\u00famero deve ter o valor m\u00e1ximo de {2}.
|
||||
error-pattern-no-match=Valor inv\u00e1lido.
|
||||
error-invalid-uri=URL inv\u00e1lido.
|
||||
error-invalid-uri-scheme=Esquema de URL inv\u00e1lido.
|
||||
error-invalid-uri-fragment=Fragmento de URL inv\u00e1lido.
|
||||
error-user-attribute-required=Especifique este campo.
|
||||
error-invalid-date=Data inv\u00e1lida.
|
||||
error-user-attribute-read-only=Este campo \u00e9 s\u00f3 de leitura.
|
||||
error-username-invalid-character=O valor cont\u00e9m caracteres inv\u00e1lidos.
|
||||
error-person-name-invalid-character=O valor cont\u00e9m caracteres inv\u00e1lidos.
|
||||
error-reset-otp-missing-id=Por favor, escolha uma configura\u00e7\u00e3o de dois fatores.
|
||||
invalidPasswordExistingMessage=Palavra-passe atual inv\u00e1lida.
|
||||
invalidPasswordBlacklistedMessage=Palavra-passe inv\u00e1lida, devido \u00e0 lista de exclus\u00e3o.
|
||||
invalidPasswordConfirmMessage=Palavra-passe de confirma\u00e7\u00e3o n\u00e3o coincide.
|
||||
invalidTotpMessage=C\u00f3digo de uso \u00fanico inv\u00e1lido.
|
||||
usernameExistsMessage=Nome de utilizador j\u00e1 existe.
|
||||
emailExistsMessage=Endere\u00e7o de e-mail j\u00e1 existe.
|
||||
federatedIdentityExistsMessage=Utilizador com {0} {1} j\u00e1 existe. Por favor, entre no gestor de conta para vincular a conta.
|
||||
federatedIdentityUnavailableMessage=Utilizador {0} autenticado com o provedor de identidade {1} n\u00e3o existe. Por favor, entre em contacto com um administrador.
|
||||
federatedIdentityUnmatchedEssentialClaimMessage=O token de ID emitido pelo provedor de identidade n\u00e3o corresponde \u00e0 declara\u00e7\u00e3o essencial configurada. Por favor, entre em contacto com um administrador.
|
||||
confirmLinkIdpTitle=Conta j\u00e1 existente
|
||||
federatedIdentityConfirmLinkMessage=Utilizador com {0} {1} j\u00e1 existe. Como quer continuar?
|
||||
federatedIdentityConfirmReauthenticateMessage=Autenticar para vincular a sua conta com {0}
|
||||
nestedFirstBrokerFlowMessage=O utilizador {0} {1} n\u00e3o est\u00e1 vinculado a nenhum utilizador conhecido.
|
||||
confirmLinkIdpReviewProfile=Rever informa\u00e7\u00f5es do perfil
|
||||
confirmLinkIdpContinue=Vincular \u00e0 conta existente
|
||||
configureTotpMessage=Precisa configurar o seu telem\u00f3vel com o autenticador para ativar a sua conta.
|
||||
configureBackupCodesMessage=Precisa configurar c\u00f3digos de seguran\u00e7a para ativar a sua conta.
|
||||
updateProfileMessage=Precisa atualizar o seu perfil de utilizador para ativar a sua conta.
|
||||
updatePasswordMessage=Precisa mudar a sua palavra-passe para ativar a sua conta.
|
||||
updateEmailMessage=Precisa atualizar o seu endere\u00e7o de e-mail para ativar a sua conta.
|
||||
resetPasswordMessage=Precisa mudar a sua palavra-passe.
|
||||
verifyEmailMessage=Precisa verificar o seu endere\u00e7o de e-mail para ativar a sua conta.
|
||||
linkIdpMessage=Precisa confirmar o seu endere\u00e7o de e-mail para vincular a sua conta com {0}.
|
||||
emailSentMessage=Dever\u00e1 receber um e-mail em breve com mais instru\u00e7\u00f5es.
|
||||
emailSendErrorMessage=Falha ao enviar e-mail, por favor, tente novamente mais tarde.
|
||||
accountUpdatedMessage=A sua conta foi atualizada.
|
||||
accountPasswordUpdatedMessage=A sua palavra-passe foi atualizada.
|
||||
delegationCompleteHeader=Autentica\u00e7\u00e3o Bem Sucedida
|
||||
delegationCompleteMessage=Pode fechar esta janela do navegador e voltar \u00e0 aplica\u00e7\u00e3o.
|
||||
delegationFailedHeader=Falha na Autentica\u00e7\u00e3o
|
||||
delegationFailedMessage=Pode fechar esta janela do navegador e voltar \u00e0 aplica\u00e7\u00e3o e tentar fazer login novamente.
|
||||
noAccessMessage=Sem acesso
|
||||
invalidPasswordMinLengthMessage=Palavra-passe inv\u00e1lida\: deve ter pelo menos {0} caracteres.
|
||||
invalidPasswordMaxLengthMessage=Palavra-passe inv\u00e1lida\: deve ter no m\u00e1ximo {0} caracteres.
|
||||
invalidPasswordMinDigitsMessage=Palavra-passe inv\u00e1lida\: deve conter pelo menos {0} n\u00famero(s).
|
||||
invalidPasswordMinLowerCaseCharsMessage=Palavra-passe inv\u00e1lida\: deve conter pelo menos {0} letra(s) min\u00fascula(s).
|
||||
invalidPasswordMinUpperCaseCharsMessage=Palavra-passe inv\u00e1lida\: deve conter pelo menos {0} letra(s) mai\u00fascula(s).
|
||||
invalidPasswordMinSpecialCharsMessage=Palavra-passe inv\u00e1lida\: deve conter pelo menos {0} caractere(s) especial(is).
|
||||
invalidPasswordNotUsernameMessage=Palavra-passe inv\u00e1lida\: n\u00e3o pode ser igual ao nome de utilizador
|
||||
invalidPasswordNotEmailMessage=Palavra-passe inv\u00e1lida\: n\u00e3o pode ser igual ao endere\u00e7o de e-mail.
|
||||
invalidPasswordRegexPatternMessage=Palavra-passe inv\u00e1lida\: n\u00e3o corresponde ao(s) padr\u00e3o(\u00f5es) de express\u00e3o regular.
|
||||
invalidPasswordHistoryMessage=Palavra-passe inv\u00e1lida\: n\u00e3o pode ser igual a qualquer uma da(s) \u00faltima(s) {0} palavra-passe(s).
|
||||
invalidPasswordGenericMessage=Palavra-passe inv\u00e1lida\: a nova palavra-passe n\u00e3o cumpre as pol\u00edticas de palavra-passe.
|
||||
failedToProcessResponseMessage=Falha ao processar a resposta
|
||||
httpsRequiredMessage=HTTPS necess\u00e1rio
|
||||
realmNotEnabledMessage=Dom\u00ednio desativado
|
||||
invalidRequestMessage=Pedido inv\u00e1lido
|
||||
successLogout=A sua sess\u00e3o foi terminada
|
||||
failedLogout=Falha ao sair
|
||||
unknownLoginRequesterMessage=Solicitante de login desconhecido
|
||||
loginRequesterNotEnabledMessage=Solicitante de login desativado
|
||||
bearerOnlyMessage=Aplica\u00e7\u00f5es configuradas como Bearer-Only n\u00e3o t\u00eam permiss\u00e3o para iniciar o login pelo navegador
|
||||
standardFlowDisabledMessage=O cliente n\u00e3o tem permiss\u00e3o para iniciar o login com o response_type definido. O fluxo padr\u00e3o est\u00e1 desativado para o cliente.
|
||||
implicitFlowDisabledMessage=O cliente n\u00e3o tem permiss\u00e3o para iniciar o login com o response_type definido. O fluxo impl\u00edcito est\u00e1 desativado para o cliente.
|
||||
invalidRedirectUriMessage=URI de redirecionamento inv\u00e1lido
|
||||
unsupportedNameIdFormatMessage=NameIDFormat n\u00e3o suportado
|
||||
invalidRequesterMessage=Solicitante inv\u00e1lido
|
||||
registrationNotAllowedMessage=Registo n\u00e3o \u00e9 permitido
|
||||
resetCredentialNotAllowedMessage=Sem permiss\u00e3o de redefini\u00e7\u00e3o de credenciais
|
||||
permissionNotApprovedMessage=Permiss\u00e3o n\u00e3o aprovada.
|
||||
noRelayStateInResponseMessage=Sem estado de retransmiss\u00e3o na resposta do provedor de identidade.
|
||||
insufficientPermissionMessage=Permiss\u00f5es insuficientes para vincular identidades.
|
||||
couldNotProceedWithAuthenticationRequestMessage=N\u00e3o foi poss\u00edvel proceder com a solicita\u00e7\u00e3o de autentica\u00e7\u00e3o ao provedor de identidade.
|
||||
couldNotObtainTokenMessage=N\u00e3o foi poss\u00edvel obter token do provedor de identidade.
|
||||
unexpectedErrorRetrievingTokenMessage=Erro inesperado ao recuperar token do provedor de identidade.
|
||||
unexpectedErrorHandlingResponseMessage=Erro inesperado ao tratar a resposta do provedor de identidade.
|
||||
identityProviderAuthenticationFailedMessage=Falha na autentica\u00e7\u00e3o. N\u00e3o foi poss\u00edvel autenticar com o provedor de identidade.
|
||||
couldNotSendAuthenticationRequestMessage=N\u00e3o foi poss\u00edvel enviar a solicita\u00e7\u00e3o de autentica\u00e7\u00e3o ao provedor de identidade.
|
||||
unexpectedErrorHandlingRequestMessage=Erro inesperado ao tratar o pedido de autentica\u00e7\u00e3o ao provedor de identidade.
|
||||
invalidAccessCodeMessage=C\u00f3digo de acesso inv\u00e1lido.
|
||||
sessionNotActiveMessage=Sess\u00e3o inativa.
|
||||
invalidCodeMessage=Um erro correu, por favor, fa\u00e7a login novamente atrav\u00e9s da aplica\u00e7\u00e3o.
|
||||
cookieNotFoundMessage=Cookie n\u00e3o encontrado. Certifique-se de que os cookies est\u00e3o ativos no seu navegador.
|
||||
insufficientLevelOfAuthentication=O n\u00edvel de autentica\u00e7\u00e3o solicitado n\u00e3o foi satisfeito.
|
||||
identityProviderUnexpectedErrorMessage=Erro inesperado durante a autentica\u00e7\u00e3o com o provedor de identidade
|
||||
identityProviderMissingStateMessage=Par\u00e2metro de estado ausente na resposta do provedor de identidades.
|
||||
identityProviderMissingCodeOrErrorMessage=C\u00f3digo ausente ou par\u00e2metro de erro na resposta do provedor de identidade.
|
||||
identityProviderInvalidResponseMessage=Resposta inv\u00e1lida do provedor de identidade.
|
||||
identityProviderInvalidSignatureMessage=Assinatura inv\u00e1lida na resposta do provedor de identidade.
|
||||
identityProviderNotFoundMessage=N\u00e3o foi poss\u00edvel encontrar um provedor de identidade com o identificador.
|
||||
identityProviderLinkSuccess=O seu endere\u00e7o de e-mail foi confirmado com sucesso. Por favor, retorne \u00e0 aba original e continue com o login.
|
||||
staleCodeMessage=Esta p\u00e1gina n\u00e3o \u00e9 mais v\u00e1lida. Por favor, volte \u00e0 aplica\u00e7\u00e3o e fa\u00e7a login novamente
|
||||
realmSupportsNoCredentialsMessage=O dom\u00ednio n\u00e3o suporta nenhum tipo de credencial.
|
||||
credentialSetupRequired=N\u00e3o \u00e9 poss\u00edvel fazer o login, a configura\u00e7\u00e3o de credencial \u00e9 necess\u00e1ria.
|
||||
identityProviderNotUniqueMessage=O dom\u00ednio suporta m\u00faltiplos provedores de identidade. N\u00e3o foi poss\u00edvel determinar qual o provedor de identidade deve ser usado para autentica\u00e7\u00e3o.
|
||||
emailVerifiedMessage=O seu endere\u00e7o de e-mail foi confirmado.
|
||||
emailVerifiedAlreadyMessage=O seu endere\u00e7o de e-mail j\u00e1 foi confirmado.
|
||||
staleEmailVerificationLink=A liga\u00e7\u00e3o em que clicou \u00e9 uma liga\u00e7\u00e3o antiga e est\u00e1 inv\u00e1lida. Talvez j\u00e1 tenha confirmado o seu endere\u00e7o de e-mail.
|
||||
identityProviderAlreadyLinkedMessage=A conta retornada do {0} j\u00e1 est\u00e1 vinculada a outro utilizador.
|
||||
confirmAccountLinking=Confirme a vincula\u00e7\u00e3o da conta {0} do provedor de identidade {1} \u00e0 sua conta.
|
||||
confirmEmailAddressVerification=Confirme a validade do endere\u00e7o de e-mail {0}.
|
||||
confirmExecutionOfActions=Execute a(s) seguinte(s) a\u00e7\u00e3o(\u00f5es)
|
||||
backToApplication=« Voltar para a aplica\u00e7\u00e3o
|
||||
missingParameterMessage=Par\u00e2metros ausentes\: {0}
|
||||
clientNotFoundMessage=Cliente n\u00e3o encontrado.
|
||||
clientDisabledMessage=Cliente desativado.
|
||||
invalidParameterMessage=Par\u00e2metro inv\u00e1lido\: {0}
|
||||
alreadyLoggedIn=J\u00e1 est\u00e1 logado.
|
||||
differentUserAuthenticated=J\u00e1 est\u00e1 autenticado como outro utilizador ''{0}'' nesta sess\u00e3o. Por favor, finalize a sess\u00e3o primeiro.
|
||||
brokerLinkingSessionExpired=A vincul\u00e7\u00e3o de conta do provedor de identidade foi solicitado, mas a sess\u00e3o atual n\u00e3o \u00e9 mais v\u00e1lida.
|
||||
proceedWithAction=» Clique aqui para continuar
|
||||
acrNotFulfilled=Requisitos de autentica\u00e7\u00e3o n\u00e3o cumpridos
|
||||
requiredAction.CONFIGURE_TOTP=Configurar Autentica\u00e7\u00e3o de Dois Fatores
|
||||
requiredAction.TERMS_AND_CONDITIONS=Termos e Condi\u00e7\u00f5es
|
||||
requiredAction.UPDATE_PASSWORD=Atualizar Palavra-passe
|
||||
requiredAction.UPDATE_PROFILE=Atualizar Perfil
|
||||
requiredAction.VERIFY_EMAIL=Verificar Endere\u00e7o de E-mail
|
||||
requiredAction.CONFIGURE_RECOVERY_AUTHN_CODES=Gerar c\u00f3digos de recupera\u00e7\u00e3o
|
||||
requiredAction.webauthn-register-passwordless=Webauthn Registe-se sem palavra-passe
|
||||
invalidTokenRequiredActions=As a\u00e7\u00f5es necess\u00e1rias inclu\u00eddas na liga\u00e7\u00e3o s\u00e3o inv\u00e1lidas
|
||||
doX509Login=Ser\u00e1 logado como\:
|
||||
clientCertificate=Certificado X509 do cliente\:
|
||||
noCertificate=[Sem Certificado]
|
||||
pageNotFound=P\u00e1gina n\u00e3o encontrada
|
||||
internalServerError=Ocorreu um erro interno no servidor
|
||||
console-username=Nome de utilizador\:
|
||||
console-password=Palavra-passe\:
|
||||
console-otp=C\u00f3digo de uso \u00fanico\:
|
||||
console-new-password=Nova Palavra-passe\:
|
||||
console-confirm-password=Confirma\u00e7\u00e3o de Palavra-passe\:
|
||||
console-update-password=Precisa atualizar a sua palavra-passe.
|
||||
console-verify-email=Precisa verificar o seu endere\u00e7o de e-mail. Envi\u00e1mos um e-mail para {0} que cont\u00e9m um c\u00f3digo de verifica\u00e7\u00e3o. Digite o c\u00f3digo enviado no campo abaixo.
|
||||
console-email-code=C\u00f3digo do e-mail\:
|
||||
console-accept-terms=Aceita os Termos? [s/n]\:
|
||||
console-accept=s
|
||||
openshift.scope.user_info=Informa\u00e7\u00f5es do utilizador
|
||||
openshift.scope.user_check-access=Informa\u00e7\u00f5es de acesso do utilizador
|
||||
openshift.scope.user_full=Acesso Completo
|
||||
openshift.scope.list-projects=Listar projetos
|
||||
saml.post-form.title=Redirecionamento de Autentica\u00e7\u00e3o
|
||||
saml.post-form.message=Redirecionando... Por favor, aguarde.
|
||||
saml.post-form.js-disabled=O JavaScript est\u00e1 desativado. \u00c9 altamente recomend\u00e1vel ativ\u00e1-lo. Clique no bot\u00e3o abaixo para continuar.
|
||||
saml.artifactResolutionServiceInvalidResponse=N\u00e3o foi poss\u00edvel resolver o artefacto.
|
||||
otp-display-name=Aplica\u00e7\u00e3o Autenticador
|
||||
otp-help-text=Insira o c\u00f3digo de verifica\u00e7\u00e3o da aplica\u00e7\u00e3o autenticador.
|
||||
otp-reset-description=Qual a configura\u00e7\u00e3o de dois fatores a remover?
|
||||
password-display-name=Palavra-passe
|
||||
password-help-text=Fa\u00e7a o login insirindo a sua palavra-passe.
|
||||
auth-username-form-display-name=Nome de utilizador
|
||||
auth-username-form-help-text=Fa\u00e7a o login insirindo o seu nome de utilizador.
|
||||
auth-username-password-form-display-name=Nome de utilizador e palavra-passe
|
||||
auth-username-password-form-help-text=Fa\u00e7a o login insirindo o seu nome de utilizador e palavra-passe.
|
||||
auth-recovery-authn-code-form-display-name=C\u00f3digo de Autentica\u00e7\u00e3o de Recupera\u00e7\u00e3o
|
||||
auth-recovery-authn-code-form-help-text=Insira um c\u00f3digo de autentica\u00e7\u00e3o de recupera\u00e7\u00e3o de uma lista gerada anteriormente.
|
||||
auth-recovery-code-info-message=Insira o c\u00f3digo de recupera\u00e7\u00e3o especificado.
|
||||
auth-recovery-code-prompt=C\u00f3digo de recupera\u00e7\u00e3o \#{0}
|
||||
auth-recovery-code-header=Fa\u00e7a login com um c\u00f3digo de autentica\u00e7\u00e3o de recupera\u00e7\u00e3o
|
||||
recovery-codes-error-invalid=C\u00f3digo de autentica\u00e7\u00e3o de recupera\u00e7\u00e3o inv\u00e1lido
|
||||
recovery-code-config-header=C\u00f3digos de Autentica\u00e7\u00e3o de Recupera\u00e7\u00e3o
|
||||
recovery-code-config-warning-title=Esses c\u00f3digos de recupera\u00e7\u00e3o n\u00e3o aparecer\u00e3o novamente ap\u00f3s sair desta p\u00e1gina
|
||||
recovery-code-config-warning-message=Certifique-se de imprimir, descarregar ou copi\u00e1-los para um gestor de senhas e guard\u00e1-los. Cancelar esta configura\u00e7\u00e3o remover\u00e1 esses c\u00f3digos de recupera\u00e7\u00e3o da sua conta.
|
||||
recovery-codes-print=Imprimir
|
||||
recovery-codes-download=Descarregar
|
||||
recovery-codes-copy=Copiar
|
||||
recovery-codes-copied=Copiado
|
||||
recovery-codes-confirmation-message=Guardei esses c\u00f3digos em algum lugar seguro
|
||||
recovery-codes-action-complete=Configura\u00e7\u00e3o completa
|
||||
recovery-codes-action-cancel=Cancelar configura\u00e7\u00e3o
|
||||
recovery-codes-download-file-header=Guarde esses c\u00f3digos de recupera\u00e7\u00e3o em algum lugar seguro.
|
||||
recovery-codes-download-file-description=Os c\u00f3digos de recupera\u00e7\u00e3o s\u00e3o c\u00f3digos de uso \u00fanico que permitem que fa\u00e7a login na sua conta se n\u00e3o tiver acesso ao seu autenticador.
|
||||
recovery-codes-download-file-date=Esses c\u00f3digos foram gerados em
|
||||
recovery-codes-label-default=c\u00f3digos de recupera\u00e7\u00e3o
|
||||
webauthn-display-name=Chave de Seguran\u00e7a
|
||||
webauthn-help-text=Use a sua chave de seguran\u00e7a para fazer login.
|
||||
webauthn-passwordless-display-name=Chave de Seguran\u00e7a
|
||||
webauthn-passwordless-help-text=Use a sua chave de seguran\u00e7a para fazer login sem palavra-passe.
|
||||
webauthn-login-title=Login com Chave de Seguran\u00e7a
|
||||
webauthn-registration-title=Registar Chave de Seguran\u00e7a
|
||||
webauthn-available-authenticators=Autenticadores dispon\u00edveis
|
||||
webauthn-unsupported-browser-text=WebAuthn n\u00e3o \u00e9 suportado pelo seu navegador. Tente outro navegador ou entre em contacto com um administrador.
|
||||
webauthn-doAuthenticate=Entrar com chave de seguran\u00e7a
|
||||
webauthn-createdAt-label=Criado
|
||||
webauthn-error-title=Erro de Chave de Seguran\u00e7a
|
||||
webauthn-error-registration=Falha ao registar a sua Chave de Seguran\u00e7a.
|
||||
webauthn-error-api-get=Falha ao autenticar usando a Chave de Seguran\u00e7a.
|
||||
webauthn-error-different-user=O primeiro utilizador autenticado n\u00e3o corresponde \u00e0quele autenticado pela Chave de Seguran\u00e7a.
|
||||
webauthn-error-auth-verification=O resultado da autentica\u00e7\u00e3o da Chave de Seguran\u00e7a \u00e9 inv\u00e1lido.<br /> {0}
|
||||
webauthn-error-register-verification=O resultado do registo da Chave de Seguran\u00e7a \u00e9 inv\u00e1lido.<br /> {0}
|
||||
webauthn-error-user-not-found=Utilizador desconhecido autenticado pela Chave de Seguran\u00e7a.
|
||||
identity-provider-redirector=Conecte-se com outro Provedor de Identidade
|
||||
identity-provider-login-label=Ou entre com
|
||||
idp-email-verification-display-name=Verifica\u00e7\u00e3o de E-mail
|
||||
idp-email-verification-help-text=Vincule a sua conta validando o seu e-mail.
|
||||
idp-username-password-form-display-name=Utilizador e palavra-passe
|
||||
idp-username-password-form-help-text=Vincule a sua conta fazendo login.
|
||||
finalDeletionConfirmation=Se apagar a sua conta, ela n\u00e3o poder\u00e1 ser recuperada. Para manter a sua conta, clique em Cancelar.
|
||||
irreversibleAction=Esta a\u00e7\u00e3o \u00e9 irrevers\u00edvel
|
||||
deleteAccountConfirm=Confirma\u00e7\u00e3o para apagar conta
|
||||
deletingImplies=Apagar a sua conta implica\:
|
||||
errasingData=Remover todos os seus dados
|
||||
loggingOutImmediately=Sair da aplica\u00e7\u00e3o imediatamente
|
||||
accountUnusable=Qualquer uso subsequente da aplica\u00e7\u00e3o n\u00e3o ser\u00e1 poss\u00edvel com esta conta
|
||||
userDeletedSuccessfully=Utilizador apagado com sucesso
|
||||
access-denied=Acesso negado
|
||||
access-denied-when-idp-auth=Acesso negado ao autenticar com {0}
|
||||
frontchannel-logout.title=Saindo
|
||||
frontchannel-logout.message=Est\u00e1 a sair das seguintes aplica\u00e7\u00f5es
|
||||
logoutConfirmTitle=Saindo
|
||||
logoutConfirmHeader=Deseja mesmo sair?
|
||||
doLogout=Sair
|
||||
readOnlyUsernameMessage=N\u00e3o pode atualizar o seu nome de utilizador, porque \u00e9 apenas de leitura.
|
||||
error-invalid-multivalued-size=O atributo {0} tem que conter no m\u00ednimo {1} e no m\u00e1ximo {2} valores.
|
||||
shouldBeEqual={0} deve ser igual a {1}
|
||||
shouldBeDifferent={0} deve ser diferente de {1}
|
||||
shouldMatchPattern=O padr\u00e3o deve corresponder\: `/{0}/`
|
||||
mustBeAnInteger=Deve ser um n\u00famero inteiro
|
||||
notAValidOption=N\u00e3o \u00e9 uma op\u00e7\u00e3o v\u00e1lida
|
||||
selectAnOption=Selecione uma op\u00e7\u00e3o
|
||||
remove=Remover
|
||||
addValue=Adicionar valor
|
||||
languages=Idiomas
|
@ -0,0 +1,218 @@
|
||||
|
||||
doLogIn=\u0412\u0445\u043e\u0434
|
||||
doRegister=\u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f
|
||||
doRegisterSecurityKey=\u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f
|
||||
doCancel=\u041e\u0442\u043c\u0435\u043d\u0430
|
||||
doSubmit=\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044c
|
||||
doYes=\u0414\u0430
|
||||
doNo=\u041d\u0435\u0442
|
||||
doContinue=\u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c
|
||||
doAccept=\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044c
|
||||
doDecline=\u041e\u0442\u043c\u0435\u043d\u0438\u0442\u044c
|
||||
doForgotPassword=\u0417\u0430\u0431\u044b\u043b\u0438 \u043f\u0430\u0440\u043e\u043b\u044c?
|
||||
doClickHere=\u041d\u0430\u0436\u043c\u0438\u0442\u0435 \u0441\u044e\u0434\u0430
|
||||
doImpersonate=\u0418\u043c\u043f\u0435\u0440\u0441\u043e\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f
|
||||
kerberosNotConfigured=Kerberos \u043d\u0435 \u0441\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d
|
||||
kerberosNotConfiguredTitle=Kerberos \u043d\u0435 \u0441\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d
|
||||
bypassKerberosDetail=\u041b\u0438\u0431\u043e \u0432\u044b \u043d\u0435 \u0432\u043e\u0448\u043b\u0438 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Kerberos, \u043b\u0438\u0431\u043e \u0432\u0430\u0448 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u043d\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d \u0434\u043b\u044f \u0432\u0445\u043e\u0434\u0430 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 Kerberos. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043d\u0430\u0436\u043c\u0438\u0442\u0435 \u043a\u043d\u043e\u043f\u043a\u0443 ''\u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c'' \u0434\u043b\u044f \u0432\u0445\u043e\u0434\u0430 \u0432 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u0440\u0435\u0434\u0441\u0442\u0432
|
||||
kerberosNotSetUp=Kerberos \u043d\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d. \u0412\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u043e\u0439\u0442\u0438.
|
||||
registerWithTitle=\u0417\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0441 {0}
|
||||
registerWithTitleHtml={0}
|
||||
loginTitle=\u0412\u0445\u043e\u0434 {0}
|
||||
loginTitleHtml={0}
|
||||
impersonateTitle={0} \u0418\u043c\u043f\u0435\u0440\u0441\u043e\u043d\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f
|
||||
impersonateTitleHtml=<strong>{0}</strong> \u0418\u043c\u043f\u0435\u0440\u0441\u043e\u043d\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f
|
||||
realmChoice=Realm
|
||||
unknownUser=\u041d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c
|
||||
loginTotpTitle=\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\u0433\u043e \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0430
|
||||
loginProfileTitle=\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0443\u0447\u0435\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438
|
||||
loginTimeout=\u0412\u044b \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0434\u043e\u043b\u0433\u043e \u0431\u0435\u0437\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u043b\u0438. \u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u043d\u0430\u0447\u043d\u0435\u0442\u0441\u044f \u0441 \u043d\u0430\u0447\u0430\u043b\u0430.
|
||||
oauthGrantTitle=\u0421\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f
|
||||
oauthGrantTitleHtml={0}
|
||||
errorTitle=\u041c\u044b \u0441\u043e\u0436\u0430\u043b\u0435\u0435\u043c...
|
||||
errorTitleHtml=\u041c\u044b <strong>\u0441\u043e\u0436\u0430\u043b\u0435\u0435\u043c</strong> ...
|
||||
emailVerifyTitle=\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435 \u0430\u0434\u0440\u0435\u0441\u0430 E-mail
|
||||
emailForgotTitle=\u0417\u0430\u0431\u044b\u043b\u0438 \u043f\u0430\u0440\u043e\u043b\u044c?
|
||||
updatePasswordTitle=\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0430\u0440\u043e\u043b\u044f
|
||||
codeSuccessTitle=\u0423\u0441\u043f\u0435\u0448\u043d\u044b\u0439 \u043a\u043e\u0434
|
||||
codeErrorTitle=\u041e\u0448\u0438\u0431\u043e\u0447\u043d\u044b\u0439 \u043a\u043e\u0434\: {0}
|
||||
pageNotFound=\u0421\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u0430
|
||||
termsTitle=\u0423\u0441\u043b\u043e\u0432\u0438\u044f \u0438 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f
|
||||
termsTitleHtml=\u0423\u0441\u043b\u043e\u0432\u0438\u044f \u0438 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f
|
||||
termsText=
|
||||
recaptchaFailed=\u041d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u0430\u044f Recaptcha
|
||||
recaptchaNotConfigured=Recaptcha \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f, \u043d\u043e \u043d\u0435 \u0441\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0430
|
||||
consentDenied=\u0412 \u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u0438\u0438 \u043e\u0442\u043a\u0430\u0437\u0430\u043d\u043e.
|
||||
saml.post-form.title=\u041f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438
|
||||
saml.post-form.message=\u041f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043f\u043e\u0434\u043e\u0436\u0434\u0438\u0442\u0435.
|
||||
noAccount=\u041d\u043e\u0432\u044b\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c?
|
||||
username=\u0418\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f
|
||||
usernameOrEmail=\u0418\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438\u043b\u0438 E-mail
|
||||
firstName=\u0418\u043c\u044f
|
||||
givenName=\u0412\u044b\u0434\u0430\u043d\u043d\u043e\u0435 \u0438\u043c\u044f
|
||||
fullName=\u041f\u043e\u043b\u043d\u043e\u0435 \u0438\u043c\u044f
|
||||
lastName=\u0424\u0430\u043c\u0438\u043b\u0438\u044f
|
||||
familyName=\u0424\u0430\u043c\u0438\u043b\u0438\u044f
|
||||
email=E-mail
|
||||
password=\u041f\u0430\u0440\u043e\u043b\u044c
|
||||
passwordConfirm=\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435 \u043f\u0430\u0440\u043e\u043b\u044f
|
||||
passwordNew=\u041d\u043e\u0432\u044b\u0439 \u043f\u0430\u0440\u043e\u043b\u044c
|
||||
passwordNewConfirm=\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435 \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u0430\u0440\u043e\u043b\u044f
|
||||
rememberMe=\u0417\u0430\u043f\u043e\u043c\u043d\u0438\u0442\u044c \u043c\u0435\u043d\u044f
|
||||
authenticatorCode=\u041e\u0434\u043d\u043e\u0440\u0430\u0437\u043e\u0432\u044b\u0439 \u043a\u043e\u0434
|
||||
address=\u0410\u0434\u0440\u0435\u0441
|
||||
street=\u0423\u043b\u0438\u0446\u0430
|
||||
locality=\u0413\u043e\u0440\u043e\u0434
|
||||
region=\u0420\u0435\u0433\u0438\u043e\u043d
|
||||
postal_code=\u041f\u043e\u0447\u0442\u043e\u0432\u044b\u0439 \u0438\u043d\u0434\u0435\u043a\u0441
|
||||
country=\u0421\u0442\u0440\u0430\u043d\u0430
|
||||
emailVerified=E-mail \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d
|
||||
gssDelegationCredential=\u0414\u0435\u043b\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0443\u0447\u0435\u0442\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 GSS
|
||||
logoutOtherSessions=\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0432\u044b\u0445\u043e\u0434 \u043d\u0430 \u0434\u0440\u0443\u0433\u0438\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u0445
|
||||
loginAccountTitle=\u0412\u0445\u043e\u0434 \u0432 \u0443\u0447\u0435\u0442\u043d\u0443\u044e \u0437\u0430\u043f\u0438\u0441\u044c
|
||||
loginTotpStep1=\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u043e\u0434\u043d\u043e \u0438\u0437 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043d\u0430 \u0432\u0430\u0448 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0439 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\:
|
||||
loginTotpStep2=\u041e\u0442\u043a\u0440\u043e\u0439\u0442\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0438 \u043f\u0440\u043e\u0441\u043a\u0430\u043d\u0438\u0440\u0443\u0439\u0442\u0435 QR-\u043a\u043e\u0434\:
|
||||
loginTotpStep3=\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043e\u0434\u043d\u043e\u0440\u0430\u0437\u043e\u0432\u044b\u0439 \u043a\u043e\u0434, \u0432\u044b\u0434\u0430\u043d\u043d\u044b\u0439 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c, \u0438 \u043d\u0430\u0436\u043c\u0438\u0442\u0435 \u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044c \u0434\u043b\u044f \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438.
|
||||
loginTotpManualStep2=\u041e\u0442\u043a\u0440\u043e\u0439\u0442\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0438 \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u043a\u043b\u044e\u0447\:
|
||||
loginTotpManualStep3=\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438, \u0435\u0441\u043b\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u0445 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c\:
|
||||
loginTotpStep3DeviceName=\u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u0438\u043c\u044f \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0432\u0430\u043c \u043d\u0430\u0439\u0442\u0438 \u0435\u0433\u043e \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 \u0432\u0430\u0448\u0438\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432.
|
||||
loginTotpUnableToScan=\u041d\u0435 \u0443\u0434\u0430\u0435\u0442\u0441\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435?
|
||||
loginTotpScanBarcode=\u0421\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c QR-\u043a\u043e\u0434?
|
||||
loginOtpOneTime=\u041e\u0434\u043d\u043e\u0440\u0430\u0437\u043e\u0432\u044b\u0439 \u043a\u043e\u0434
|
||||
loginTotpDeviceName=\u0418\u043c\u044f \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430
|
||||
loginTotpType=\u0422\u0438\u043f
|
||||
loginTotpAlgorithm=\u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c
|
||||
loginTotpDigits=\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0446\u0438\u0444\u0440
|
||||
loginTotpInterval=\u0418\u043d\u0442\u0435\u0440\u0432\u0430\u043b
|
||||
loginTotpCounter=\u0421\u0447\u0435\u0442\u0447\u0438\u043a
|
||||
oauthGrantRequest=\u0412\u044b \u0441\u043e\u0433\u043b\u0430\u0441\u0443\u0435\u0442\u0435 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u044d\u0442\u0438\u043c \u043f\u0440\u0438\u0432\u0438\u043b\u0435\u0433\u0438\u044f\u043c?
|
||||
inResource=\u0432
|
||||
emailVerifyInstruction1=\u0412\u0430\u043c \u0431\u044b\u043b\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043e \u043f\u0438\u0441\u044c\u043c\u043e \u0441 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f\u043c\u0438 \u0434\u043b\u044f \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u044f \u0430\u0434\u0440\u0435\u0441\u0430 E-mail.
|
||||
emailVerifyInstruction2=\u041d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043f\u0438\u0441\u044c\u043c\u043e \u0441 \u043a\u043e\u0434\u043e\u043c \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u044f?
|
||||
emailVerifyInstruction3=\u0434\u043b\u044f \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0439 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u043f\u0438\u0441\u044c\u043c\u0430.
|
||||
emailLinkIdpTitle=\u0421\u0432\u044f\u0437\u0430\u0442\u044c {0}
|
||||
emailLinkIdp1=\u0412\u0430\u043c \u0431\u044b\u043b\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043e \u043f\u0438\u0441\u044c\u043c\u043e \u0441 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f\u043c\u0438 \u043f\u043e \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044e {0} \u0443\u0447\u0435\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 {1} \u0441 \u0432\u0430\u0448\u0435\u0439 \u0443\u0447\u0435\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u044c\u044e {2}.
|
||||
emailLinkIdp2=\u041d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043a\u043e\u0434 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u044f \u043d\u0430 \u0432\u0430\u0448 E-mail?
|
||||
emailLinkIdp3=\u0434\u043b\u044f \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0439 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u043f\u0438\u0441\u044c\u043c\u0430.
|
||||
backToLogin=« \u041d\u0430\u0437\u0430\u0434 \u043a\u043e \u0432\u0445\u043e\u0434\u0443
|
||||
emailInstruction=\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0412\u0430\u0448\u0435 \u0438\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438\u043b\u0438 E-mail \u0438 \u043c\u044b \u0432\u044b\u0448\u043b\u0435\u043c \u0412\u0430\u043c \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u043f\u043e \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044e \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u0430\u0440\u043e\u043b\u044f.
|
||||
copyCodeInstruction=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0441\u043a\u043e\u043f\u0438\u0440\u0443\u0439\u0442\u0435 \u044d\u0442\u043e\u0442 \u043a\u043e\u0434 \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\:
|
||||
personalInfo=\u041f\u0435\u0440\u0441\u043e\u043d\u0430\u043b\u044c\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f\:
|
||||
role_admin=\u0410\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440
|
||||
role_realm-admin=\u0410\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440 realm
|
||||
role_create-realm=\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 realm
|
||||
role_create-client=\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043a\u043b\u0438\u0435\u043d\u0442\u0430
|
||||
role_view-realm=\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 realm
|
||||
role_view-users=\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439
|
||||
role_view-applications=\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439
|
||||
role_view-clients=\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432
|
||||
role_view-events=\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 \u0441\u043e\u0431\u044b\u0442\u0438\u0439
|
||||
role_view-identity-providers=\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u043e\u0432 \u0443\u0447\u0435\u0442\u043d\u044b\u0445 \u0437\u0430\u043f\u0438\u0441\u0435\u0439
|
||||
role_manage-realm=\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 realm
|
||||
role_manage-users=\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c\u0438
|
||||
role_manage-applications=\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c\u0438
|
||||
role_manage-identity-providers=\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430\u043c\u0438 \u0443\u0447\u0435\u0442\u043d\u044b\u0445 \u0437\u0430\u043f\u0438\u0441\u0435\u0439
|
||||
role_manage-clients=\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043c\u0438
|
||||
role_manage-events=\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f\u043c\u0438
|
||||
role_view-profile=\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 \u043f\u0440\u043e\u0444\u0438\u043b\u044f
|
||||
role_manage-account=\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0443\u0447\u0435\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u044c\u044e
|
||||
role_read-token=\u0427\u0442\u0435\u043d\u0438\u0435 \u0442\u043e\u043a\u0435\u043d\u0430
|
||||
role_offline-access=\u041e\u0444\u0444\u043b\u0430\u0439\u043d \u0434\u043e\u0441\u0442\u0443\u043f
|
||||
client_account=\u0423\u0447\u0435\u0442\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c
|
||||
client_security-admin-console=\u041a\u043e\u043d\u0441\u043e\u043b\u044c \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438
|
||||
client_admin-cli=\u041a\u043e\u043c\u0430\u043d\u0434\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430
|
||||
client_realm-management=\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 realm
|
||||
client_broker=\u0411\u0440\u043e\u043a\u0435\u0440
|
||||
invalidUserMessage=\u041d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0435 \u0438\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438\u043b\u0438 \u043f\u0430\u0440\u043e\u043b\u044c.
|
||||
invalidEmailMessage=\u041d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 E-mail.
|
||||
accountDisabledMessage=\u0423\u0447\u0435\u0442\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u0430, \u0441\u0432\u044f\u0436\u0438\u0442\u0435\u0441\u044c \u0441 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u043e\u043c.
|
||||
accountTemporarilyDisabledMessage=\u0423\u0447\u0435\u0442\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u0430, \u0441\u0432\u044f\u0436\u0438\u0442\u0435\u0441\u044c \u0441 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u043e\u043c \u0438\u043b\u0438 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u043f\u043e\u0437\u0436\u0435.
|
||||
expiredCodeMessage=\u0412\u0445\u043e\u0434 \u043f\u0440\u043e\u0441\u0440\u043e\u0447\u0435\u043d \u043f\u043e \u0442\u0430\u0439\u043c\u0430\u0443\u0442\u0443. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0432\u043e\u0439\u0434\u0438\u0442\u0435 \u0441\u043d\u043e\u0432\u0430.
|
||||
missingFirstNameMessage=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u0438\u043c\u044f.
|
||||
missingLastNameMessage=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u0444\u0430\u043c\u0438\u043b\u0438\u044e.
|
||||
missingEmailMessage=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u0432\u0432\u0435\u0434\u0438\u0442\u0435 E-mail.
|
||||
missingUsernameMessage=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u0438\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f.
|
||||
missingPasswordMessage=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u043f\u0430\u0440\u043e\u043b\u044c.
|
||||
missingTotpMessage=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u043a\u043e\u0434 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0430.
|
||||
notMatchPasswordMessage=\u041f\u0430\u0440\u043e\u043b\u0438 \u043d\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044e\u0442.
|
||||
invalidPasswordExistingMessage=\u041d\u0435\u0432\u0435\u0440\u043d\u044b\u0439 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u043f\u0430\u0440\u043e\u043b\u044c.
|
||||
invalidPasswordConfirmMessage=\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435 \u043f\u0430\u0440\u043e\u043b\u044f \u043d\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442.
|
||||
invalidTotpMessage=\u041d\u0435\u0432\u0435\u0440\u043d\u044b\u0439 \u043a\u043e\u0434 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0430.
|
||||
usernameExistsMessage=\u0418\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0443\u0436\u0435 \u0437\u0430\u043d\u044f\u0442\u043e.
|
||||
emailExistsMessage=E-mail \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442.
|
||||
federatedIdentityExistsMessage=\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0441 {0} {1} \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u0432\u043e\u0439\u0434\u0438\u0442\u0435 \u0432 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0443\u0447\u0435\u0442\u043d\u044b\u043c\u0438 \u0437\u0430\u043f\u0438\u0441\u044f\u043c\u0438, \u0447\u0442\u043e\u0431\u044b \u0441\u0432\u044f\u0437\u0430\u0442\u044c \u044d\u0442\u0443 \u0443\u0447\u0435\u0442\u043d\u0443\u044e \u0437\u0430\u043f\u0438\u0441\u044c.
|
||||
confirmLinkIdpTitle=\u0423\u0447\u0435\u0442\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442
|
||||
federatedIdentityConfirmLinkMessage=\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0441 {0} {1} \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0443\u0435\u0442. \u0425\u043e\u0442\u0438\u0442\u0435 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c?
|
||||
federatedIdentityConfirmReauthenticateMessage=\u0410\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u0439\u0442\u0435\u0441\u044c, \u0447\u0442\u043e\u0431\u044b \u0441\u0432\u044f\u0437\u0430\u0442\u044c \u0412\u0430\u0448\u0443 \u0443\u0447\u0435\u0442\u043d\u0443\u044e \u0437\u0430\u043f\u0438\u0441\u044c \u0441 {0}
|
||||
confirmLinkIdpReviewProfile=\u041e\u0431\u0437\u043e\u0440 \u043f\u0440\u043e\u0444\u0438\u043b\u044f
|
||||
confirmLinkIdpContinue=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0443\u044e \u0443\u0447\u0435\u0442\u043d\u0443\u044e \u0437\u0430\u043f\u0438\u0441\u044c
|
||||
configureTotpMessage=\u0412\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0432 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435, \u0447\u0442\u043e\u0431\u044b \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0443\u0447\u0435\u0442\u043d\u0443\u044e \u0437\u0430\u043f\u0438\u0441\u044c.
|
||||
updateProfileMessage=\u0412\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u0441\u0432\u043e\u0439 \u043f\u0440\u043e\u0444\u0438\u043b\u044c, \u0447\u0442\u043e\u0431\u044b \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0412\u0430\u0448\u0443 \u0443\u0447\u0435\u0442\u043d\u0443\u044e \u0437\u0430\u043f\u0438\u0441\u044c.
|
||||
updatePasswordMessage=\u0412\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043f\u0430\u0440\u043e\u043b\u044c, \u0447\u0442\u043e\u0431\u044b \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0412\u0430\u0448\u0443 \u0443\u0447\u0435\u0442\u043d\u0443\u044e \u0437\u0430\u043f\u0438\u0441\u044c.
|
||||
verifyEmailMessage=\u0412\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044c \u0412\u0430\u0448 E-mail, \u0447\u0442\u043e\u0431\u044b \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0412\u0430\u0448\u0443 \u0443\u0447\u0435\u0442\u043d\u0443\u044e \u0437\u0430\u043f\u0438\u0441\u044c.
|
||||
linkIdpMessage=\u0412\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044c \u0412\u0430\u0448 E-mail, \u0447\u0442\u043e\u0431\u044b \u0441\u0432\u044f\u0437\u0430\u0442\u044c \u0412\u0430\u0448\u0443 \u0443\u0447\u0435\u0442\u043d\u0443\u044e \u0437\u0430\u043f\u0438\u0441\u044c \u0441 {0}.
|
||||
emailSentMessage=\u0412 \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u0412\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043f\u0438\u0441\u044c\u043c\u043e \u0441 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0438\u043c\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f\u043c\u0438.
|
||||
emailSendErrorMessage=\u041d\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043f\u0438\u0441\u044c\u043c\u043e. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u0435 \u043f\u043e\u0437\u0436\u0435.
|
||||
accountUpdatedMessage=\u0412\u0430\u0448\u0430 \u0443\u0447\u0435\u0442\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0430.
|
||||
accountPasswordUpdatedMessage=\u0412\u0430\u0448 \u043f\u0430\u0440\u043e\u043b\u044c \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d.
|
||||
noAccessMessage=\u041d\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u0430
|
||||
invalidPasswordMinLengthMessage=\u041d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0439 \u043f\u0430\u0440\u043e\u043b\u044c\: \u0434\u043b\u0438\u043d\u0430 \u043f\u0430\u0440\u043e\u043b\u044f \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 {0} \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432(\u0430).
|
||||
invalidPasswordMinDigitsMessage=\u041d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0439 \u043f\u0430\u0440\u043e\u043b\u044c\: \u043f\u0430\u0440\u043e\u043b\u044c \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 {0} \u0446\u0438\u0444\u0440(\u044b).
|
||||
invalidPasswordMinLowerCaseCharsMessage=\u041d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0439 \u043f\u0430\u0440\u043e\u043b\u044c\: \u043f\u0430\u0440\u043e\u043b\u044c \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 {0} \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432(\u0430) \u0432 \u043d\u0438\u0436\u043d\u0435\u043c \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0435.
|
||||
invalidPasswordMinUpperCaseCharsMessage=\u041d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0439 \u043f\u0430\u0440\u043e\u043b\u044c\: \u043f\u0430\u0440\u043e\u043b\u044c \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 {0} \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432(\u0430) \u0432 \u0432\u0435\u0440\u0445\u043d\u0435\u043c \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0435.
|
||||
invalidPasswordMinSpecialCharsMessage=\u041d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0439 \u043f\u0430\u0440\u043e\u043b\u044c\: \u043f\u0430\u0440\u043e\u043b\u044c \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 {0} \u0441\u043f\u0435\u0446\u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432(\u0430).
|
||||
invalidPasswordNotUsernameMessage=\u041d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0439 \u043f\u0430\u0440\u043e\u043b\u044c\: \u043f\u0430\u0440\u043e\u043b\u044c \u043d\u0435 \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0442\u044c \u0441 \u0438\u043c\u0435\u043d\u0435\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f.
|
||||
invalidPasswordRegexPatternMessage=\u041d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0439 \u043f\u0430\u0440\u043e\u043b\u044c\: \u043f\u0430\u0440\u043e\u043b\u044c \u043d\u0435 \u043f\u0440\u043e\u0448\u0435\u043b \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u043f\u043e \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e\u043c\u0443 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044e.
|
||||
invalidPasswordHistoryMessage=\u041d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0439 \u043f\u0430\u0440\u043e\u043b\u044c\: \u043f\u0430\u0440\u043e\u043b\u044c \u043d\u0435 \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0442\u044c \u0441 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u043c(\u0438) {0} \u043f\u0430\u0440\u043e\u043b\u0435\u043c(\u044f\u043c\u0438).
|
||||
invalidPasswordGenericMessage=\u041d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0439 \u043f\u0430\u0440\u043e\u043b\u044c\: \u043d\u043e\u0432\u044b\u0439 \u043f\u0430\u0440\u043e\u043b\u044c \u043d\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043f\u0440\u0430\u0432\u0438\u043b\u0430\u043c \u043f\u0430\u0440\u043e\u043b\u044f.
|
||||
failedToProcessResponseMessage=\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043e\u0442\u0432\u0435\u0442
|
||||
httpsRequiredMessage=\u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f HTTPS
|
||||
realmNotEnabledMessage=Realm \u043d\u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d
|
||||
invalidRequestMessage=\u041d\u0435\u0432\u0435\u0440\u043d\u044b\u0439 \u0437\u0430\u043f\u0440\u043e\u0441
|
||||
failedLogout=\u0412\u044b\u0439\u0442\u0438 \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c
|
||||
unknownLoginRequesterMessage=\u041d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 \u043a\u043b\u0438\u0435\u043d\u0442
|
||||
loginRequesterNotEnabledMessage=\u041a\u043b\u0438\u0435\u043d\u0442 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d
|
||||
bearerOnlyMessage=Bearer-only \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c \u043d\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u0442\u0441\u044f \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0432\u0445\u043e\u0434\u0430 \u0447\u0435\u0440\u0435\u0437 \u0431\u0440\u0430\u0443\u0437\u0435\u0440
|
||||
standardFlowDisabledMessage=\u041a\u043b\u0438\u0435\u043d\u0442\u0443 \u043d\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u0442\u0441\u044f \u0438\u043d\u0438\u0446\u0438\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0445\u043e\u0434 \u0447\u0435\u0440\u0435\u0437 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u0441 \u0434\u0430\u043d\u043d\u044b\u043c response_type. Standard flow \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u0430.
|
||||
implicitFlowDisabledMessage=\u041a\u043b\u0438\u0435\u043d\u0442\u0443 \u043d\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u0442\u0441\u044f \u0438\u043d\u0438\u0446\u0438\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0445\u043e\u0434 \u0447\u0435\u0440\u0435\u0437 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u0441 \u0434\u0430\u043d\u043d\u044b\u043c response_type. Implicit flow \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u0430.
|
||||
invalidRedirectUriMessage=\u041d\u0435\u0432\u0435\u0440\u043d\u044b\u0439 uri \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0430\u0434\u0440\u0435\u0441\u0430\u0446\u0438\u0438
|
||||
unsupportedNameIdFormatMessage=\u041d\u0435\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0439 NameIDFormat
|
||||
invalidRequesterMessage=\u041d\u0435\u0432\u0435\u0440\u043d\u044b\u0439 \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u044e\u0449\u0438\u0439
|
||||
registrationNotAllowedMessage=\u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u043d\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0430
|
||||
resetCredentialNotAllowedMessage=\u0421\u0431\u0440\u043e\u0441 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d
|
||||
permissionNotApprovedMessage=\u0420\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043d\u0435 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u043e.
|
||||
noRelayStateInResponseMessage=\u041d\u0435\u0442 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0432 \u043e\u0442\u0432\u0435\u0442\u0435 \u043e\u0442 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430 \u0443\u0447\u0435\u0442\u043d\u044b\u0445 \u0437\u0430\u043f\u0438\u0441\u0435\u0439.
|
||||
insufficientPermissionMessage=\u041d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u043e\u043b\u043d\u043e\u043c\u043e\u0447\u0438\u0439 \u0434\u043b\u044f \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u044f \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432.
|
||||
couldNotProceedWithAuthenticationRequestMessage=\u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0437\u0430\u043f\u0440\u043e\u0441 \u0432 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0435 \u0443\u0447\u0435\u0442\u043d\u044b\u0445 \u0437\u0430\u043f\u0438\u0441\u0435\u0439.
|
||||
couldNotObtainTokenMessage=\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0442\u043e\u043a\u0435\u043d \u043e\u0442 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430 \u0443\u0447\u0435\u0442\u043d\u044b\u0445 \u0437\u0430\u043f\u0438\u0441\u0435\u0439.
|
||||
unexpectedErrorRetrievingTokenMessage=\u041d\u0435\u043f\u0440\u0435\u0434\u0432\u0438\u0434\u0435\u043d\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0438 \u0442\u043e\u043a\u0435\u043d\u0430 \u043e\u0442 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430 \u0443\u0447\u0435\u0442\u043d\u044b\u0445 \u0437\u0430\u043f\u0438\u0441\u0435\u0439.
|
||||
unexpectedErrorHandlingResponseMessage=\u041d\u0435\u043f\u0440\u0435\u0434\u0432\u0438\u0434\u0435\u043d\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043e\u0442\u0432\u0435\u0442\u0430 \u043e\u0442 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430 \u0443\u0447\u0435\u0442\u043d\u044b\u0445 \u0437\u0430\u043f\u0438\u0441\u0435\u0439.
|
||||
identityProviderAuthenticationFailedMessage=\u0410\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u0432\u0430\u043b\u0435\u043d\u0430. \u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441 \u043f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a\u043e\u043c \u0443\u0447\u0435\u0442\u043d\u044b\u0445 \u0437\u0430\u043f\u0438\u0441\u0435\u0439.
|
||||
couldNotSendAuthenticationRequestMessage=\u041d\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u043a \u043f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a\u0443 \u0443\u0447\u0435\u0442\u043d\u044b\u0445 \u0437\u0430\u043f\u0438\u0441\u0435\u0439.
|
||||
unexpectedErrorHandlingRequestMessage=\u041d\u0435\u043f\u0440\u0435\u0434\u0432\u0438\u0434\u0435\u043d\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u043f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a\u0430 \u0443\u0447\u0435\u0442\u043d\u044b\u0445 \u0437\u0430\u043f\u0438\u0441\u0435\u0439.
|
||||
invalidAccessCodeMessage=\u041d\u0435\u0432\u0435\u0440\u043d\u044b\u0439 \u043a\u043e\u0434 \u0434\u043e\u0441\u0442\u0443\u043f\u0430.
|
||||
sessionNotActiveMessage=\u0421\u0435\u0441\u0441\u0438\u044f \u043d\u0435 \u0430\u043a\u0442\u0438\u0432\u043d\u0430.
|
||||
invalidCodeMessage=\u041f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0432\u043e\u0439\u0434\u0438\u0442\u0435 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0441\u043d\u043e\u0432\u0430 \u0447\u0435\u0440\u0435\u0437 \u0432\u0430\u0448\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435.
|
||||
identityProviderUnexpectedErrorMessage=\u041d\u0435\u043f\u0440\u0435\u0434\u0432\u0438\u0434\u0435\u043d\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0435 \u043f\u043e\u0434\u043b\u0438\u043d\u043d\u043e\u0441\u0442\u0438 \u043f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a\u0430 \u0443\u0447\u0435\u0442\u043d\u044b\u0445 \u0437\u0430\u043f\u0438\u0441\u0435\u0439.
|
||||
identityProviderNotFoundMessage=\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043d\u0430\u0439\u0442\u0438 \u043f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a\u0430 \u0443\u0447\u0435\u0442\u043d\u044b\u0445 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0441 \u0434\u0430\u043d\u043d\u044b\u043c \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u043c.
|
||||
identityProviderLinkSuccess=\u0412\u0430\u0448\u0430 \u0443\u0447\u0435\u0442\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c \u0431\u044b\u043b\u0430 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0430 \u0441 {0} \u0443\u0447\u0435\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u044c\u044e {1} .
|
||||
staleCodeMessage=\u042d\u0442\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u0430, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0432\u0435\u0440\u043d\u0438\u0442\u0435\u0441\u044c \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0438 \u0441\u043d\u043e\u0432\u0430 \u0432\u043e\u0439\u0434\u0438\u0442\u0435 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0443.
|
||||
realmSupportsNoCredentialsMessage=Realm \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043d\u0438\u043a\u0430\u043a\u043e\u0439 \u0442\u0438\u043f \u0443\u0447\u0435\u0442\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445.
|
||||
identityProviderNotUniqueMessage=Realm \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a\u043e\u0432 \u0443\u0447\u0435\u0442\u043d\u044b\u0445 \u0437\u0430\u043f\u0438\u0441\u0435\u0439. \u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c, \u043a\u0430\u043a\u043e\u0439 \u0438\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a \u0434\u043e\u043b\u0436\u0435\u043d \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u043b\u044f \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438.
|
||||
emailVerifiedMessage=\u0412\u0430\u0448 E-mail \u0431\u044b\u043b \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d.
|
||||
staleEmailVerificationLink=\u0421\u0441\u044b\u043b\u043a\u0430, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0412\u044b \u043f\u0435\u0440\u0435\u0448\u043b\u0438, \u0443\u0441\u0442\u0430\u0440\u0435\u043b\u0430 \u0438 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0443\u0435\u0442. \u041c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c, \u0432\u044b \u0443\u0436\u0435 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u043b\u0438 \u0441\u0432\u043e\u0439 E-mail?
|
||||
backToApplication=« \u041d\u0430\u0437\u0430\u0434 \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435
|
||||
missingParameterMessage=\u041f\u0440\u043e\u043f\u0443\u0449\u0435\u043d\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b\: {0}
|
||||
clientNotFoundMessage=\u041a\u043b\u0438\u0435\u043d\u0442 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d.
|
||||
clientDisabledMessage=\u041a\u043b\u0438\u0435\u043d\u0442 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d.
|
||||
invalidParameterMessage=\u041d\u0435\u0432\u0435\u0440\u043d\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\: {0}
|
||||
alreadyLoggedIn=\u0412\u044b \u0443\u0436\u0435 \u0432\u043e\u0448\u043b\u0438.
|
||||
shouldBeEqual={0} \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0440\u0430\u0432\u043d\u043e {1}
|
||||
shouldBeDifferent={0} \u0434\u043e\u043b\u0436\u043d\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u0442\u044c\u0441\u044f \u043e\u0442 {1}
|
||||
shouldMatchPattern=\u0428\u0430\u0431\u043b\u043e\u043d \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c\: `/{0}/`
|
||||
mustBeAnInteger=\u0414\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0446\u0435\u043b\u044b\u043c \u0447\u0438\u0441\u043b\u043e\u043c
|
||||
notAValidOption=\u041d\u0435\u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442
|
||||
selectAnOption=\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442
|
||||
remove=\u0423\u0434\u0430\u043b\u0438\u0442\u044c
|
||||
addValue=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435
|
||||
languages=\u042f\u0437\u044b\u043a\u0438
|
@ -0,0 +1,446 @@
|
||||
|
||||
doLogIn=Prihl\u00e1senie
|
||||
doRegister=Registr\u00e1cia
|
||||
doRegisterSecurityKey=Registr\u00e1cia
|
||||
doCancel=Zru\u0161i\u0165
|
||||
doSubmit=Odosla\u0165
|
||||
doBack=Sp\u00e4\u0165
|
||||
doYes=\u00c1no
|
||||
doNo=Nie
|
||||
doContinue=Pokra\u010dova\u0165
|
||||
doIgnore=Ignorova\u0165
|
||||
doAccept=Potvrdi\u0165
|
||||
doDecline=Odmietnu\u0165
|
||||
doForgotPassword=Zabudli ste heslo?
|
||||
doClickHere=Kliknite tu
|
||||
doImpersonate=Prevteli\u0165
|
||||
doTryAgain=Sk\u00faste to znova
|
||||
doTryAnotherWay=Sk\u00faste in\u00fd sp\u00f4sob
|
||||
doConfirmDelete=Potvrdi\u0165 vymazanie
|
||||
errorDeletingAccount=Pri odstra\u0148ovan\u00ed \u00fa\u010dtu do\u0161lo k chybe
|
||||
deletingAccountForbidden=Nem\u00e1te dostato\u010dn\u00e9 opr\u00e1vnenie na vymazanie vlastn\u00e9ho \u00fa\u010dtu, kontaktujte administr\u00e1tora.
|
||||
kerberosNotConfigured=Kerberos nie je nakonfigurovan\u00fd
|
||||
kerberosNotConfiguredTitle=Kerberos nie je nakonfigurovan\u00fd
|
||||
bypassKerberosDetail=Bu\u010f nie ste prihl\u00e1sen\u00fd cez Kerberos, alebo v\u00e1\u0161 prehliada\u010d nie je nastaven\u00fd na prihl\u00e1senie do Kerberos. Kliknut\u00edm na tla\u010didlo Pokra\u010dova\u0165 sa prihl\u00e1ste in\u00fdm sp\u00f4sobom
|
||||
kerberosNotSetUp=Kerberos nie je nastaven\u00fd. Nem\u00f4\u017eete sa prihl\u00e1si\u0165.
|
||||
registerTitle=Registr\u00e1cia
|
||||
loginAccountTitle=Prihl\u00e1ste sa do svojho \u00fa\u010dtu
|
||||
loginTitle=Prihl\u00e1senie do {0}
|
||||
loginTitleHtml={0}
|
||||
impersonateTitle={0} prevteli\u0165 sa
|
||||
impersonateTitleHtml=<strong>{0}</strong> Prevteli\u0165 sa</strong>
|
||||
realmChoice=Realm
|
||||
unknownUser=Nezn\u00e1my pou\u017e\u00edvate\u013e
|
||||
loginTotpTitle=Nastavenie mobiln\u00e9ho autentifik\u00e1tora
|
||||
loginProfileTitle=Aktualiz\u00e1cia inform\u00e1ci\u00ed o \u00fa\u010dte
|
||||
loginIdpReviewProfileTitle=Aktualiz\u00e1cia inform\u00e1ci\u00ed o \u00fa\u010dte
|
||||
loginTimeout=Prihlasovanie trvalo pr\u00edli\u0161 dlho. Prihlasovac\u00ed proces za\u010d\u00edna od za\u010diatku.
|
||||
reauthenticate=Pre pokra\u010dovanie sa pros\u00edm prihl\u00e1ste znova
|
||||
oauthGrantTitle=Poskytn\u00fa\u0165 pr\u00edstup {0}
|
||||
oauthGrantTitleHtml={0}
|
||||
oauthGrantInformation=Uistite sa, \u017ee d\u00f4verujete {0}. Zistite, ako bude {0} nar\u00e1ba\u0165 s va\u0161imi \u00fadajmi.
|
||||
oauthGrantReview=M\u00f4\u017eete si prezrie\u0165
|
||||
oauthGrantTos=podmienky slu\u017eby.
|
||||
oauthGrantPolicy=z\u00e1sady ochrany osobn\u00fdch \u00fadajov.
|
||||
errorTitle=Je n\u00e1m \u013e\u00fato ...
|
||||
errorTitleHtml=<strong>Ospravedl\u0148ujeme</strong> sa ...
|
||||
emailVerifyTitle=Overenie e-mailom
|
||||
emailForgotTitle=Zabudli ste heslo?
|
||||
updateEmailTitle=Aktualizova\u0165 e-mail
|
||||
emailUpdateConfirmationSentTitle=Odoslan\u00fd potvrdzuj\u00faci e-mail
|
||||
emailUpdateConfirmationSent=Na adresu {0} bol odoslan\u00fd potvrdzuj\u00faci e-mail. Na dokon\u010denie aktualiz\u00e1cie e-mailu postupujte pod\u013ea pokynov.
|
||||
emailUpdatedTitle=Email aktualizovan\u00fd
|
||||
emailUpdated=Email \u00fa\u010dtu bol \u00faspe\u0161ne aktualizovan\u00fd na {0}.
|
||||
updatePasswordTitle=Aktualiz\u00e1cia hesla
|
||||
codeSuccessTitle=K\u00f3d \u00faspechu
|
||||
codeErrorTitle=K\u00f3d chyby\: {0}
|
||||
displayUnsupported=Nepodporovan\u00fd typ displeja
|
||||
browserRequired=Pre prihl\u00e1senie je potrebn\u00fd prehliada\u010d
|
||||
browserContinue=Pre dokon\u010denie prihl\u00e1senia je potrebn\u00fd prehliada\u010d
|
||||
browserContinuePrompt=Otvori\u0165 prehliada\u010d a pokra\u010dova\u0165 v prihlasovan\u00ed? [a/n]\:
|
||||
browserContinueAnswer=a
|
||||
usb=USB
|
||||
nfc=NFC
|
||||
bluetooth=Bluetooth
|
||||
internal=Intern\u00fd
|
||||
unknown=Nezn\u00e1my
|
||||
termsTitle=Zmluvn\u00e9 podmienky
|
||||
termsText=
|
||||
termsPlainText=Podmienky, ktor\u00e9 sa maj\u00fa definova\u0165.
|
||||
termsAcceptanceRequired=Mus\u00edte s\u00fahlasi\u0165 s na\u0161imi podmienkami.
|
||||
acceptTerms=S\u00fahlas\u00edm s podmienkami
|
||||
recaptchaFailed=Neplatn\u00e9 Recaptcha
|
||||
recaptchaNotConfigured=Recaptcha sa vy\u017eaduje, ale nie je nakonfigurovan\u00e1
|
||||
consentDenied=S\u00fahlas bol zamietnut\u00fd.
|
||||
noAccount=Nov\u00fd pou\u017e\u00edvate\u013e?
|
||||
username=Prihlasovacie meno
|
||||
usernameOrEmail=Prihlasovacie meno alebo e-mail
|
||||
firstName=Meno
|
||||
givenName=Meno pri naroden\u00ed
|
||||
fullName=Cel\u00e9 meno
|
||||
lastName=Priezvisko
|
||||
familyName=Rodn\u00e9 meno
|
||||
email=E-mail
|
||||
password=Heslo
|
||||
passwordConfirm=Potvrdenie hesla
|
||||
passwordNew=Nov\u00e9 heslo
|
||||
passwordNewConfirm=Potvrdenie nov\u00e9ho hesla
|
||||
hidePassword=Skry\u0165 heslo
|
||||
showPassword=Zobrazi\u0165 heslo
|
||||
rememberMe=Zapam\u00e4ta\u0165 si ma
|
||||
authenticatorCode=Jednorazov\u00fd k\u00f3d
|
||||
address=Adresa
|
||||
street=Ulica
|
||||
locality=Mesto alebo lokalita
|
||||
region=Kraj
|
||||
postal_code=PS\u010c
|
||||
country=\u0160t\u00e1t
|
||||
emailVerified=E-mail overen\u00fd
|
||||
website=Webov\u00e1 str\u00e1nka
|
||||
phoneNumber=Telef\u00f3nne \u010d\u00edslo
|
||||
phoneNumberVerified=Overen\u00e9 telef\u00f3nne \u010d\u00edslo
|
||||
gender=Pohlavie
|
||||
birthday=D\u00e1tum narodenia
|
||||
zoneinfo=\u010casov\u00e9 p\u00e1smo
|
||||
gssDelegationCredential=GSS delegovan\u00e9 opr\u00e1vnenie
|
||||
logoutOtherSessions=Odhl\u00e1senie z in\u00fdch zariaden\u00ed
|
||||
profileScopeConsentText=Profil pou\u017e\u00edvate\u013ea
|
||||
emailScopeConsentText=Emailov\u00e1 adresa
|
||||
addressScopeConsentText=Adresa
|
||||
phoneScopeConsentText=Telef\u00f3nne \u010d\u00edslo
|
||||
offlineAccessScopeConsentText=Offline pr\u00edstup
|
||||
samlRoleListScopeConsentText=Moje role
|
||||
rolesScopeConsentText=U\u017e\u00edvate\u013esk\u00e9 roly
|
||||
restartLoginTooltip=Znovu spusti\u0165 prihl\u00e1senie
|
||||
loginTotpIntro=Pre pr\u00edstup k tomuto \u00fa\u010dtu je potrebn\u00e9 nastavi\u0165 gener\u00e1tor jednorazov\u00fdch k\u00f3dov
|
||||
loginTotpStep1=Nain\u0161talujte <a href\="https\://freeotp.github.io/" target\="_blank">FreeOTP</a> alebo Google Authenticator na mobil. Obidve aplik\u00e1cie s\u00fa k dispoz\u00edcii v <a href\="https\://play.google.com">Google Play</a> a Apple App Store.
|
||||
loginTotpStep2=Otvorte aplik\u00e1ciu a skenujte \u010diarov\u00fd k\u00f3d alebo zadajte k\u013e\u00fa\u010d
|
||||
loginTotpStep3=Zadajte jednorazov\u00fd k\u00f3d poskytnut\u00fd aplik\u00e1ciou a kliknut\u00edm na tla\u010didlo Odosla\u0165 dokon\u010dite nastavenie
|
||||
loginTotpStep3DeviceName=Uve\u010fte n\u00e1zov zariadenia, ktor\u00fd v\u00e1m pom\u00f4\u017ee spravova\u0165 zariadenia OTP.
|
||||
loginTotpManualStep2=Otvorte aplik\u00e1ciu a zadajte k\u013e\u00fa\u010d
|
||||
loginTotpManualStep3=Pou\u017e\u00edvajte nasleduj\u00face hodnoty konfigur\u00e1cie, ak aplik\u00e1cia umo\u017e\u0148uje ich nastavenie
|
||||
loginTotpUnableToScan=Nemo\u017eno skenova\u0165?
|
||||
loginTotpScanBarcode=Skenova\u0165 \u010diarov\u00fd k\u00f3d?
|
||||
loginCredential=Prihlasovacie \u00fadaje
|
||||
loginOtpOneTime=Jednorazov\u00fd k\u00f3d
|
||||
loginTotpType=Typ
|
||||
loginTotpAlgorithm=Algoritmus
|
||||
loginTotpDigits=\u010c\u00edslica
|
||||
loginTotpInterval=Interval
|
||||
loginTotpCounter=Po\u010d\u00edtadlo
|
||||
loginTotpDeviceName=N\u00e1zov zariadenia
|
||||
loginTotp.totp=Zalo\u017een\u00e9 na \u010dase
|
||||
loginTotp.hotp=Zalo\u017een\u00e9 na po\u010d\u00edtadle
|
||||
totpAppFreeOTPName=FreeOTP
|
||||
totpAppGoogleName=Google Authenticator
|
||||
totpAppMicrosoftAuthenticatorName=Microsoft Authenticator
|
||||
loginChooseAuthenticator=Vyberte sp\u00f4sob prihl\u00e1senia
|
||||
oauthGrantRequest=Ude\u013eujete tieto pr\u00edstupov\u00e9 opr\u00e1vnenia?
|
||||
inResource=v
|
||||
oauth2DeviceVerificationTitle=Prihl\u00e1senie zariadenia
|
||||
verifyOAuth2DeviceUserCode=Zadajte k\u00f3d poskytnut\u00fd va\u0161\u00edm zariaden\u00edm a kliknite na tla\u010didlo Odosla\u0165
|
||||
oauth2DeviceInvalidUserCodeMessage=Neplatn\u00fd k\u00f3d, sk\u00faste to pros\u00edm znova.
|
||||
oauth2DeviceExpiredUserCodeMessage=K\u00f3d stratil platnos\u0165. Vr\u00e1\u0165te sa pros\u00edm k svojmu zariadeniu a sk\u00faste sa pripoji\u0165 znova.
|
||||
oauth2DeviceVerificationCompleteHeader=\u00daspe\u0161n\u00e9 prihl\u00e1senie zariadenia
|
||||
oauth2DeviceVerificationCompleteMessage=M\u00f4\u017eete zavrie\u0165 toto okno prehliada\u010da a vr\u00e1ti\u0165 sa k svojmu zariadeniu.
|
||||
oauth2DeviceVerificationFailedHeader=Prihl\u00e1senie zariadenia zlyhalo
|
||||
oauth2DeviceVerificationFailedMessage=M\u00f4\u017eete zavrie\u0165 toto okno prehliada\u010da, vr\u00e1ti\u0165 sa k svojmu zariadeniu a sk\u00fasi\u0165 sa pripoji\u0165 znova.
|
||||
oauth2DeviceConsentDeniedMessage=S\u00fahlas s pripojen\u00edm zariadenia zamietnut\u00fd.
|
||||
oauth2DeviceAuthorizationGrantDisabledMessage=Klientovi nie je povolen\u00e9 iniciova\u0165 OAuth 2.0 Device Authorization Grant. Tento flow je pre klienta zak\u00e1zan\u00fd.
|
||||
emailVerifyInstruction1=Bol V\u00e1m odoslan\u00fd e-mail s pokynmi na overenie va\u0161ej e-mailovej adresy.
|
||||
emailVerifyInstruction2=Nez\u00edskali ste v e-maile overovac\u00ed k\u00f3d?
|
||||
emailVerifyInstruction3=op\u00e4tovne odosla\u0165 e-mail.
|
||||
emailLinkIdpTitle=Odkaz {0}
|
||||
emailLinkIdp1=Bol v\u00e1m odoslan\u00fd e-mail s pokynmi na prepojenie \u00fa\u010dtu {0} {1} s va\u0161\u00edm \u00fa\u010dtom {2}.
|
||||
emailLinkIdp2=Nez\u00edskali ste v e-maile overovac\u00ed k\u00f3d?
|
||||
emailLinkIdp3=op\u00e4tovne posla\u0165 e-mail.
|
||||
emailLinkIdp4=Ak ste u\u017e overili e-mail v inom prehliada\u010di
|
||||
emailLinkIdp5=pokra\u010dova\u0165.
|
||||
backToLogin=« Sp\u00e4\u0165 na prihl\u00e1senie
|
||||
emailInstruction=Zadajte svoje pou\u017e\u00edvate\u013esk\u00e9 meno alebo e-mailov\u00fa adresu a my v\u00e1m za\u0161leme pokyny na vytvorenie nov\u00e9ho hesla.
|
||||
emailInstructionUsername=Zadajte svoje pou\u017e\u00edvate\u013esk\u00e9 meno a my v\u00e1m za\u0161leme pokyny na vytvorenie nov\u00e9ho hesla.
|
||||
copyCodeInstruction=Pros\u00edm skop\u00edrujte tento k\u00f3d a vlo\u017ete ho do va\u0161ej aplik\u00e1cie\:
|
||||
pageExpiredTitle=Platnos\u0165 str\u00e1nky vypr\u0161ala
|
||||
pageExpiredMsg1=Pre re\u0161tartovanie prihlasovacieho procesu
|
||||
pageExpiredMsg2=Pokra\u010dovanie prihlasovacieho procesu
|
||||
personalInfo=Osobn\u00e9 inform\u00e1cie\:
|
||||
role_admin=Administr\u00e1tor
|
||||
role_realm-admin=Realm administr\u00e1tor
|
||||
role_create-realm=Vytvori\u0165 realm
|
||||
role_create-client=Vytvori\u0165 klienta
|
||||
role_view-realm=Zobrazi\u0165 realm
|
||||
role_view-users=Zobrazi\u0165 pou\u017e\u00edvate\u013eov
|
||||
role_view-applications=Zobrazi\u0165 aplik\u00e1cie
|
||||
role_view-clients=Zobrazenie klientov
|
||||
role_view-events=Zobrazi\u0165 udalosti
|
||||
role_view-identity-providers=Zobrazenie poskytovate\u013eov identity
|
||||
role_manage-realm=Spravova\u0165 realm
|
||||
role_manage-users=Spravova\u0165 pou\u017e\u00edvate\u013eov
|
||||
role_manage-applications=Spravova\u0165 aplik\u00e1cie
|
||||
role_manage-identity-providers=Spravova\u0165 poskytovate\u013eov identity
|
||||
role_manage-clients=Spravova\u0165 klientov
|
||||
role_manage-events=Spravova\u0165 udalosti
|
||||
role_view-profile=Zobrazi\u0165 profil
|
||||
role_manage-account=Spravova\u0165 \u00fa\u010dty
|
||||
role_manage-account-links=Spravova\u0165 odkazy na \u00fa\u010dty
|
||||
role_read-token=\u010c\u00edta\u0165 token
|
||||
role_offline-access=Offline pr\u00edstup
|
||||
client_account=\u00da\u010det klienta
|
||||
client_account-console=U\u017e\u00edvate\u013esk\u00e1 konzola
|
||||
client_security-admin-console=Administr\u00e1torsk\u00e1 bezpe\u010dnostn\u00e1 konzola klienta
|
||||
client_admin-cli=Spr\u00e1vca CLI
|
||||
client_realm-management=Spr\u00e1va realmov klienta
|
||||
client_broker=Broker
|
||||
requiredFields=Povinn\u00e9 polia
|
||||
invalidUserMessage=Neplatn\u00e9 pou\u017e\u00edvate\u013esk\u00e9 meno alebo heslo.
|
||||
invalidUsernameMessage=Neplatn\u00e9 pou\u017e\u00edvate\u013esk\u00e9 meno.
|
||||
invalidUsernameOrEmailMessage=Neplatn\u00e9 pou\u017e\u00edvate\u013esk\u00e9 meno alebo e-mail.
|
||||
invalidPasswordMessage=Neplatn\u00e9 heslo.
|
||||
invalidEmailMessage=Neplatn\u00e1 e-mailov\u00e1 adresa.
|
||||
accountDisabledMessage=\u00da\u010det je zak\u00e1zan\u00fd, kontaktujte administr\u00e1tora.
|
||||
accountTemporarilyDisabledMessage=\u00da\u010det je do\u010dasne zak\u00e1zan\u00fd, kontaktujte administr\u00e1tora alebo sk\u00faste nesk\u00f4r.
|
||||
expiredCodeMessage=Platnos\u0165 prihl\u00e1senia vypr\u0161ala. Prihl\u00e1ste sa znova.
|
||||
expiredActionMessage=Akcia vypr\u0161ala. Pokra\u010dujte prihl\u00e1sen\u00edm.
|
||||
expiredActionTokenNoSessionMessage=Akcia vypr\u0161ala.
|
||||
expiredActionTokenSessionExistsMessage=Platnos\u0165 vypr\u0161ala. Za\u010dnite znova.
|
||||
sessionLimitExceeded=Prekro\u010den\u00fd limit rel\u00e1ci\u00ed
|
||||
missingFirstNameMessage=Zadajte krstn\u00e9 meno.
|
||||
missingLastNameMessage=Zadajte priezvisko.
|
||||
missingEmailMessage=Zadajte e-mail.
|
||||
missingUsernameMessage=Zadajte pou\u017e\u00edvate\u013esk\u00e9 meno.
|
||||
missingPasswordMessage=Zadajte pros\u00edm heslo.
|
||||
missingTotpMessage=Pros\u00edm, zadajte k\u00f3d autentifik\u00e1tora.
|
||||
missingTotpDeviceNameMessage=Pros\u00edm, zadajte n\u00e1zov zariadenia.
|
||||
notMatchPasswordMessage=Hesl\u00e1 sa nezhoduj\u00fa.
|
||||
error-invalid-value=Neplatn\u00e1 hodnota.
|
||||
error-invalid-blank=Pros\u00edm uve\u010fte hodnotu.
|
||||
error-empty=Pros\u00edm uve\u010fte hodnotu.
|
||||
error-invalid-length=D\u013a\u017eka mus\u00ed by\u0165 medzi {1} a {2}.
|
||||
error-invalid-length-too-short=Minim\u00e1lna d\u013a\u017eka je {1}.
|
||||
error-invalid-length-too-long=Maxim\u00e1lna d\u013a\u017eka je {2}.
|
||||
error-invalid-email=Neplatn\u00e1 e-mailov\u00e1 adresa.
|
||||
error-invalid-number=Neplatn\u00e9 \u010d\u00edslo.
|
||||
error-number-out-of-range=\u010c\u00edslo mus\u00ed by\u0165 medzi {1} a {2}.
|
||||
error-number-out-of-range-too-small=\u010c\u00edslo mus\u00ed ma\u0165 minim\u00e1lnu hodnotu {1}.
|
||||
error-number-out-of-range-too-big=\u010c\u00edslo mus\u00ed ma\u0165 maxim\u00e1lnu hodnotu {2}.
|
||||
error-pattern-no-match=Neplatn\u00e1 hodnota.
|
||||
error-invalid-uri=Neplatn\u00e1 adresa URL.
|
||||
error-invalid-uri-scheme=Neplatn\u00e1 sch\u00e9ma URL.
|
||||
error-invalid-uri-fragment=Neplatn\u00fd fragment URL.
|
||||
error-user-attribute-required=Pros\u00edm, uve\u010fte toto pole.
|
||||
error-invalid-date=Neplatn\u00fd d\u00e1tum.
|
||||
error-user-attribute-read-only=Toto pole je ur\u010den\u00e9 len na \u010d\u00edtanie.
|
||||
error-username-invalid-character=Hodnota obsahuje neplatn\u00fd znak.
|
||||
error-person-name-invalid-character=Hodnota obsahuje neplatn\u00fd znak.
|
||||
error-reset-otp-missing-id=Pros\u00edm, vyberte konfigur\u00e1ciu OTP.
|
||||
invalidPasswordExistingMessage=Neplatn\u00e9 existuj\u00face heslo.
|
||||
invalidPasswordBlacklistedMessage=Neplatn\u00e9 heslo\: heslo je na \u010diernej listine.
|
||||
invalidPasswordConfirmMessage=Potvrdenie hesla sa nezhoduje.
|
||||
invalidTotpMessage=Neplatn\u00fd k\u00f3d autentifik\u00e1tora.
|
||||
usernameExistsMessage=U\u017e\u00edvate\u013esk\u00e9 meno u\u017e existuje.
|
||||
emailExistsMessage=E-mail u\u017e existuje.
|
||||
federatedIdentityExistsMessage=Pou\u017e\u00edvate\u013e s {0} {1} u\u017e existuje. Ak chcete prepoji\u0165 \u00fa\u010det, prihl\u00e1ste sa na spr\u00e1vu \u00fa\u010dtov.
|
||||
federatedIdentityUnavailableMessage=Pou\u017e\u00edvate\u013e {0} autentifikovan\u00fd poskytovate\u013eom identity {1} neexistuje. Kontaktujte svojho administr\u00e1tora.
|
||||
federatedIdentityUnmatchedEssentialClaimMessage=Identifika\u010dn\u00fd token vydan\u00fd poskytovate\u013eom identity sa nezhoduje s nakonfigurovan\u00fdm essential claim. Obr\u00e1\u0165te sa na svojho spr\u00e1vcu.
|
||||
confirmLinkIdpTitle=\u00da\u010det u\u017e existuje
|
||||
federatedIdentityConfirmLinkMessage=Pou\u017e\u00edvate\u013e s {0} {1} u\u017e existuje. Ako chcete pokra\u010dova\u0165?
|
||||
federatedIdentityConfirmReauthenticateMessage=Overi\u0165 prepoji\u0165 v\u00e1\u0161 \u00fa\u010det s {0}
|
||||
nestedFirstBrokerFlowMessage=U\u017e\u00edvate\u013e {0} {1} nie je prepojen\u00fd so \u017eiadnym zn\u00e1mym pou\u017e\u00edvate\u013eom.
|
||||
confirmLinkIdpReviewProfile=Skontrolujte profil
|
||||
confirmLinkIdpContinue=Prida\u0165 do existuj\u00faceho \u00fa\u010dtu
|
||||
configureTotpMessage=Na aktiv\u00e1ciu v\u00e1\u0161ho \u00fa\u010dtu mus\u00edte nastavi\u0165 aplik\u00e1ciu Mobile Authenticator.
|
||||
configureBackupCodesMessage=Pre aktiv\u00e1ciu v\u00e1\u0161ho \u00fa\u010dtu mus\u00edte nastavi\u0165 z\u00e1lo\u017en\u00e9 k\u00f3dy.
|
||||
updateProfileMessage=Ak chcete aktivova\u0165 svoj \u00fa\u010det, mus\u00edte aktualizova\u0165 svoj u\u017e\u00edvate\u013esk\u00fd profil.
|
||||
updatePasswordMessage=Ak chcete aktivova\u0165 svoj \u00fa\u010det, mus\u00edte zmeni\u0165 heslo.
|
||||
updateEmailMessage=Pre aktiv\u00e1ciu \u00fa\u010dtu mus\u00edte aktualizova\u0165 svoju e-mailov\u00fa adresu.
|
||||
resetPasswordMessage=Potrebujete zmeni\u0165 svoje heslo.
|
||||
verifyEmailMessage=Ak chcete aktivova\u0165 svoj \u00fa\u010det, mus\u00edte overi\u0165 svoju e-mailov\u00fa adresu.
|
||||
linkIdpMessage=Potrebujete si overi\u0165 svoju e-mailov\u00fa adresu a prepoji\u0165 svoj \u00fa\u010det s {0}.
|
||||
emailSentMessage=Zakr\u00e1tko by ste mali dosta\u0165 e-mail s \u010fal\u0161\u00edmi pokynmi.
|
||||
emailSendErrorMessage=Nepodarilo sa odosla\u0165 e-mail, sk\u00faste to znova nesk\u00f4r.
|
||||
accountUpdatedMessage=V\u00e1\u0161 \u00fa\u010det bol aktualizovan\u00fd.
|
||||
accountPasswordUpdatedMessage=Va\u0161e heslo bolo aktualizovan\u00e9.
|
||||
delegationCompleteHeader=\u00daspe\u0161n\u00e9 prihl\u00e1senie
|
||||
delegationCompleteMessage=M\u00f4\u017eete zavrie\u0165 toto okno prehliada\u010da a vr\u00e1ti\u0165 sa do konzolovej aplik\u00e1cie.
|
||||
delegationFailedHeader=Prihl\u00e1senie zlyhalo
|
||||
delegationFailedMessage=M\u00f4\u017eete zavrie\u0165 toto okno prehliada\u010da, vr\u00e1ti\u0165 sa do konzolovej aplik\u00e1cie a sk\u00fasi\u0165 sa prihl\u00e1si\u0165 znova.
|
||||
noAccessMessage=\u017diadny pr\u00edstup
|
||||
invalidPasswordMinLengthMessage=Neplatn\u00e9 heslo\: minim\u00e1lna d\u013a\u017eka {0}.
|
||||
invalidPasswordMaxLengthMessage=Neplatn\u00e9 heslo\: maxim\u00e1lna d\u013a\u017eka {0}.
|
||||
invalidPasswordMinDigitsMessage=Neplatn\u00e9 heslo\: mus\u00ed obsahova\u0165 aspo\u0148 {0} \u010d\u00edslic.
|
||||
invalidPasswordMinLowerCaseCharsMessage=Neplatn\u00e9 heslo\: mus\u00ed obsahova\u0165 minim\u00e1lne {0} mal\u00e9 p\u00edsmen\u00e1.
|
||||
invalidPasswordMinUpperCaseCharsMessage=Neplatn\u00e9 heslo\: mus\u00ed obsahova\u0165 aspo\u0148 {0} ve\u013ek\u00e9 p\u00edsmen\u00e1.
|
||||
invalidPasswordMinSpecialCharsMessage=Neplatn\u00e9 heslo\: mus\u00ed obsahova\u0165 aspo\u0148 {0} \u0161peci\u00e1lne znaky.
|
||||
invalidPasswordNotUsernameMessage=Neplatn\u00e9 heslo\: nesmie by\u0165 rovnak\u00e9 ako pou\u017e\u00edvate\u013esk\u00e9 meno.
|
||||
invalidPasswordNotEmailMessage=Neplatn\u00e9 heslo\: nesmie sa rovna\u0165 e-mailu.
|
||||
invalidPasswordRegexPatternMessage=Neplatn\u00e9 heslo\: nezhoduje sa vzormi regul\u00e1rneho v\u00fdrazu.
|
||||
invalidPasswordHistoryMessage=Neplatn\u00e9 heslo\: nesmie sa rovna\u0165 \u017eiadnemu z posledn\u00fdch {0} hesiel.
|
||||
invalidPasswordGenericMessage=Neplatn\u00e9 heslo\: nov\u00e9 heslo nezodpoved\u00e1 pravidl\u00e1m hesiel.
|
||||
failedToProcessResponseMessage=Nepodarilo sa spracova\u0165 odpove\u010f
|
||||
httpsRequiredMessage=Vy\u017eaduje sa HTTPS
|
||||
realmNotEnabledMessage=Realm nie je povolen\u00fd
|
||||
invalidRequestMessage=Neplatn\u00e1 po\u017eiadavka
|
||||
successLogout=Odhl\u00e1sili ste sa
|
||||
failedLogout=Odhl\u00e1senie zlyhalo
|
||||
unknownLoginRequesterMessage=Nezn\u00e1my \u017eiadate\u013e o prihl\u00e1senie
|
||||
loginRequesterNotEnabledMessage=\u017diadate\u013e o prihl\u00e1senie nie je povolen\u00fd
|
||||
bearerOnlyMessage=Aplik\u00e1cie bearer-only nesm\u00fa inicializova\u0165 prihl\u00e1senie pomocou prehliada\u010da
|
||||
standardFlowDisabledMessage=Klient nesmie iniciova\u0165 prihl\u00e1senie do prehliada\u010da s dan\u00fdm typom odpovede. \u0160tandardn\u00fd tok je pre klienta zak\u00e1zan\u00fd.
|
||||
implicitFlowDisabledMessage=Klient nem\u00f4\u017ee iniciova\u0165 prihl\u00e1senie do prehliada\u010da s dan\u00fdm typom odpovede. Implicitn\u00fd tok je pre klienta zak\u00e1zan\u00fd.
|
||||
invalidRedirectUriMessage=Neplatn\u00e9 redirect uri
|
||||
unsupportedNameIdFormatMessage=Nepodporovan\u00fd NameIDFormat
|
||||
invalidRequesterMessage=Neplatn\u00fd \u017eiadate\u013e
|
||||
registrationNotAllowedMessage=Registr\u00e1cia nie je povolen\u00e1
|
||||
resetCredentialNotAllowedMessage=Obnovenie poverenia nie je povolen\u00e9
|
||||
permissionNotApprovedMessage=Povolenie nie je schv\u00e1len\u00e9.
|
||||
noRelayStateInResponseMessage=Neexistuje relay state v odpovedi od poskytovate\u013ea identity.
|
||||
insufficientPermissionMessage=Nedostato\u010dn\u00e9 povolenia na prepojenie ident\u00edt.
|
||||
couldNotProceedWithAuthenticationRequestMessage=Nemo\u017eno pokra\u010dova\u0165 s po\u017eiadavkou na autentifik\u00e1ciu poskytovate\u013ea identity.
|
||||
couldNotObtainTokenMessage=Nemo\u017eno z\u00edska\u0165 token od poskytovate\u013ea identity.
|
||||
unexpectedErrorRetrievingTokenMessage=Neo\u010dak\u00e1van\u00e1 chyba pri z\u00edskavan\u00ed tokenu od poskytovate\u013ea identity.
|
||||
unexpectedErrorHandlingResponseMessage=Neo\u010dak\u00e1van\u00e1 chyba pri spracovan\u00ed odpovede od poskytovate\u013ea identity.
|
||||
identityProviderAuthenticationFailedMessage=Overenie zlyhalo. Nepodarilo sa autentizova\u0165 s poskytovate\u013eom identity.
|
||||
couldNotSendAuthenticationRequestMessage=Nemo\u017eno odosla\u0165 \u017eiados\u0165 o autentifik\u00e1ciu poskytovate\u013eovi identity.
|
||||
unexpectedErrorHandlingRequestMessage=Neo\u010dak\u00e1van\u00e1 chyba pri spracovan\u00ed \u017eiadosti o autentifik\u00e1ciu poskytovate\u013eovi identity.
|
||||
invalidAccessCodeMessage=Neplatn\u00fd pr\u00edstupov\u00fd k\u00f3d.
|
||||
sessionNotActiveMessage=Session nie je akt\u00edvna.
|
||||
invalidCodeMessage=Vyskytla sa chyba, prihl\u00e1ste sa znova prostredn\u00edctvom svojej aplik\u00e1cie.
|
||||
cookieNotFoundMessage=S\u00fabor cookie nebol n\u00e1jden\u00fd. Uistite sa, \u017ee s\u00fa vo va\u0161om prehliada\u010di povolen\u00e9 s\u00fabory cookie.
|
||||
insufficientLevelOfAuthentication=Po\u017eadovan\u00e1 \u00farove\u0148 overenia nebola splnen\u00e1.
|
||||
identityProviderUnexpectedErrorMessage=Neo\u010dak\u00e1van\u00e1 chyba pri autentifik\u00e1cii s poskytovate\u013eom identity
|
||||
identityProviderMissingStateMessage=V odpovedi poskytovate\u013ea identity ch\u00fdba parameter state.
|
||||
identityProviderMissingCodeOrErrorMessage=V odpovedi poskytovate\u013ea identity ch\u00fdba parameter code alebo error.
|
||||
identityProviderInvalidResponseMessage=Neplatn\u00e1 odpove\u010f od poskytovate\u013ea identity.
|
||||
identityProviderInvalidSignatureMessage=Neplatn\u00fd podpis v odpovedi od poskytovate\u013ea identity.
|
||||
identityProviderNotFoundMessage=Nepodarilo sa n\u00e1js\u0165 poskytovate\u013ea identity s identifik\u00e1torom.
|
||||
identityProviderLinkSuccess=Svoj e-mail ste \u00faspe\u0161ne overili. Vr\u00e1\u0165te sa sp\u00e4\u0165 do p\u00f4vodn\u00e9ho prehliada\u010da a pokra\u010dujte tam s prihlasovac\u00edmi \u00fadajmi.
|
||||
staleCodeMessage=T\u00e1to str\u00e1nka u\u017e nie je platn\u00e1, vr\u00e1\u0165te sa sp\u00e4\u0165 do aplik\u00e1cie a znova sa prihl\u00e1ste
|
||||
realmSupportsNoCredentialsMessage=Realm nepodporuje \u017eiadny typ poverenia.
|
||||
credentialSetupRequired=Nie je m\u00f4\u017en\u00e9 sa prihl\u00e1si\u0165, vy\u017eaduje sa nastavenie prihlasovac\u00edch \u00fadajov.
|
||||
identityProviderNotUniqueMessage=Realm podporuje viacer\u00fdch poskytovate\u013eov identity. Nepodarilo sa ur\u010di\u0165, ktor\u00fd poskytovate\u013e toto\u017enosti sa m\u00e1 pou\u017e\u00edva\u0165 na autentifik\u00e1ciu.
|
||||
emailVerifiedMessage=Va\u0161a e-mailov\u00e1 adresa bola overen\u00e1.
|
||||
emailVerifiedAlreadyMessage=Va\u0161a e-mailov\u00e1 adresa u\u017e bola overen\u00e1.
|
||||
staleEmailVerificationLink=Odkaz, na ktor\u00fd ste klikli, je star\u00fd odkaz a u\u017e nie je platn\u00fd. Mo\u017eno ste u\u017e overili svoj e-mail?
|
||||
identityProviderAlreadyLinkedMessage=Federat\u00edvna identita vr\u00e1ten\u00e1 {0} je u\u017e prepojen\u00e1 s in\u00fdm pou\u017e\u00edvate\u013eom.
|
||||
confirmAccountLinking=Potvr\u010fte prepojenie \u00fa\u010dtu {0} poskytovate\u013ea toto\u017enosti {1} s va\u0161\u00edm \u00fa\u010dtom.
|
||||
confirmEmailAddressVerification=Potvr\u010fte platnos\u0165 e-mailovej adresy {0}.
|
||||
confirmExecutionOfActions=Vykonajte nasleduj\u00face akcie
|
||||
backToApplication=« Sp\u00e4\u0165 na aplik\u00e1ciu
|
||||
missingParameterMessage=Ch\u00fdbaj\u00face parametre \: {0}
|
||||
clientNotFoundMessage=Klient sa nena\u0161iel.
|
||||
clientDisabledMessage=Klient bol zneplatnen\u00fd.
|
||||
invalidParameterMessage=Neplatn\u00fd parameter \: {0}
|
||||
alreadyLoggedIn=U\u017e ste prihl\u00e1sen\u00fd.
|
||||
differentUserAuthenticated=V tejto rel\u00e1cii ste u\u017e boli overen\u00ed ako in\u00fd pou\u017e\u00edvate\u013e '' {0} ''. Najsk\u00f4r sa odhl\u00e1ste.
|
||||
brokerLinkingSessionExpired=Po\u017eadovan\u00e9 prepojenie s \u00fa\u010dtom brokera, ale aktu\u00e1lna rel\u00e1cia u\u017e nie je platn\u00e1.
|
||||
proceedWithAction=» Ak chcete pokra\u010dova\u0165, kliknite sem
|
||||
acrNotFulfilled=Nesplnen\u00e9 po\u017eiadavky na overenie
|
||||
requiredAction.CONFIGURE_TOTP=Konfigur\u00e1cia OTP
|
||||
requiredAction.TERMS_AND_CONDITIONS=Zmluvn\u00e9 podmienky
|
||||
requiredAction.UPDATE_PASSWORD=Aktualizova\u0165 heslo
|
||||
requiredAction.UPDATE_PROFILE=Aktualizova\u0165 profil
|
||||
requiredAction.VERIFY_EMAIL=Overi\u0165 e-mail
|
||||
requiredAction.CONFIGURE_RECOVERY_AUTHN_CODES=Generova\u0165 k\u00f3dy obnovy
|
||||
requiredAction.webauthn-register-passwordless=Webauthn Passwordless Registr\u00e1cia
|
||||
invalidTokenRequiredActions=Po\u017eadovan\u00e9 akcie zahrnut\u00e9 v odkaze nie s\u00fa platn\u00e9
|
||||
doX509Login=Budete prihl\u00e1sen\u00ed ako\:
|
||||
clientCertificate=certifik\u00e1t klienta X509\:
|
||||
noCertificate=[Bez certifik\u00e1tu]
|
||||
pageNotFound=Str\u00e1nka nebola n\u00e1jden\u00e1
|
||||
internalServerError=Vyskytla sa intern\u00e1 chyba servera
|
||||
console-username=Pou\u017e\u00edvate\u013esk\u00e9 meno\:
|
||||
console-password=Heslo\:
|
||||
console-otp=Jednorazov\u00e9 heslo\:
|
||||
console-new-password=Nov\u00e9 heslo\:
|
||||
console-confirm-password=Potvrdi\u0165 heslo\:
|
||||
console-update-password=Vy\u017eaduje sa aktualiz\u00e1cia hesla.
|
||||
console-verify-email=Potrebujete overi\u0165 svoju e-mailov\u00fa adresu. Odoslali sme e-mail na adresu {0}, ktor\u00fd obsahuje overovac\u00ed k\u00f3d. Zadajte tento k\u00f3d do po\u013ea ni\u017e\u0161ie.
|
||||
console-email-code=Emailov\u00fd k\u00f3d\:
|
||||
console-accept-terms=Prij\u00edmate podmienky? [a/n]\:
|
||||
console-accept=a
|
||||
openshift.scope.user_info=Inform\u00e1cie o pou\u017e\u00edvate\u013eovi
|
||||
openshift.scope.user_check-access=Inform\u00e1cie o pr\u00edstupe pou\u017e\u00edvate\u013ea
|
||||
openshift.scope.user_full=Pln\u00fd pr\u00edstup
|
||||
openshift.scope.list-projects=Zoznam projektov
|
||||
saml.post-form.title=Presmerovanie overenia
|
||||
saml.post-form.message=Presmerovanie, po\u010dkajte pros\u00edm.
|
||||
saml.post-form.js-disabled=JavaScript je vypnut\u00fd. D\u00f4razne odpor\u00fa\u010dame ho zapn\u00fa\u0165. Ak chcete pokra\u010dova\u0165, kliknite na tla\u010didlo ni\u017e\u0161ie.
|
||||
saml.artifactResolutionServiceInvalidResponse=Rozpoznanie SAML Artefaktu zlyhalo.
|
||||
otp-display-name=Authenticator Application
|
||||
otp-help-text=Zadajte overovac\u00ed k\u00f3d z aplik\u00e1cie autentifik\u00e1tora.
|
||||
otp-reset-description=Ktor\u00fa konfigur\u00e1ciu OTP treba odstr\u00e1ni\u0165?
|
||||
password-display-name=Heslo
|
||||
password-help-text=Prihl\u00e1senie zadan\u00edm hesla.
|
||||
auth-username-form-display-name=Pou\u017e\u00edvate\u013esk\u00e9 meno
|
||||
auth-username-form-help-text=Za\u010dnite prihlasovanie zadan\u00edm svojho pou\u017e\u00edvate\u013esk\u00e9ho mena
|
||||
auth-username-password-form-display-name=Pou\u017e\u00edvate\u013esk\u00e9 meno a heslo
|
||||
auth-username-password-form-help-text=Prihl\u00e1ste sa zadan\u00edm svojho pou\u017e\u00edvate\u013esk\u00e9ho mena a hesla.
|
||||
auth-recovery-authn-code-form-display-name=Overovac\u00ed k\u00f3d pre obnovenie
|
||||
auth-recovery-authn-code-form-help-text=Zadajte overovac\u00ed k\u00f3d obnovy z vopred vygenerovan\u00e9ho zoznamu.
|
||||
auth-recovery-code-info-message=Zadajte zadan\u00fd k\u00f3d obnovy.
|
||||
auth-recovery-code-prompt=K\u00f3d obnovy \#{0}
|
||||
auth-recovery-code-header=Prihl\u00e1senie pomocou overovacieho k\u00f3du obnovy
|
||||
recovery-codes-error-invalid=Neplatn\u00fd overovac\u00ed k\u00f3d obnovy
|
||||
recovery-code-config-header=Overovacie k\u00f3dy obnovy
|
||||
recovery-code-config-warning-title=Tieto k\u00f3dy obnovenia sa po opusten\u00ed tejto str\u00e1nky u\u017e nezobrazia
|
||||
recovery-code-config-warning-message=Uistite sa, \u017ee ste si ich vytla\u010dili, stiahli alebo skop\u00edrovali do spr\u00e1vcu hesiel a ulo\u017eili. Zru\u0161enie tohto nastavenia odstr\u00e1ni tieto k\u00f3dy na obnovenie z v\u00e1\u0161ho \u00fa\u010dtu.
|
||||
recovery-codes-print=Tla\u010di\u0165
|
||||
recovery-codes-download=Stiahnu\u0165
|
||||
recovery-codes-copy=Kop\u00edrova\u0165
|
||||
recovery-codes-copied=Kop\u00edrova\u0165
|
||||
recovery-codes-confirmation-message=Ulo\u017eil som tieto k\u00f3dy na bezpe\u010dn\u00e9 miesto
|
||||
recovery-codes-action-complete=Ukon\u010di\u0165 nastavenie
|
||||
recovery-codes-action-cancel=Zru\u0161i\u0165 nastavenie
|
||||
recovery-codes-download-file-header=Uchovajte tieto k\u00f3dy na obnovu na bezpe\u010dnom mieste.
|
||||
recovery-codes-download-file-description=K\u00f3dy na obnovenie s\u00fa jednor\u00e1zov\u00e9 pr\u00edstupov\u00e9 k\u00f3dy, ktor\u00e9 v\u00e1m umo\u017enia prihl\u00e1si\u0165 sa do v\u00e1\u0161ho \u00fa\u010dtu, ak nem\u00e1te pr\u00edstup k autentifik\u00e1toru.
|
||||
recovery-codes-download-file-date=Tieto k\u00f3dy boli vygenerovan\u00e9 d\u0148a
|
||||
recovery-codes-label-default=K\u00f3dy na obnovenie
|
||||
webauthn-display-name=Prihlasovac\u00ed k\u013e\u00fa\u010d
|
||||
webauthn-help-text=Pou\u017eite svoj prihlasovac\u00ed k\u013e\u00fa\u010d na prihl\u00e1senie.
|
||||
webauthn-passwordless-display-name=Prihlasovac\u00ed k\u013e\u00fa\u010d
|
||||
webauthn-passwordless-help-text=Pou\u017eite svoj prihlasovac\u00ed k\u013e\u00fa\u010d na prihl\u00e1senie bez hesla.
|
||||
webauthn-login-title=Prihl\u00e1senie prihlasovac\u00edm k\u013e\u00fa\u010dom
|
||||
webauthn-registration-title=Registr\u00e1cia prihlasovac\u00edm k\u013e\u00fa\u010dom
|
||||
webauthn-available-authenticators=Dostupn\u00e9 prihlasovacie k\u013e\u00fa\u010de
|
||||
webauthn-unsupported-browser-text=WebAuthn nie je podporovan\u00fd t\u00fdmto prehliada\u010dom. Sk\u00faste in\u00fd alebo kontaktujte svojho administr\u00e1tora.
|
||||
webauthn-doAuthenticate=Prihl\u00e1senie pomocou prihlasovacieho k\u013e\u00fa\u010da
|
||||
webauthn-createdAt-label=Vytvoren\u00e9
|
||||
webauthn-error-title=Chybn\u00fd prihlasovac\u00ed k\u013e\u00fa\u010d
|
||||
webauthn-error-registration=Nepodarilo sa zaregistrova\u0165 prihlasovac\u00ed k\u013e\u00fa\u010d.<br/> {0}
|
||||
webauthn-error-api-get=Nepodarilo sa overi\u0165 pomocou prihlasovacieho k\u013e\u00fa\u010da.<br/> {0}
|
||||
webauthn-error-different-user=Prv\u00fd overen\u00fd pou\u017e\u00edvate\u013e nie je ten, ktor\u00fd bol overen\u00fd prihlasovac\u00edm k\u013e\u00fa\u010dom.
|
||||
webauthn-error-auth-verification=V\u00fdsledok overenia prihlasovacieho k\u013e\u00fa\u010da je neplatn\u00fd.<br/> {0}
|
||||
webauthn-error-register-verification=V\u00fdsledok registr\u00e1cie prihlasovacieho k\u013e\u00fa\u010da je neplatn\u00fd.<br/> {0}
|
||||
webauthn-error-user-not-found=Nezn\u00e1my pou\u017e\u00edvate\u013e overen\u00fd prihlasovac\u00edm k\u013e\u00fa\u010dom.
|
||||
identity-provider-redirector=Pripojenie k in\u00e9mu poskytovate\u013eovi ident\u00edt
|
||||
identity-provider-login-label=Prihl\u00e1ste sa pomocou
|
||||
idp-email-verification-display-name=Overenie e-mailu
|
||||
idp-email-verification-help-text=Pripojte svoj \u00fa\u010det overen\u00edm e-mailu.
|
||||
idp-username-password-form-display-name=Prihlasovacie meno a heslo
|
||||
idp-username-password-form-help-text=Pripojte svoj \u00fa\u010det prihl\u00e1sen\u00edm.
|
||||
finalDeletionConfirmation=Ak vyma\u017eete svoj \u00fa\u010det, nebude mo\u017en\u00e9 ho obnovi\u0165. Ak si chcete \u00fa\u010det ponecha\u0165, kliknite na tla\u010didlo Zru\u0161i\u0165.
|
||||
irreversibleAction=T\u00e1to akcia je nezvratn\u00e1
|
||||
deleteAccountConfirm=Potvrdenie odstr\u00e1nenia \u00fa\u010dtu
|
||||
deletingImplies=Odstr\u00e1nenie v\u00e1\u0161ho \u00fa\u010dtu znamen\u00e1\:
|
||||
errasingData=Vymazanie v\u0161etk\u00fdch va\u0161ich \u00fadajov
|
||||
loggingOutImmediately=Okam\u017eit\u00e9 odhl\u00e1senie
|
||||
accountUnusable=\u017diadne \u010fal\u0161ie pou\u017eitie aplik\u00e1cie nebude s t\u00fdmto \u00fa\u010dtom mo\u017en\u00e9
|
||||
userDeletedSuccessfully=U\u017e\u00edvate\u013e bol \u00faspe\u0161ne odstr\u00e1nen\u00fd
|
||||
access-denied=Pr\u00edstup zamietnut\u00fd
|
||||
access-denied-when-idp-auth=Pr\u00edstup zamietnut\u00fd pri overovan\u00ed pomocou {0}
|
||||
frontchannel-logout.title=Odhl\u00e1senie
|
||||
frontchannel-logout.message=Odhlasujete sa z nasleduj\u00facich aplik\u00e1ci\u00ed
|
||||
logoutConfirmTitle=Odhl\u00e1senie
|
||||
logoutConfirmHeader=Chcete sa odhl\u00e1si\u0165?
|
||||
doLogout=Odhl\u00e1si\u0165
|
||||
readOnlyUsernameMessage=Nem\u00f4\u017eete aktualizova\u0165 svoje pou\u017e\u00edvate\u013esk\u00e9 meno, preto\u017ee je iba na \u010d\u00edtanie.
|
||||
error-invalid-multivalued-size=Atrib\u00fat {0} mus\u00ed ma\u0165 najmenej {1} {1,choice,0\#hodn\u00f4t|1\#hodnotu|1<hodnoty|4<hodn\u00f4t} a najviac {2} {1,choice,0\#hodn\u00f4t|1\#hodnotu|1<hodnoty|4<hodn\u00f4t}.
|
||||
shouldBeEqual={0} by mal by\u0165 rovnak\u00fd ako {1}
|
||||
shouldBeDifferent={0} by mal by\u0165 odli\u0161n\u00fd od {1}
|
||||
shouldMatchPattern=Vzor by mal zodpoveda\u0165\: `/{0}/`
|
||||
mustBeAnInteger=Mus\u00ed by\u0165 cel\u00e9 \u010d\u00edslo
|
||||
notAValidOption=Nie je platn\u00e1 mo\u017enos\u0165
|
||||
selectAnOption=Vyberte mo\u017enos\u0165
|
||||
remove=Odstr\u00e1ni\u0165
|
||||
addValue=Prida\u0165 hodnotu
|
||||
languages=Jazyky
|
@ -0,0 +1,199 @@
|
||||
|
||||
doLogIn=Logga in
|
||||
doRegister=Registrera
|
||||
doRegisterSecurityKey=Registrera
|
||||
doCancel=Avbryt
|
||||
doSubmit=Skicka
|
||||
doYes=Ja
|
||||
doNo=Nej
|
||||
doContinue=Forts\u00e4tt
|
||||
doAccept=Acceptera
|
||||
doDecline=Avb\u00f6j
|
||||
doForgotPassword=Gl\u00f6mt l\u00f6senord?
|
||||
doClickHere=Klicka h\u00e4r
|
||||
doImpersonate=Imitera
|
||||
kerberosNotConfigured=Kerberos \u00e4r inte konfigurerat
|
||||
kerberosNotConfiguredTitle=Kerberos \u00e4r inte konfigurerat
|
||||
bypassKerberosDetail=Antingen s\u00e5 \u00e4r du inte inloggad via Kerberos eller s\u00e5 \u00e4r inte din webbl\u00e4sare inst\u00e4lld f\u00f6r Kerberosinloggning. V\u00e4nligen klicka p\u00e5 forts\u00e4tt f\u00f6r att logga in p\u00e5 annat s\u00e4tt.
|
||||
kerberosNotSetUp=Kerberos \u00e4r inte inst\u00e4llt. Du kan inte logga in.
|
||||
registerWithTitle=Registrera med {0}
|
||||
registerWithTitleHtml={0}
|
||||
loginTitle=Logga in till {0}
|
||||
loginTitleHtml={0}
|
||||
impersonateTitle={0} Imitera anv\u00e4ndare
|
||||
impersonateTitleHtml=<strong>{0}</strong> Imitera anv\u00e4ndare
|
||||
realmChoice=Realm
|
||||
unknownUser=Ok\u00e4nd anv\u00e4ndare
|
||||
loginTotpTitle=Inst\u00e4llning av mobilautentiserare
|
||||
loginProfileTitle=Uppdatera kontoinformation
|
||||
loginTimeout=Det tog f\u00f6r l\u00e5ng tid att logga in. Inloggningsprocessen b\u00f6rjar om.
|
||||
oauthGrantTitle=Bevilja \u00e5tkomst
|
||||
oauthGrantTitleHtml={0}
|
||||
errorTitle=Vi ber om urs\u00e4kt...
|
||||
errorTitleHtml=Vi ber om <strong>urs\u00e4kt</strong> ...
|
||||
emailVerifyTitle=E-postverifiering
|
||||
emailForgotTitle=Gl\u00f6mt ditt l\u00f6senord?
|
||||
updatePasswordTitle=Uppdatera l\u00f6senord
|
||||
codeSuccessTitle=R\u00e4tt kod
|
||||
codeErrorTitle=Felkod\: {0}
|
||||
termsTitle=Anv\u00e4ndarvillkor
|
||||
termsTitleHtml=Anv\u00e4ndarvillkor
|
||||
termsText=
|
||||
recaptchaFailed=Ogiltig Recaptcha
|
||||
recaptchaNotConfigured=Recaptcha kr\u00e4vs, men \u00e4r inte inst\u00e4lld
|
||||
consentDenied=Samtycke f\u00f6rnekat.
|
||||
noAccount=Ny anv\u00e4ndare?
|
||||
username=Anv\u00e4ndarnamn
|
||||
usernameOrEmail=Anv\u00e4ndarnamn eller e-post
|
||||
firstName=F\u00f6rnamn
|
||||
lastName=Efternamn
|
||||
email=E-post
|
||||
password=L\u00f6senord
|
||||
passwordConfirm=Bekr\u00e4fta l\u00f6senord
|
||||
passwordNew=Nytt l\u00f6senord
|
||||
passwordNewConfirm=Bekr\u00e4ftelse av nytt l\u00f6senord
|
||||
rememberMe=Kom ih\u00e5g mig
|
||||
authenticatorCode=Eng\u00e5ngskod
|
||||
address=Adress
|
||||
street=Gata
|
||||
locality=Postort
|
||||
region=Stat, Provins eller Region
|
||||
postal_code=Postnummer
|
||||
country=Land
|
||||
emailVerified=E-post verifierad
|
||||
gssDelegationCredential=GSS Delegation Credential
|
||||
loginTotpStep1=Installera <a href\="https\://freeotp.github.io/" target\="_blank">FreeOTP</a> eller Google Authenticator p\u00e5 din mobil. B\u00e5da applikationerna finns tillg\u00e4ngliga hos <a href\="https\://play.google.com">Google Play</a> och Apple App Store.
|
||||
loginTotpStep2=\u00d6ppna applikationen och skanna streckkoden eller skriv i nyckeln
|
||||
loginTotpStep3=Fyll i eng\u00e5ngskoden som tillhandah\u00e5lls av applikationen och klicka p\u00e5 Spara f\u00f6r att avsluta inst\u00e4llningarna
|
||||
loginOtpOneTime=Eng\u00e5ngskod
|
||||
oauthGrantRequest=Godk\u00e4nner du tillg\u00e5ng till de h\u00e4r r\u00e4ttigheterna?
|
||||
inResource=i
|
||||
emailVerifyInstruction1=Ett e-postmeddelande med instruktioner om hur du verifierar din e-postadress har skickats till dig.
|
||||
emailVerifyInstruction2=Har du inte f\u00e5tt en verifikationskod i din e-post?
|
||||
emailVerifyInstruction3=f\u00f6r att skicka e-postmeddelandet igen.
|
||||
emailLinkIdpTitle=L\u00e4nkning {0}
|
||||
emailLinkIdp1=Ett e-postmeddelande med instruktioner om hur du l\u00e4nkar {0} kontot {1} med ditt {2} konto har skickats till dig.
|
||||
emailLinkIdp2=Har du inte f\u00e5tt en verifikationskod i din e-post?
|
||||
emailLinkIdp3=f\u00f6r att skicka e-postmeddelandet igen.
|
||||
backToLogin=« Tillbaka till inloggningen
|
||||
emailInstruction=Fyll i ditt anv\u00e4ndarnamn eller din e-postadress, s\u00e5 kommer vi att skicka instruktioner f\u00f6r hur du skapar ett nytt l\u00f6senord.
|
||||
copyCodeInstruction=V\u00e4nligen kopiera den h\u00e4r koden och klistra in den i din applikation\:
|
||||
personalInfo=Personlig information\:
|
||||
role_admin=Administrat\u00f6r
|
||||
role_realm-admin=Realm-administrat\u00f6r
|
||||
role_create-realm=Skapa realm
|
||||
role_create-client=Skapa klient
|
||||
role_view-realm=Visa realm
|
||||
role_view-users=Visa anv\u00e4ndare
|
||||
role_view-applications=Visa applikationer
|
||||
role_view-clients=Visa klienter
|
||||
role_view-events=Visa event
|
||||
role_view-identity-providers=Visa identitetsleverant\u00f6rer
|
||||
role_manage-realm=Hantera realm
|
||||
role_manage-users=Hantera anv\u00e4ndare
|
||||
role_manage-applications=Hantera applikationer
|
||||
role_manage-identity-providers=Hantera identitetsleverant\u00f6rer
|
||||
role_manage-clients=Hantera klienter
|
||||
role_manage-events=Hantera event
|
||||
role_view-profile=Visa profil
|
||||
role_manage-account=Hantera konto
|
||||
role_read-token=L\u00e4s element
|
||||
role_offline-access=\u00c5tkomst offline
|
||||
client_account=Konto
|
||||
client_security-admin-console=S\u00e4kerhetsadministrat\u00f6rskonsol
|
||||
client_admin-cli=Administrat\u00f6rs-CLI
|
||||
client_realm-management=Realmhantering
|
||||
invalidUserMessage=Ogiltigt anv\u00e4ndarnamn eller l\u00f6senord.
|
||||
invalidEmailMessage=Ogiltig e-postadress.
|
||||
accountDisabledMessage=Kontot \u00e4r inaktiverat, kontakta administrat\u00f6r.
|
||||
accountTemporarilyDisabledMessage=Kontot \u00e4r tillf\u00e4lligt inaktiverat, kontakta administrat\u00f6r eller f\u00f6rs\u00f6k igen senare.
|
||||
expiredCodeMessage=Inloggningen n\u00e5dde en maxtidsgr\u00e4ns. V\u00e4nligen f\u00f6rs\u00f6k igen.
|
||||
missingFirstNameMessage=V\u00e4nligen ange f\u00f6rnamn.
|
||||
missingLastNameMessage=V\u00e4nligen ange efternamn.
|
||||
missingEmailMessage=V\u00e4nligen ange e-post.
|
||||
missingUsernameMessage=V\u00e4nligen ange anv\u00e4ndarnamn.
|
||||
missingPasswordMessage=V\u00e4nligen ange l\u00f6senord.
|
||||
missingTotpMessage=V\u00e4nligen ange autentiseringskod.
|
||||
notMatchPasswordMessage=L\u00f6senorden matchar inte.
|
||||
invalidPasswordExistingMessage=Det nuvarande l\u00f6senordet \u00e4r ogiltigt.
|
||||
invalidPasswordConfirmMessage=L\u00f6senordsbekr\u00e4ftelsen matchar inte.
|
||||
invalidTotpMessage=Autentiseringskoden \u00e4r ogiltig.
|
||||
usernameExistsMessage=Anv\u00e4ndarnamnet finns redan.
|
||||
emailExistsMessage=E-postadressen finns redan.
|
||||
federatedIdentityExistsMessage=Anv\u00e4ndare med {0} {1} finns redan. V\u00e4nligen logga in till kontohanteringen f\u00f6r att l\u00e4nka kontot.
|
||||
confirmLinkIdpTitle=Kontot finns redan
|
||||
federatedIdentityConfirmLinkMessage=Anv\u00e4ndare med {0} {1} finns redan, Hur vill du forts\u00e4tta?
|
||||
federatedIdentityConfirmReauthenticateMessage=Autentisera f\u00f6r att l\u00e4nka ditt konto med {0}
|
||||
confirmLinkIdpReviewProfile=Granska profil
|
||||
confirmLinkIdpContinue=L\u00e4gg till i existerande konto
|
||||
configureTotpMessage=Du beh\u00f6ver konfigurera mobilautentiseraren f\u00f6r att aktivera ditt konto.
|
||||
updateProfileMessage=Du beh\u00f6ver uppdatera din anv\u00e4ndarprofil f\u00f6r att aktivera ditt konto.
|
||||
updatePasswordMessage=Du beh\u00f6ver byta ditt l\u00f6senord f\u00f6r att aktivera ditt konto.
|
||||
verifyEmailMessage=Du beh\u00f6ver verifiera din e-postadress f\u00f6r att aktivera ditt konto.
|
||||
linkIdpMessage=Du beh\u00f6ver verifiera din e-postadress f\u00f6r att l\u00e4nka ditt konto med {0}.
|
||||
emailSentMessage=Du b\u00f6r inom kort motta ett e-postmeddelande med ytterligare instruktioner.
|
||||
emailSendErrorMessage=E-postmeddelandet kunde inte skickas, f\u00f6rs\u00f6k igen senare.
|
||||
accountUpdatedMessage=Ditt konto har uppdaterats.
|
||||
accountPasswordUpdatedMessage=Ditt l\u00f6senord har uppdaterats.
|
||||
noAccessMessage=Ingen \u00e5tkomst
|
||||
invalidPasswordMinLengthMessage=Ogiltigt l\u00f6senord. Minsta l\u00e4ngd \u00e4r {0}.
|
||||
invalidPasswordMinDigitsMessage=Ogiltigt l\u00f6senord\: m\u00e5ste inneh\u00e5lla minst {0} siffror.
|
||||
invalidPasswordMinLowerCaseCharsMessage=Ogiltigt l\u00f6senord\: m\u00e5ste inneh\u00e5lla minst {0} sm\u00e5 bokst\u00e4ver.
|
||||
invalidPasswordMinUpperCaseCharsMessage=Ogiltigt l\u00f6senord\: m\u00e5ste inneh\u00e5lla minst {0} stora bokst\u00e4ver.
|
||||
invalidPasswordMinSpecialCharsMessage=Ogiltigt l\u00f6senord\: m\u00e5ste inneh\u00e5lla minst {0} specialtecken.
|
||||
invalidPasswordNotUsernameMessage=Ogiltigt l\u00f6senord\: F\u00e5r inte vara samma som anv\u00e4ndarnamnet.
|
||||
invalidPasswordRegexPatternMessage=Ogiltigt l\u00f6senord\: matchar inte regex m\u00f6nstret(en).
|
||||
invalidPasswordHistoryMessage=Ogiltigt l\u00f6senord\: F\u00e5r inte vara samma som de senaste {0} l\u00f6senorden.
|
||||
invalidPasswordGenericMessage=Ogiltigt l\u00f6senord\: Det nya l\u00f6senordet st\u00e4mmer inte med l\u00f6senordspolicyn.
|
||||
failedToProcessResponseMessage=Misslyckades med att behandla svaret
|
||||
httpsRequiredMessage=HTTPS kr\u00e4vs
|
||||
realmNotEnabledMessage=Realm \u00e4r inte aktiverad
|
||||
invalidRequestMessage=Ogiltig f\u00f6rfr\u00e5gan
|
||||
failedLogout=Utloggning misslyckades
|
||||
unknownLoginRequesterMessage=Ok\u00e4nd inloggningsf\u00f6rfr\u00e5gan
|
||||
loginRequesterNotEnabledMessage=Inloggningsf\u00f6rfr\u00e5garen \u00e4r inte aktiverad
|
||||
bearerOnlyMessage=Bearer-only-applikationer till\u00e5ts inte att initiera inloggning genom webbl\u00e4sare
|
||||
standardFlowDisabledMessage=Klienten till\u00e5ts inte att initiera inloggning genom webbl\u00e4sare med det givna response_type. Standardfl\u00f6det \u00e4r inaktiverat f\u00f6r klienten.
|
||||
implicitFlowDisabledMessage=Klienten till\u00e5ts inte att initiera inloggning genom webbl\u00e4sare med det givna response_type. Villkorsl\u00f6st fl\u00f6de \u00e4r inaktiverat f\u00f6r klienten.
|
||||
invalidRedirectUriMessage=Ogiltig omdirigeringsadress
|
||||
unsupportedNameIdFormatMessage=NameIDFormat st\u00f6ds ej
|
||||
invalidRequesterMessage=Ogiltig f\u00f6rfr\u00e5gare
|
||||
registrationNotAllowedMessage=Registrering till\u00e5ts ej
|
||||
resetCredentialNotAllowedMessage=\u00c5terst\u00e4llning av uppgifter till\u00e5ts ej
|
||||
permissionNotApprovedMessage=R\u00e4ttigheten ej godk\u00e4nd.
|
||||
noRelayStateInResponseMessage=Inget vidarebefordrat tillst\u00e5nd i svaret fr\u00e5n identitetsleverant\u00f6r.
|
||||
insufficientPermissionMessage=Otillr\u00e4ckliga tillst\u00e5nd f\u00f6r att l\u00e4nka identiteter.
|
||||
couldNotProceedWithAuthenticationRequestMessage=Kunde inte forts\u00e4tta med autentiseringsf\u00f6rfr\u00e5gan till identitetsleverant\u00f6r.
|
||||
couldNotObtainTokenMessage=Kunde inte motta element fr\u00e5n identitetsleverant\u00f6r.
|
||||
unexpectedErrorRetrievingTokenMessage=Ov\u00e4ntat fel n\u00e4r element h\u00e4mtas fr\u00e5n identitetsleverant\u00f6r.
|
||||
unexpectedErrorHandlingResponseMessage=Ov\u00e4ntat fel under hantering av svar fr\u00e5n fr\u00e5n identitetsleverant\u00f6r.
|
||||
identityProviderAuthenticationFailedMessage=Autentiseringen misslyckades. Kunde inte autentisera med identitetsleverant\u00f6r.
|
||||
couldNotSendAuthenticationRequestMessage=Kunde inte skicka autentiseringsf\u00f6rfr\u00e5gan till identitetsleverant\u00f6r.
|
||||
unexpectedErrorHandlingRequestMessage=Ov\u00e4ntat fel under hantering av autentiseringsf\u00f6rfr\u00e5gan till identitetsleverant\u00f6r.
|
||||
invalidAccessCodeMessage=Ogiltig tilltr\u00e4deskod.
|
||||
sessionNotActiveMessage=Sessionen ej aktiv.
|
||||
invalidCodeMessage=Ett fel uppstod, v\u00e4nligen logga in igen genom din applikation.
|
||||
identityProviderUnexpectedErrorMessage=Ov\u00e4ntat fel under autentiseringen med identitetsleverant\u00f6r
|
||||
identityProviderNotFoundMessage=Kunde inte hitta en identitetsleverant\u00f6r med identifikatorn.
|
||||
identityProviderLinkSuccess=Ditt konto lyckades med att l\u00e4nka {0} med kontot {1}.
|
||||
staleCodeMessage=Den h\u00e4r sidan \u00e4r inte l\u00e4ngre giltig, v\u00e4nligen g\u00e5 tillbaka till din applikation och logga in igen
|
||||
realmSupportsNoCredentialsMessage=Realmen st\u00f6djer inga inloggningstyper.
|
||||
identityProviderNotUniqueMessage=Realmen st\u00f6djer flera identitetsleverant\u00f6r. Kunde inte avg\u00f6ra vilken identitetsleverant\u00f6r som skall anv\u00e4ndas f\u00f6r autentisering.
|
||||
emailVerifiedMessage=Din e-postadress har blivit verifierad.
|
||||
staleEmailVerificationLink=L\u00e4nken du klickade p\u00e5 \u00e4r en gammal, inaktuell l\u00e4nk som inte l\u00e4ngre \u00e4r giltig. Kanske har du redan verifierat din e-post?
|
||||
backToApplication=« Tillbaka till applikationen
|
||||
missingParameterMessage=Parametrar som saknas\: {0}
|
||||
clientNotFoundMessage=Klienten hittades ej.
|
||||
clientDisabledMessage=Klienten \u00e4r inaktiverad.
|
||||
invalidParameterMessage=Ogiltig parameter\: {0}
|
||||
alreadyLoggedIn=Du \u00e4r redan inloggad.
|
||||
loginAccountTitle=Logga in till ditt konto
|
||||
shouldBeEqual={0} b\u00f6r vara lika med {1}
|
||||
shouldBeDifferent={0} b\u00f6r vara annorlunda \u00e4n {1}
|
||||
shouldMatchPattern=M\u00f6nstret b\u00f6r matcha\: `/{0}/`
|
||||
mustBeAnInteger=M\u00e5ste vara ett heltal
|
||||
notAValidOption=Inte ett giltigt alternativ
|
||||
selectAnOption=V\u00e4lj ett alternativ
|
||||
remove=Ta bort
|
||||
addValue=L\u00e4gg till v\u00e4rde
|
||||
languages=Spr\u00e5k
|
@ -0,0 +1,441 @@
|
||||
|
||||
doLogIn=\u0e40\u0e02\u0e49\u0e32\u0e2a\u0e39\u0e48\u0e23\u0e30\u0e1a\u0e1a
|
||||
doRegister=\u0e25\u0e07\u0e17\u0e30\u0e40\u0e1a\u0e35\u0e22\u0e19
|
||||
doRegisterSecurityKey=\u0e25\u0e07\u0e17\u0e30\u0e40\u0e1a\u0e35\u0e22\u0e19
|
||||
doCancel=\u0e22\u0e01\u0e40\u0e25\u0e34\u0e01
|
||||
doSubmit=\u0e2a\u0e48\u0e07
|
||||
doBack=\u0e22\u0e49\u0e2d\u0e19\u0e01\u0e25\u0e31\u0e1a
|
||||
doYes=\u0e43\u0e0a\u0e48
|
||||
doNo=\u0e44\u0e21\u0e48\u0e43\u0e0a\u0e48
|
||||
doContinue=\u0e14\u0e33\u0e40\u0e19\u0e34\u0e19\u0e01\u0e32\u0e23\u0e15\u0e48\u0e2d
|
||||
doIgnore=\u0e44\u0e21\u0e48\u0e2a\u0e19\u0e43\u0e08
|
||||
doAccept=\u0e22\u0e2d\u0e21\u0e23\u0e31\u0e1a
|
||||
doDecline=\u0e1b\u0e0f\u0e34\u0e40\u0e2a\u0e18
|
||||
doForgotPassword=\u0e25\u0e37\u0e21\u0e23\u0e2b\u0e31\u0e2a\u0e1c\u0e48\u0e32\u0e19?
|
||||
doClickHere=\u0e04\u0e25\u0e34\u0e01\u0e17\u0e35\u0e48\u0e19\u0e35\u0e48
|
||||
doImpersonate=\u0e2a\u0e27\u0e21\u0e1a\u0e17\u0e1a\u0e32\u0e17
|
||||
doTryAgain=\u0e25\u0e2d\u0e07\u0e2d\u0e35\u0e01\u0e04\u0e23\u0e31\u0e49\u0e07
|
||||
doTryAnotherWay=\u0e25\u0e2d\u0e07\u0e27\u0e34\u0e18\u0e35\u0e2d\u0e37\u0e48\u0e19
|
||||
doConfirmDelete=\u0e22\u0e37\u0e19\u0e22\u0e31\u0e19\u0e01\u0e32\u0e23\u0e25\u0e1a
|
||||
errorDeletingAccount=\u0e40\u0e01\u0e34\u0e14\u0e02\u0e49\u0e2d\u0e1c\u0e34\u0e14\u0e1e\u0e25\u0e32\u0e14\u0e02\u0e13\u0e30\u0e25\u0e1a\u0e1a\u0e31\u0e0d\u0e0a\u0e35
|
||||
deletingAccountForbidden=\u0e04\u0e38\u0e13\u0e44\u0e21\u0e48\u0e21\u0e35\u0e2a\u0e34\u0e17\u0e18\u0e34\u0e4c\u0e40\u0e1e\u0e35\u0e22\u0e07\u0e1e\u0e2d\u0e43\u0e19\u0e01\u0e32\u0e23\u0e25\u0e1a\u0e1a\u0e31\u0e0d\u0e0a\u0e35\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13\u0e40\u0e2d\u0e07 \u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d\u0e1c\u0e39\u0e49\u0e14\u0e39\u0e41\u0e25\u0e23\u0e30\u0e1a\u0e1a
|
||||
kerberosNotConfigured=Kerberos \u0e44\u0e21\u0e48\u0e44\u0e14\u0e49\u0e16\u0e39\u0e01\u0e01\u0e33\u0e2b\u0e19\u0e14\u0e04\u0e48\u0e32
|
||||
kerberosNotConfiguredTitle=Kerberos \u0e44\u0e21\u0e48\u0e44\u0e14\u0e49\u0e16\u0e39\u0e01\u0e01\u0e33\u0e2b\u0e19\u0e14\u0e04\u0e48\u0e32
|
||||
bypassKerberosDetail=\u0e04\u0e38\u0e13\u0e44\u0e21\u0e48\u0e44\u0e14\u0e49\u0e40\u0e02\u0e49\u0e32\u0e2a\u0e39\u0e48\u0e23\u0e30\u0e1a\u0e1a\u0e14\u0e49\u0e27\u0e22 Kerberos \u0e2b\u0e23\u0e37\u0e2d\u0e40\u0e1a\u0e23\u0e32\u0e27\u0e4c\u0e40\u0e0b\u0e2d\u0e23\u0e4c\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13\u0e44\u0e21\u0e48\u0e44\u0e14\u0e49\u0e16\u0e39\u0e01\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32\u0e43\u0e2b\u0e49\u0e40\u0e02\u0e49\u0e32\u0e2a\u0e39\u0e48\u0e23\u0e30\u0e1a\u0e1a\u0e14\u0e49\u0e27\u0e22 Kerberos \u0e01\u0e23\u0e38\u0e13\u0e32\u0e04\u0e25\u0e34\u0e01\u0e17\u0e35\u0e48 "\u0e14\u0e33\u0e40\u0e19\u0e34\u0e19\u0e01\u0e32\u0e23\u0e15\u0e48\u0e2d" \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e40\u0e02\u0e49\u0e32\u0e2a\u0e39\u0e48\u0e23\u0e30\u0e1a\u0e1a\u0e42\u0e14\u0e22\u0e27\u0e34\u0e18\u0e35\u0e2d\u0e37\u0e48\u0e19
|
||||
kerberosNotSetUp=Kerberos \u0e44\u0e21\u0e48\u0e44\u0e14\u0e49\u0e16\u0e39\u0e01\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32 \u0e04\u0e38\u0e13\u0e44\u0e21\u0e48\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e40\u0e02\u0e49\u0e32\u0e2a\u0e39\u0e48\u0e23\u0e30\u0e1a\u0e1a\u0e44\u0e14\u0e49
|
||||
registerTitle=\u0e25\u0e07\u0e17\u0e30\u0e40\u0e1a\u0e35\u0e22\u0e19
|
||||
loginAccountTitle=\u0e40\u0e02\u0e49\u0e32\u0e2a\u0e39\u0e48\u0e23\u0e30\u0e1a\u0e1a\u0e14\u0e49\u0e27\u0e22\u0e1a\u0e31\u0e0d\u0e0a\u0e35\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13
|
||||
loginTitle=\u0e40\u0e02\u0e49\u0e32\u0e2a\u0e39\u0e48\u0e23\u0e30\u0e1a\u0e1a\u0e44\u0e1b\u0e22\u0e31\u0e07 {0}
|
||||
loginTitleHtml={0}
|
||||
impersonateTitle={0} \u0e2a\u0e27\u0e21\u0e1a\u0e17\u0e1a\u0e32\u0e17\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19
|
||||
impersonateTitleHtml=<strong>{0}</strong> \u0e2a\u0e27\u0e21\u0e1a\u0e17\u0e1a\u0e32\u0e17\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19
|
||||
realmChoice=Realm
|
||||
unknownUser=\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e17\u0e35\u0e48\u0e44\u0e21\u0e48\u0e23\u0e39\u0e49\u0e08\u0e31\u0e01
|
||||
loginTotpTitle=\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32 Mobile Authenticator
|
||||
loginProfileTitle=\u0e1b\u0e23\u0e31\u0e1a\u0e1b\u0e23\u0e38\u0e07\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e1a\u0e31\u0e0d\u0e0a\u0e35\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19
|
||||
loginIdpReviewProfileTitle=\u0e1b\u0e23\u0e31\u0e1a\u0e1b\u0e23\u0e38\u0e07\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e1a\u0e31\u0e0d\u0e0a\u0e35\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19
|
||||
loginTimeout=\u0e01\u0e32\u0e23\u0e1e\u0e22\u0e32\u0e22\u0e32\u0e21\u0e40\u0e02\u0e49\u0e32\u0e2a\u0e39\u0e48\u0e23\u0e30\u0e1a\u0e1a\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13\u0e2b\u0e21\u0e14\u0e40\u0e27\u0e25\u0e32 \u0e01\u0e32\u0e23\u0e40\u0e02\u0e49\u0e32\u0e2a\u0e39\u0e48\u0e23\u0e30\u0e1a\u0e1a\u0e08\u0e30\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19\u0e43\u0e2b\u0e21\u0e48
|
||||
reauthenticate=\u0e01\u0e23\u0e38\u0e13\u0e32\u0e1e\u0e34\u0e2a\u0e39\u0e08\u0e19\u0e4c\u0e15\u0e31\u0e27\u0e08\u0e23\u0e34\u0e07\u0e2d\u0e35\u0e01\u0e04\u0e23\u0e31\u0e49\u0e07\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e14\u0e33\u0e40\u0e19\u0e34\u0e19\u0e01\u0e32\u0e23\u0e15\u0e48\u0e2d
|
||||
oauthGrantTitle=\u0e43\u0e2b\u0e49\u0e2d\u0e19\u0e38\u0e0d\u0e32\u0e15 {0}
|
||||
oauthGrantTitleHtml={0}
|
||||
oauthGrantInformation=\u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a\u0e27\u0e48\u0e32\u0e04\u0e38\u0e13\u0e44\u0e27\u0e49\u0e27\u0e32\u0e07\u0e43\u0e08 {0} \u0e42\u0e14\u0e22\u0e01\u0e32\u0e23\u0e17\u0e33\u0e04\u0e27\u0e32\u0e21\u0e40\u0e02\u0e49\u0e32\u0e43\u0e08\u0e27\u0e48\u0e32 {0} \u0e08\u0e30\u0e08\u0e31\u0e14\u0e01\u0e32\u0e23\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e44\u0e23
|
||||
oauthGrantReview=\u0e04\u0e38\u0e13\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e17\u0e1a\u0e17\u0e27\u0e19
|
||||
oauthGrantTos=\u0e02\u0e49\u0e2d\u0e15\u0e01\u0e25\u0e07\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19
|
||||
oauthGrantPolicy=\u0e19\u0e42\u0e22\u0e1a\u0e32\u0e22\u0e04\u0e38\u0e49\u0e21\u0e04\u0e23\u0e2d\u0e07\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e2a\u0e48\u0e27\u0e19\u0e1a\u0e38\u0e04\u0e04\u0e25
|
||||
errorTitle=\u0e40\u0e23\u0e32\u0e02\u0e2d\u0e42\u0e17\u0e29...
|
||||
errorTitleHtml=\u0e40\u0e23\u0e32<strong>\u0e02\u0e2d\u0e42\u0e17\u0e29</strong> ...
|
||||
emailVerifyTitle=\u0e01\u0e32\u0e23\u0e22\u0e37\u0e19\u0e22\u0e31\u0e19\u0e2d\u0e35\u0e40\u0e21\u0e25
|
||||
emailForgotTitle=\u0e25\u0e37\u0e21\u0e23\u0e2b\u0e31\u0e2a\u0e1c\u0e48\u0e32\u0e19\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13?
|
||||
updateEmailTitle=\u0e1b\u0e23\u0e31\u0e1a\u0e1b\u0e23\u0e38\u0e07\u0e2d\u0e35\u0e40\u0e21\u0e25
|
||||
emailUpdateConfirmationSentTitle=\u0e2a\u0e48\u0e07\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e22\u0e37\u0e19\u0e22\u0e31\u0e19\u0e41\u0e25\u0e49\u0e27
|
||||
emailUpdateConfirmationSent=\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e22\u0e37\u0e19\u0e22\u0e31\u0e19\u0e16\u0e39\u0e01\u0e2a\u0e48\u0e07\u0e44\u0e1b\u0e22\u0e31\u0e07 {0} \u0e04\u0e38\u0e13\u0e15\u0e49\u0e2d\u0e07\u0e1b\u0e0f\u0e34\u0e1a\u0e31\u0e15\u0e34\u0e15\u0e32\u0e21\u0e04\u0e33\u0e41\u0e19\u0e30\u0e19\u0e33\u0e43\u0e19\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e2a\u0e34\u0e49\u0e19\u0e2a\u0e38\u0e14\u0e01\u0e32\u0e23\u0e1b\u0e23\u0e31\u0e1a\u0e1b\u0e23\u0e38\u0e07\u0e2d\u0e35\u0e40\u0e21\u0e25
|
||||
emailUpdatedTitle=\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e16\u0e39\u0e01\u0e1b\u0e23\u0e31\u0e1a\u0e1b\u0e23\u0e38\u0e07\u0e41\u0e25\u0e49\u0e27
|
||||
emailUpdated=\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e02\u0e2d\u0e07\u0e1a\u0e31\u0e0d\u0e0a\u0e35\u0e16\u0e39\u0e01\u0e1b\u0e23\u0e31\u0e1a\u0e1b\u0e23\u0e38\u0e07\u0e40\u0e1b\u0e47\u0e19 {0} \u0e40\u0e23\u0e35\u0e22\u0e1a\u0e23\u0e49\u0e2d\u0e22\u0e41\u0e25\u0e49\u0e27
|
||||
updatePasswordTitle=\u0e1b\u0e23\u0e31\u0e1a\u0e1b\u0e23\u0e38\u0e07\u0e23\u0e2b\u0e31\u0e2a\u0e1c\u0e48\u0e32\u0e19
|
||||
codeSuccessTitle=\u0e23\u0e2b\u0e31\u0e2a\u0e2a\u0e33\u0e40\u0e23\u0e47\u0e08
|
||||
codeErrorTitle=\u0e23\u0e2b\u0e31\u0e2a\u0e02\u0e49\u0e2d\u0e1c\u0e34\u0e14\u0e1e\u0e25\u0e32\u0e14\: {0}
|
||||
displayUnsupported=\u0e44\u0e21\u0e48\u0e2a\u0e19\u0e31\u0e1a\u0e2a\u0e19\u0e38\u0e19\u0e01\u0e32\u0e23\u0e41\u0e2a\u0e14\u0e07\u0e1c\u0e25\u0e17\u0e35\u0e48\u0e23\u0e49\u0e2d\u0e07\u0e02\u0e2d
|
||||
browserRequired=\u0e15\u0e49\u0e2d\u0e07\u0e43\u0e0a\u0e49\u0e40\u0e1a\u0e23\u0e32\u0e27\u0e4c\u0e40\u0e0b\u0e2d\u0e23\u0e4c\u0e43\u0e19\u0e01\u0e32\u0e23\u0e40\u0e02\u0e49\u0e32\u0e2a\u0e39\u0e48\u0e23\u0e30\u0e1a\u0e1a
|
||||
browserContinue=\u0e15\u0e49\u0e2d\u0e07\u0e43\u0e0a\u0e49\u0e40\u0e1a\u0e23\u0e32\u0e27\u0e4c\u0e40\u0e0b\u0e2d\u0e23\u0e4c\u0e43\u0e19\u0e01\u0e32\u0e23\u0e40\u0e02\u0e49\u0e32\u0e2a\u0e39\u0e48\u0e23\u0e30\u0e1a\u0e1a\u0e15\u0e48\u0e2d
|
||||
browserContinuePrompt=\u0e40\u0e1b\u0e34\u0e14\u0e40\u0e1a\u0e23\u0e32\u0e27\u0e4c\u0e40\u0e0b\u0e2d\u0e23\u0e4c\u0e41\u0e25\u0e30\u0e40\u0e02\u0e49\u0e32\u0e2a\u0e39\u0e48\u0e23\u0e30\u0e1a\u0e1a\u0e15\u0e48\u0e2d? [y/n]\:
|
||||
browserContinueAnswer=y
|
||||
usb=USB
|
||||
nfc=NFC
|
||||
bluetooth=Bluetooth
|
||||
internal=\u0e20\u0e32\u0e22\u0e43\u0e19
|
||||
unknown=\u0e44\u0e21\u0e48\u0e17\u0e23\u0e32\u0e1a
|
||||
termsTitle=\u0e02\u0e49\u0e2d\u0e01\u0e33\u0e2b\u0e19\u0e14\u0e41\u0e25\u0e30\u0e40\u0e07\u0e37\u0e48\u0e2d\u0e19\u0e44\u0e02
|
||||
termsText=
|
||||
termsPlainText=\u0e02\u0e49\u0e2d\u0e01\u0e33\u0e2b\u0e19\u0e14\u0e41\u0e25\u0e30\u0e40\u0e07\u0e37\u0e48\u0e2d\u0e19\u0e44\u0e02\u0e17\u0e35\u0e48\u0e08\u0e30\u0e01\u0e33\u0e2b\u0e19\u0e14
|
||||
termsAcceptanceRequired=\u0e04\u0e38\u0e13\u0e15\u0e49\u0e2d\u0e07\u0e22\u0e2d\u0e21\u0e23\u0e31\u0e1a\u0e02\u0e49\u0e2d\u0e01\u0e33\u0e2b\u0e19\u0e14\u0e41\u0e25\u0e30\u0e40\u0e07\u0e37\u0e48\u0e2d\u0e19\u0e44\u0e02\u0e02\u0e2d\u0e07\u0e40\u0e23\u0e32
|
||||
acceptTerms=\u0e09\u0e31\u0e19\u0e22\u0e2d\u0e21\u0e23\u0e31\u0e1a\u0e02\u0e49\u0e2d\u0e01\u0e33\u0e2b\u0e19\u0e14\u0e41\u0e25\u0e30\u0e40\u0e07\u0e37\u0e48\u0e2d\u0e19\u0e44\u0e02
|
||||
recaptchaFailed=Recaptcha \u0e44\u0e21\u0e48\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07
|
||||
recaptchaNotConfigured=\u0e15\u0e49\u0e2d\u0e07\u0e43\u0e0a\u0e49 Recaptcha \u0e41\u0e15\u0e48\u0e44\u0e21\u0e48\u0e44\u0e14\u0e49\u0e01\u0e33\u0e2b\u0e19\u0e14\u0e04\u0e48\u0e32
|
||||
consentDenied=\u0e01\u0e32\u0e23\u0e02\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e22\u0e34\u0e19\u0e22\u0e2d\u0e21\u0e16\u0e39\u0e01\u0e1b\u0e0f\u0e34\u0e40\u0e2a\u0e18
|
||||
noAccount=\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e43\u0e2b\u0e21\u0e48?
|
||||
username=\u0e0a\u0e37\u0e48\u0e2d\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19
|
||||
usernameOrEmail=\u0e0a\u0e37\u0e48\u0e2d\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e2b\u0e23\u0e37\u0e2d\u0e2d\u0e35\u0e40\u0e21\u0e25
|
||||
firstName=\u0e0a\u0e37\u0e48\u0e2d
|
||||
givenName=\u0e0a\u0e37\u0e48\u0e2d
|
||||
fullName=\u0e0a\u0e37\u0e48\u0e2d-\u0e19\u0e32\u0e21\u0e2a\u0e01\u0e38\u0e25
|
||||
lastName=\u0e19\u0e32\u0e21\u0e2a\u0e01\u0e38\u0e25
|
||||
familyName=\u0e19\u0e32\u0e21\u0e2a\u0e01\u0e38\u0e25
|
||||
email=\u0e2d\u0e35\u0e40\u0e21\u0e25
|
||||
password=\u0e23\u0e2b\u0e31\u0e2a\u0e1c\u0e48\u0e32\u0e19
|
||||
passwordConfirm=\u0e22\u0e37\u0e19\u0e22\u0e31\u0e19\u0e23\u0e2b\u0e31\u0e2a\u0e1c\u0e48\u0e32\u0e19
|
||||
passwordNew=\u0e23\u0e2b\u0e31\u0e2a\u0e1c\u0e48\u0e32\u0e19\u0e43\u0e2b\u0e21\u0e48
|
||||
passwordNewConfirm=\u0e22\u0e37\u0e19\u0e22\u0e31\u0e19\u0e23\u0e2b\u0e31\u0e2a\u0e1c\u0e48\u0e32\u0e19\u0e43\u0e2b\u0e21\u0e48
|
||||
rememberMe=\u0e08\u0e14\u0e08\u0e33\u0e09\u0e31\u0e19\u0e44\u0e27\u0e49
|
||||
authenticatorCode=\u0e23\u0e2b\u0e31\u0e2a\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e43\u0e0a\u0e49\u0e04\u0e23\u0e31\u0e49\u0e07\u0e40\u0e14\u0e35\u0e22\u0e27
|
||||
address=\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48
|
||||
street=\u0e16\u0e19\u0e19
|
||||
locality=\u0e2d\u0e33\u0e40\u0e20\u0e2d/\u0e40\u0e02\u0e15
|
||||
region=\u0e08\u0e31\u0e07\u0e2b\u0e27\u0e31\u0e14
|
||||
postal_code=\u0e23\u0e2b\u0e31\u0e2a\u0e44\u0e1b\u0e23\u0e29\u0e13\u0e35\u0e22\u0e4c
|
||||
country=\u0e1b\u0e23\u0e30\u0e40\u0e17\u0e28
|
||||
emailVerified=\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e17\u0e35\u0e48\u0e22\u0e37\u0e19\u0e22\u0e31\u0e19\u0e41\u0e25\u0e49\u0e27
|
||||
website=\u0e40\u0e27\u0e47\u0e1a\u0e44\u0e0b\u0e15\u0e4c
|
||||
phoneNumber=\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e25\u0e02\u0e42\u0e17\u0e23\u0e28\u0e31\u0e1e\u0e17\u0e4c
|
||||
phoneNumberVerified=\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e25\u0e02\u0e42\u0e17\u0e23\u0e28\u0e31\u0e1e\u0e17\u0e4c\u0e17\u0e35\u0e48\u0e22\u0e37\u0e19\u0e22\u0e31\u0e19\u0e41\u0e25\u0e49\u0e27
|
||||
gender=\u0e40\u0e1e\u0e28
|
||||
birthday=\u0e27\u0e31\u0e19\u0e40\u0e01\u0e34\u0e14
|
||||
zoneinfo=\u0e40\u0e02\u0e15\u0e40\u0e27\u0e25\u0e32
|
||||
gssDelegationCredential=GSS Delegation Credential
|
||||
logoutOtherSessions=\u0e2d\u0e2d\u0e01\u0e08\u0e32\u0e01\u0e23\u0e30\u0e1a\u0e1a\u0e08\u0e32\u0e01\u0e2d\u0e38\u0e1b\u0e01\u0e23\u0e13\u0e4c\u0e2d\u0e37\u0e48\u0e19
|
||||
profileScopeConsentText=\u0e42\u0e1b\u0e23\u0e44\u0e1f\u0e25\u0e4c\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19
|
||||
emailScopeConsentText=\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48\u0e2d\u0e35\u0e40\u0e21\u0e25
|
||||
addressScopeConsentText=\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48
|
||||
phoneScopeConsentText=\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e25\u0e02\u0e42\u0e17\u0e23\u0e28\u0e31\u0e1e\u0e17\u0e4c
|
||||
offlineAccessScopeConsentText=\u0e01\u0e32\u0e23\u0e40\u0e02\u0e49\u0e32\u0e16\u0e36\u0e07\u0e41\u0e1a\u0e1a\u0e2d\u0e2d\u0e1f\u0e44\u0e25\u0e19\u0e4c
|
||||
samlRoleListScopeConsentText=\u0e1a\u0e17\u0e1a\u0e32\u0e17\u0e02\u0e2d\u0e07\u0e09\u0e31\u0e19
|
||||
rolesScopeConsentText=\u0e1a\u0e17\u0e1a\u0e32\u0e17\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19
|
||||
restartLoginTooltip=\u0e40\u0e23\u0e34\u0e48\u0e21\u0e01\u0e32\u0e23\u0e40\u0e02\u0e49\u0e32\u0e2a\u0e39\u0e48\u0e23\u0e30\u0e1a\u0e1a\u0e43\u0e2b\u0e21\u0e48
|
||||
loginTotpIntro=\u0e04\u0e38\u0e13\u0e15\u0e49\u0e2d\u0e07\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32\u0e2d\u0e38\u0e1b\u0e01\u0e23\u0e13\u0e4c\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e23\u0e2b\u0e31\u0e2a\u0e41\u0e1a\u0e1a\u0e43\u0e0a\u0e49\u0e04\u0e23\u0e31\u0e49\u0e07\u0e40\u0e14\u0e35\u0e22\u0e27\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e40\u0e02\u0e49\u0e32\u0e16\u0e36\u0e07\u0e1a\u0e31\u0e0d\u0e0a\u0e35\u0e19\u0e35\u0e49
|
||||
loginTotpStep1=\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07\u0e41\u0e2d\u0e1b\u0e1e\u0e25\u0e34\u0e40\u0e04\u0e0a\u0e31\u0e19\u0e43\u0e14\u0e41\u0e2d\u0e1b\u0e1e\u0e25\u0e34\u0e40\u0e04\u0e0a\u0e31\u0e19\u0e2b\u0e19\u0e36\u0e48\u0e07\u0e08\u0e32\u0e01\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e15\u0e48\u0e2d\u0e44\u0e1b\u0e19\u0e35\u0e49\u0e25\u0e07\u0e43\u0e19\u0e42\u0e17\u0e23\u0e28\u0e31\u0e1e\u0e17\u0e4c\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13\:
|
||||
loginTotpStep2=\u0e40\u0e1b\u0e34\u0e14\u0e41\u0e2d\u0e1b\u0e1e\u0e25\u0e34\u0e40\u0e04\u0e0a\u0e31\u0e19\u0e41\u0e25\u0e30\u0e2a\u0e41\u0e01\u0e19\u0e1a\u0e32\u0e23\u0e4c\u0e42\u0e04\u0e49\u0e14\:
|
||||
loginTotpStep3=\u0e43\u0e2a\u0e48\u0e23\u0e2b\u0e31\u0e2a\u0e1c\u0e48\u0e32\u0e19\u0e04\u0e23\u0e31\u0e49\u0e07\u0e40\u0e14\u0e35\u0e22\u0e27\u0e17\u0e35\u0e48\u0e41\u0e2d\u0e1b\u0e1e\u0e25\u0e34\u0e40\u0e04\u0e0a\u0e31\u0e19\u0e43\u0e2b\u0e49\u0e41\u0e25\u0e30\u0e04\u0e25\u0e34\u0e01 "\u0e2a\u0e48\u0e07" \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e2a\u0e34\u0e49\u0e19\u0e2a\u0e38\u0e14\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32
|
||||
loginTotpStep3DeviceName=\u0e01\u0e33\u0e2b\u0e19\u0e14\u0e0a\u0e37\u0e48\u0e2d\u0e2d\u0e38\u0e1b\u0e01\u0e23\u0e13\u0e4c\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e0a\u0e48\u0e27\u0e22\u0e08\u0e31\u0e14\u0e01\u0e32\u0e23\u0e2d\u0e38\u0e1b\u0e01\u0e23\u0e13\u0e4c OTP \u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13
|
||||
loginTotpManualStep2=\u0e40\u0e1b\u0e34\u0e14\u0e41\u0e2d\u0e1b\u0e1e\u0e25\u0e34\u0e40\u0e04\u0e0a\u0e31\u0e19\u0e41\u0e25\u0e30\u0e43\u0e2a\u0e48\u0e04\u0e35\u0e22\u0e4c\:
|
||||
loginTotpManualStep3=\u0e43\u0e0a\u0e49\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32\u0e15\u0e48\u0e2d\u0e44\u0e1b\u0e19\u0e35\u0e49\u0e2b\u0e32\u0e01\u0e41\u0e2d\u0e1b\u0e1e\u0e25\u0e34\u0e40\u0e04\u0e0a\u0e31\u0e19\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e23\u0e30\u0e1a\u0e38\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32\u0e44\u0e14\u0e49\:
|
||||
loginTotpUnableToScan=\u0e44\u0e21\u0e48\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e2a\u0e41\u0e01\u0e19\u0e44\u0e14\u0e49?
|
||||
loginTotpScanBarcode=\u0e2a\u0e41\u0e01\u0e19\u0e1a\u0e32\u0e23\u0e4c\u0e42\u0e04\u0e49\u0e14?
|
||||
loginCredential=Credential \u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e1b\u0e23\u0e30\u0e08\u0e33\u0e15\u0e31\u0e27
|
||||
loginOtpOneTime=\u0e23\u0e2b\u0e31\u0e2a\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e43\u0e0a\u0e49\u0e04\u0e23\u0e31\u0e49\u0e07\u0e40\u0e14\u0e35\u0e22\u0e27
|
||||
loginTotpType=\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17
|
||||
loginTotpAlgorithm=\u0e02\u0e31\u0e49\u0e19\u0e15\u0e2d\u0e19\u0e27\u0e34\u0e18\u0e35
|
||||
loginTotpDigits=\u0e2b\u0e25\u0e31\u0e01
|
||||
loginTotpInterval=\u0e0a\u0e48\u0e27\u0e07\u0e40\u0e27\u0e25\u0e32
|
||||
loginTotpCounter=Counter
|
||||
loginTotpDeviceName=\u0e0a\u0e37\u0e48\u0e2d\u0e2d\u0e38\u0e1b\u0e01\u0e23\u0e13\u0e4c
|
||||
loginTotp.totp=Time-based
|
||||
loginTotp.hotp=Counter-based
|
||||
totpAppFreeOTPName=FreeOTP
|
||||
totpAppGoogleName=Google Authenticator
|
||||
totpAppMicrosoftAuthenticatorName=Microsoft Authenticator
|
||||
loginChooseAuthenticator=\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e27\u0e34\u0e18\u0e35\u0e01\u0e32\u0e23\u0e40\u0e02\u0e49\u0e32\u0e2a\u0e39\u0e48\u0e23\u0e30\u0e1a\u0e1a
|
||||
oauthGrantRequest=\u0e04\u0e38\u0e13\u0e2d\u0e19\u0e38\u0e0d\u0e32\u0e15\u0e43\u0e2b\u0e49\u0e43\u0e0a\u0e49\u0e2a\u0e34\u0e17\u0e18\u0e34\u0e4c\u0e43\u0e19\u0e01\u0e32\u0e23\u0e40\u0e02\u0e49\u0e32\u0e16\u0e36\u0e07\u0e40\u0e2b\u0e25\u0e48\u0e32\u0e19\u0e35\u0e49\u0e2b\u0e23\u0e37\u0e2d\u0e44\u0e21\u0e48?
|
||||
inResource=\u0e43\u0e19
|
||||
oauth2DeviceVerificationTitle=\u0e01\u0e32\u0e23\u0e40\u0e02\u0e49\u0e32\u0e2a\u0e39\u0e48\u0e23\u0e30\u0e1a\u0e1a\u0e02\u0e2d\u0e07\u0e2d\u0e38\u0e1b\u0e01\u0e23\u0e13\u0e4c
|
||||
verifyOAuth2DeviceUserCode=\u0e23\u0e30\u0e1a\u0e38\u0e23\u0e2b\u0e31\u0e2a\u0e17\u0e35\u0e48\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e08\u0e32\u0e01\u0e2d\u0e38\u0e1b\u0e01\u0e23\u0e13\u0e4c\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13\u0e41\u0e25\u0e30\u0e04\u0e25\u0e34\u0e01 "\u0e2a\u0e48\u0e07"
|
||||
oauth2DeviceInvalidUserCodeMessage=\u0e23\u0e2b\u0e31\u0e2a\u0e44\u0e21\u0e48\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07 \u0e42\u0e1b\u0e23\u0e14\u0e25\u0e2d\u0e07\u0e2d\u0e35\u0e01\u0e04\u0e23\u0e31\u0e49\u0e07
|
||||
oauth2DeviceExpiredUserCodeMessage=\u0e23\u0e2b\u0e31\u0e2a\u0e2b\u0e21\u0e14\u0e2d\u0e32\u0e22\u0e38\u0e41\u0e25\u0e49\u0e27 \u0e42\u0e1b\u0e23\u0e14\u0e01\u0e25\u0e31\u0e1a\u0e44\u0e1b\u0e17\u0e35\u0e48\u0e2d\u0e38\u0e1b\u0e01\u0e23\u0e13\u0e4c\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13\u0e41\u0e25\u0e30\u0e25\u0e2d\u0e07\u0e40\u0e0a\u0e37\u0e48\u0e2d\u0e21\u0e15\u0e48\u0e2d\u0e2d\u0e35\u0e01\u0e04\u0e23\u0e31\u0e49\u0e07
|
||||
oauth2DeviceVerificationCompleteHeader=\u0e01\u0e32\u0e23\u0e40\u0e02\u0e49\u0e32\u0e2a\u0e39\u0e48\u0e23\u0e30\u0e1a\u0e1a\u0e02\u0e2d\u0e07\u0e2d\u0e38\u0e1b\u0e01\u0e23\u0e13\u0e4c\u0e2a\u0e33\u0e40\u0e23\u0e47\u0e08
|
||||
oauth2DeviceVerificationCompleteMessage=\u0e04\u0e38\u0e13\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e1b\u0e34\u0e14\u0e2b\u0e19\u0e49\u0e32\u0e15\u0e48\u0e32\u0e07\u0e40\u0e1a\u0e23\u0e32\u0e27\u0e4c\u0e40\u0e0b\u0e2d\u0e23\u0e4c\u0e19\u0e35\u0e49\u0e41\u0e25\u0e30\u0e01\u0e25\u0e31\u0e1a\u0e44\u0e1b\u0e17\u0e35\u0e48\u0e2d\u0e38\u0e1b\u0e01\u0e23\u0e13\u0e4c\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13
|
||||
oauth2DeviceVerificationFailedHeader=\u0e01\u0e32\u0e23\u0e40\u0e02\u0e49\u0e32\u0e2a\u0e39\u0e48\u0e23\u0e30\u0e1a\u0e1a\u0e02\u0e2d\u0e07\u0e2d\u0e38\u0e1b\u0e01\u0e23\u0e13\u0e4c\u0e25\u0e49\u0e21\u0e40\u0e2b\u0e25\u0e27
|
||||
oauth2DeviceVerificationFailedMessage=\u0e04\u0e38\u0e13\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e1b\u0e34\u0e14\u0e2b\u0e19\u0e49\u0e32\u0e15\u0e48\u0e32\u0e07\u0e40\u0e1a\u0e23\u0e32\u0e27\u0e4c\u0e40\u0e0b\u0e2d\u0e23\u0e4c\u0e19\u0e35\u0e49\u0e41\u0e25\u0e30\u0e01\u0e25\u0e31\u0e1a\u0e44\u0e1b\u0e17\u0e35\u0e48\u0e2d\u0e38\u0e1b\u0e01\u0e23\u0e13\u0e4c\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13\u0e41\u0e25\u0e30\u0e25\u0e2d\u0e07\u0e40\u0e0a\u0e37\u0e48\u0e2d\u0e21\u0e15\u0e48\u0e2d\u0e2d\u0e35\u0e01\u0e04\u0e23\u0e31\u0e49\u0e07
|
||||
oauth2DeviceConsentDeniedMessage=\u0e01\u0e32\u0e23\u0e02\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e22\u0e34\u0e19\u0e22\u0e2d\u0e21\u0e43\u0e2b\u0e49\u0e40\u0e0a\u0e37\u0e48\u0e2d\u0e21\u0e15\u0e48\u0e2d\u0e01\u0e31\u0e1a\u0e2d\u0e38\u0e1b\u0e01\u0e23\u0e13\u0e4c\u0e16\u0e39\u0e01\u0e1b\u0e0f\u0e34\u0e40\u0e2a\u0e18
|
||||
oauth2DeviceAuthorizationGrantDisabledMessage=\u0e44\u0e04\u0e25\u0e40\u0e2d\u0e19\u0e15\u0e4c\u0e44\u0e21\u0e48\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e22\u0e34\u0e19\u0e22\u0e2d\u0e21\u0e43\u0e2b\u0e49\u0e40\u0e23\u0e34\u0e48\u0e21 OAuth 2.0 Device Authorization Grant \u0e01\u0e32\u0e23\u0e17\u0e33\u0e07\u0e32\u0e19\u0e19\u0e35\u0e49\u0e16\u0e39\u0e01\u0e1b\u0e34\u0e14\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e44\u0e04\u0e25\u0e40\u0e2d\u0e19\u0e15\u0e4c
|
||||
emailVerifyInstruction1=\u0e44\u0e14\u0e49\u0e2a\u0e48\u0e07\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e17\u0e35\u0e48\u0e21\u0e35\u0e04\u0e33\u0e41\u0e19\u0e30\u0e19\u0e33\u0e43\u0e19\u0e01\u0e32\u0e23\u0e22\u0e37\u0e19\u0e22\u0e31\u0e19\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13\u0e44\u0e1b\u0e22\u0e31\u0e07\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13 {0}
|
||||
emailVerifyInstruction2=\u0e44\u0e21\u0e48\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e23\u0e2b\u0e31\u0e2a\u0e22\u0e37\u0e19\u0e22\u0e31\u0e19\u0e43\u0e19\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13?
|
||||
emailVerifyInstruction3=\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e2a\u0e48\u0e07\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e2d\u0e35\u0e01\u0e04\u0e23\u0e31\u0e49\u0e07
|
||||
emailLinkIdpTitle=\u0e25\u0e34\u0e07\u0e01\u0e4c {0}
|
||||
emailLinkIdp1=\u0e44\u0e14\u0e49\u0e2a\u0e48\u0e07\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e17\u0e35\u0e48\u0e21\u0e35\u0e04\u0e33\u0e41\u0e19\u0e30\u0e19\u0e33\u0e43\u0e19\u0e01\u0e32\u0e23\u0e40\u0e0a\u0e37\u0e48\u0e2d\u0e21\u0e42\u0e22\u0e07\u0e1a\u0e31\u0e0d\u0e0a\u0e35 {0} {1} \u0e01\u0e31\u0e1a {2} \u0e1a\u0e31\u0e0d\u0e0a\u0e35\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13
|
||||
emailLinkIdp2=\u0e44\u0e21\u0e48\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e23\u0e2b\u0e31\u0e2a\u0e22\u0e37\u0e19\u0e22\u0e31\u0e19\u0e43\u0e19\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13?
|
||||
emailLinkIdp3=\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e2a\u0e48\u0e07\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e2d\u0e35\u0e01\u0e04\u0e23\u0e31\u0e49\u0e07
|
||||
emailLinkIdp4=\u0e2b\u0e32\u0e01\u0e04\u0e38\u0e13\u0e44\u0e14\u0e49\u0e22\u0e37\u0e19\u0e22\u0e31\u0e19\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e43\u0e19\u0e1a\u0e23\u0e32\u0e27\u0e40\u0e0b\u0e2d\u0e23\u0e4c\u0e2d\u0e37\u0e48\u0e19\u0e41\u0e25\u0e49\u0e27
|
||||
emailLinkIdp5=\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e14\u0e33\u0e40\u0e19\u0e34\u0e19\u0e01\u0e32\u0e23\u0e15\u0e48\u0e2d
|
||||
backToLogin=« \u0e01\u0e25\u0e31\u0e1a\u0e44\u0e1b\u0e17\u0e35\u0e48\u0e01\u0e32\u0e23\u0e40\u0e02\u0e49\u0e32\u0e2a\u0e39\u0e48\u0e23\u0e30\u0e1a\u0e1a
|
||||
emailInstruction=\u0e23\u0e30\u0e1a\u0e38\u0e0a\u0e37\u0e48\u0e2d\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e2b\u0e23\u0e37\u0e2d\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13 \u0e40\u0e23\u0e32\u0e08\u0e30\u0e2a\u0e48\u0e07\u0e04\u0e33\u0e41\u0e19\u0e30\u0e19\u0e33\u0e43\u0e19\u0e01\u0e32\u0e23\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e23\u0e2b\u0e31\u0e2a\u0e1c\u0e48\u0e32\u0e19\u0e43\u0e2b\u0e21\u0e48\u0e43\u0e2b\u0e49\u0e04\u0e38\u0e13
|
||||
emailInstructionUsername=\u0e23\u0e30\u0e1a\u0e38\u0e0a\u0e37\u0e48\u0e2d\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13 \u0e40\u0e23\u0e32\u0e08\u0e30\u0e2a\u0e48\u0e07\u0e04\u0e33\u0e41\u0e19\u0e30\u0e19\u0e33\u0e43\u0e19\u0e01\u0e32\u0e23\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e23\u0e2b\u0e31\u0e2a\u0e1c\u0e48\u0e32\u0e19\u0e43\u0e2b\u0e21\u0e48\u0e43\u0e2b\u0e49\u0e04\u0e38\u0e13
|
||||
copyCodeInstruction=\u0e42\u0e1b\u0e23\u0e14\u0e04\u0e31\u0e14\u0e25\u0e2d\u0e01\u0e41\u0e25\u0e30\u0e27\u0e32\u0e07\u0e23\u0e2b\u0e31\u0e2a\u0e19\u0e35\u0e49\u0e43\u0e19\u0e41\u0e2d\u0e1b\u0e1e\u0e25\u0e34\u0e40\u0e04\u0e0a\u0e31\u0e19\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13\:
|
||||
pageExpiredTitle=\u0e2b\u0e19\u0e49\u0e32\u0e19\u0e35\u0e49\u0e2b\u0e21\u0e14\u0e40\u0e27\u0e25\u0e32\u0e41\u0e25\u0e49\u0e27
|
||||
pageExpiredMsg1=\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e40\u0e23\u0e34\u0e48\u0e21\u0e01\u0e23\u0e30\u0e1a\u0e27\u0e19\u0e01\u0e32\u0e23\u0e40\u0e02\u0e49\u0e32\u0e2a\u0e39\u0e48\u0e23\u0e30\u0e1a\u0e1a\u0e2d\u0e35\u0e01\u0e04\u0e23\u0e31\u0e49\u0e07
|
||||
pageExpiredMsg2=\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e14\u0e33\u0e40\u0e19\u0e34\u0e19\u0e01\u0e32\u0e23\u0e40\u0e02\u0e49\u0e32\u0e2a\u0e39\u0e48\u0e23\u0e30\u0e1a\u0e1a\u0e15\u0e48\u0e2d
|
||||
personalInfo=\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e2a\u0e48\u0e27\u0e19\u0e15\u0e31\u0e27\:
|
||||
role_admin=\u0e1c\u0e39\u0e49\u0e14\u0e39\u0e41\u0e25\u0e23\u0e30\u0e1a\u0e1a
|
||||
role_realm-admin=\u0e1c\u0e39\u0e49\u0e14\u0e39\u0e41\u0e25\u0e23\u0e30\u0e1a\u0e1a realm
|
||||
role_create-realm=\u0e2a\u0e23\u0e49\u0e32\u0e07 realm
|
||||
role_create-client=\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e44\u0e04\u0e25\u0e40\u0e2d\u0e19\u0e15\u0e4c
|
||||
role_view-realm=\u0e14\u0e39 realm
|
||||
role_view-users=\u0e14\u0e39\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19
|
||||
role_view-applications=\u0e14\u0e39\u0e41\u0e2d\u0e1b\u0e1e\u0e25\u0e34\u0e40\u0e04\u0e0a\u0e31\u0e19
|
||||
role_view-clients=\u0e14\u0e39\u0e44\u0e04\u0e25\u0e40\u0e2d\u0e19\u0e15\u0e4c
|
||||
role_view-events=\u0e14\u0e39\u0e40\u0e2b\u0e15\u0e38\u0e01\u0e32\u0e23\u0e13\u0e4c
|
||||
role_view-identity-providers=\u0e14\u0e39\u0e1c\u0e39\u0e49\u0e43\u0e2b\u0e49\u0e1a\u0e23\u0e34\u0e01\u0e32\u0e23\u0e15\u0e31\u0e27\u0e15\u0e19
|
||||
role_manage-realm=\u0e08\u0e31\u0e14\u0e01\u0e32\u0e23 realm
|
||||
role_manage-users=\u0e08\u0e31\u0e14\u0e01\u0e32\u0e23\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19
|
||||
role_manage-applications=\u0e08\u0e31\u0e14\u0e01\u0e32\u0e23\u0e41\u0e2d\u0e1b\u0e1e\u0e25\u0e34\u0e40\u0e04\u0e0a\u0e31\u0e19
|
||||
role_manage-identity-providers=\u0e08\u0e31\u0e14\u0e01\u0e32\u0e23\u0e1c\u0e39\u0e49\u0e43\u0e2b\u0e49\u0e1a\u0e23\u0e34\u0e01\u0e32\u0e23\u0e15\u0e31\u0e27\u0e15\u0e19
|
||||
role_manage-clients=\u0e08\u0e31\u0e14\u0e01\u0e32\u0e23\u0e44\u0e04\u0e25\u0e40\u0e2d\u0e19\u0e15\u0e4c
|
||||
role_manage-events=\u0e08\u0e31\u0e14\u0e01\u0e32\u0e23\u0e40\u0e2b\u0e15\u0e38\u0e01\u0e32\u0e23\u0e13\u0e4c
|
||||
role_view-profile=\u0e14\u0e39\u0e42\u0e1b\u0e23\u0e44\u0e1f\u0e25\u0e4c
|
||||
role_manage-account=\u0e08\u0e31\u0e14\u0e01\u0e32\u0e23\u0e1a\u0e31\u0e0d\u0e0a\u0e35
|
||||
role_manage-account-links=\u0e08\u0e31\u0e14\u0e01\u0e32\u0e23\u0e01\u0e32\u0e23\u0e40\u0e0a\u0e37\u0e48\u0e2d\u0e21\u0e42\u0e22\u0e07\u0e1a\u0e31\u0e0d\u0e0a\u0e35
|
||||
role_read-token=\u0e2d\u0e48\u0e32\u0e19\u0e42\u0e17\u0e40\u0e04\u0e47\u0e19
|
||||
role_offline-access=\u0e01\u0e32\u0e23\u0e40\u0e02\u0e49\u0e32\u0e16\u0e36\u0e07\u0e41\u0e1a\u0e1a\u0e2d\u0e2d\u0e1f\u0e44\u0e25\u0e19\u0e4c
|
||||
client_account=\u0e1a\u0e31\u0e0d\u0e0a\u0e35
|
||||
client_account-console=\u0e04\u0e2d\u0e19\u0e42\u0e0b\u0e25\u0e1a\u0e31\u0e0d\u0e0a\u0e35
|
||||
client_security-admin-console=\u0e04\u0e2d\u0e19\u0e42\u0e0b\u0e25\u0e1c\u0e39\u0e49\u0e14\u0e39\u0e41\u0e25\u0e23\u0e30\u0e1a\u0e1a\u0e04\u0e27\u0e32\u0e21\u0e1b\u0e25\u0e2d\u0e14\u0e20\u0e31\u0e22
|
||||
client_admin-cli=CLI \u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e1c\u0e39\u0e49\u0e14\u0e39\u0e41\u0e25\u0e23\u0e30\u0e1a\u0e1a
|
||||
client_realm-management=\u0e01\u0e32\u0e23\u0e08\u0e31\u0e14\u0e01\u0e32\u0e23 realm
|
||||
client_broker=\u0e15\u0e31\u0e27\u0e41\u0e17\u0e19
|
||||
requiredFields=\u0e1f\u0e34\u0e25\u0e14\u0e4c\u0e17\u0e35\u0e48\u0e15\u0e49\u0e2d\u0e07\u0e23\u0e30\u0e1a\u0e38
|
||||
invalidUserMessage=\u0e0a\u0e37\u0e48\u0e2d\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e2b\u0e23\u0e37\u0e2d\u0e23\u0e2b\u0e31\u0e2a\u0e1c\u0e48\u0e32\u0e19\u0e44\u0e21\u0e48\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07
|
||||
invalidUsernameMessage=\u0e0a\u0e37\u0e48\u0e2d\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e44\u0e21\u0e48\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07
|
||||
invalidUsernameOrEmailMessage=\u0e0a\u0e37\u0e48\u0e2d\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e2b\u0e23\u0e37\u0e2d\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e44\u0e21\u0e48\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07
|
||||
invalidPasswordMessage=\u0e23\u0e2b\u0e31\u0e2a\u0e1c\u0e48\u0e32\u0e19\u0e44\u0e21\u0e48\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07
|
||||
invalidEmailMessage=\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e44\u0e21\u0e48\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07
|
||||
accountDisabledMessage=\u0e1a\u0e31\u0e0d\u0e0a\u0e35\u0e16\u0e39\u0e01\u0e1b\u0e34\u0e14\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19 \u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d\u0e1c\u0e39\u0e49\u0e14\u0e39\u0e41\u0e25\u0e23\u0e30\u0e1a\u0e1a\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13
|
||||
accountTemporarilyDisabledMessage=\u0e1a\u0e31\u0e0d\u0e0a\u0e35\u0e16\u0e39\u0e01\u0e1b\u0e34\u0e14\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e0a\u0e31\u0e48\u0e27\u0e04\u0e23\u0e32\u0e27 \u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d\u0e1c\u0e39\u0e49\u0e14\u0e39\u0e41\u0e25\u0e23\u0e30\u0e1a\u0e1a\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13\u0e2b\u0e23\u0e37\u0e2d\u0e25\u0e2d\u0e07\u0e43\u0e2b\u0e21\u0e48\u0e43\u0e19\u0e20\u0e32\u0e22\u0e2b\u0e25\u0e31\u0e07
|
||||
expiredCodeMessage=\u0e01\u0e32\u0e23\u0e40\u0e02\u0e49\u0e32\u0e2a\u0e39\u0e48\u0e23\u0e30\u0e1a\u0e1a\u0e2b\u0e21\u0e14\u0e40\u0e27\u0e25\u0e32 \u0e01\u0e23\u0e38\u0e13\u0e32\u0e40\u0e02\u0e49\u0e32\u0e2a\u0e39\u0e48\u0e23\u0e30\u0e1a\u0e1a\u0e2d\u0e35\u0e01\u0e04\u0e23\u0e31\u0e49\u0e07
|
||||
expiredActionMessage=\u0e01\u0e32\u0e23\u0e01\u0e23\u0e30\u0e17\u0e33\u0e2b\u0e21\u0e14\u0e40\u0e27\u0e25\u0e32 \u0e01\u0e23\u0e38\u0e13\u0e32\u0e40\u0e02\u0e49\u0e32\u0e2a\u0e39\u0e48\u0e23\u0e30\u0e1a\u0e1a\u0e43\u0e19\u0e15\u0e2d\u0e19\u0e19\u0e35\u0e49
|
||||
expiredActionTokenNoSessionMessage=\u0e01\u0e32\u0e23\u0e01\u0e23\u0e30\u0e17\u0e33\u0e2b\u0e21\u0e14\u0e40\u0e27\u0e25\u0e32
|
||||
expiredActionTokenSessionExistsMessage=\u0e01\u0e32\u0e23\u0e01\u0e23\u0e30\u0e17\u0e33\u0e2b\u0e21\u0e14\u0e40\u0e27\u0e25\u0e32 \u0e01\u0e23\u0e38\u0e13\u0e32\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19\u0e43\u0e2b\u0e21\u0e48
|
||||
sessionLimitExceeded=\u0e21\u0e35\u0e40\u0e0b\u0e2a\u0e0a\u0e31\u0e19\u0e21\u0e32\u0e01\u0e40\u0e01\u0e34\u0e19\u0e44\u0e1b
|
||||
missingFirstNameMessage=\u0e01\u0e23\u0e38\u0e13\u0e32\u0e23\u0e30\u0e1a\u0e38\u0e0a\u0e37\u0e48\u0e2d
|
||||
missingLastNameMessage=\u0e01\u0e23\u0e38\u0e13\u0e32\u0e23\u0e30\u0e1a\u0e38\u0e19\u0e32\u0e21\u0e2a\u0e01\u0e38\u0e25
|
||||
missingEmailMessage=\u0e01\u0e23\u0e38\u0e13\u0e32\u0e23\u0e30\u0e1a\u0e38\u0e2d\u0e35\u0e40\u0e21\u0e25
|
||||
missingUsernameMessage=\u0e01\u0e23\u0e38\u0e13\u0e32\u0e23\u0e30\u0e1a\u0e38\u0e0a\u0e37\u0e48\u0e2d\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19
|
||||
missingPasswordMessage=\u0e01\u0e23\u0e38\u0e13\u0e32\u0e23\u0e30\u0e1a\u0e38\u0e23\u0e2b\u0e31\u0e2a\u0e1c\u0e48\u0e32\u0e19
|
||||
missingTotpMessage=\u0e01\u0e23\u0e38\u0e13\u0e32\u0e23\u0e30\u0e1a\u0e38\u0e23\u0e2b\u0e31\u0e2a\u0e02\u0e2d\u0e07 authenticator
|
||||
missingTotpDeviceNameMessage=\u0e01\u0e23\u0e38\u0e13\u0e32\u0e23\u0e30\u0e1a\u0e38\u0e0a\u0e37\u0e48\u0e2d\u0e2d\u0e38\u0e1b\u0e01\u0e23\u0e13\u0e4c
|
||||
notMatchPasswordMessage=\u0e23\u0e2b\u0e31\u0e2a\u0e1c\u0e48\u0e32\u0e19\u0e44\u0e21\u0e48\u0e15\u0e23\u0e07\u0e01\u0e31\u0e19
|
||||
error-invalid-value=\u0e04\u0e48\u0e32\u0e44\u0e21\u0e48\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07
|
||||
error-invalid-blank=\u0e01\u0e23\u0e38\u0e13\u0e32\u0e23\u0e30\u0e1a\u0e38\u0e04\u0e48\u0e32
|
||||
error-empty=\u0e01\u0e23\u0e38\u0e13\u0e32\u0e23\u0e30\u0e1a\u0e38\u0e04\u0e48\u0e32
|
||||
error-invalid-length=\u0e04\u0e27\u0e32\u0e21\u0e22\u0e32\u0e27\u0e15\u0e49\u0e2d\u0e07\u0e2d\u0e22\u0e39\u0e48\u0e23\u0e30\u0e2b\u0e27\u0e48\u0e32\u0e07 {1} \u0e41\u0e25\u0e30 {2} \u0e2d\u0e31\u0e01\u0e29\u0e23
|
||||
error-invalid-length-too-short=\u0e04\u0e27\u0e32\u0e21\u0e22\u0e32\u0e27\u0e02\u0e31\u0e49\u0e19\u0e15\u0e48\u0e33\u0e04\u0e37\u0e2d {1} \u0e2d\u0e31\u0e01\u0e29\u0e23
|
||||
error-invalid-length-too-long=\u0e04\u0e27\u0e32\u0e21\u0e22\u0e32\u0e27\u0e2a\u0e39\u0e07\u0e2a\u0e38\u0e14\u0e04\u0e37\u0e2d {2} \u0e2d\u0e31\u0e01\u0e29\u0e23
|
||||
error-invalid-email=\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e44\u0e21\u0e48\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07
|
||||
error-invalid-number=\u0e08\u0e33\u0e19\u0e27\u0e19\u0e44\u0e21\u0e48\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07
|
||||
error-number-out-of-range=\u0e08\u0e33\u0e19\u0e27\u0e19\u0e15\u0e49\u0e2d\u0e07\u0e2d\u0e22\u0e39\u0e48\u0e23\u0e30\u0e2b\u0e27\u0e48\u0e32\u0e07 {1} \u0e41\u0e25\u0e30 {2}
|
||||
error-number-out-of-range-too-small=\u0e08\u0e33\u0e19\u0e27\u0e19\u0e15\u0e49\u0e2d\u0e07\u0e21\u0e35\u0e04\u0e48\u0e32\u0e02\u0e31\u0e49\u0e19\u0e15\u0e48\u0e33 {1}
|
||||
error-number-out-of-range-too-big=\u0e08\u0e33\u0e19\u0e27\u0e19\u0e15\u0e49\u0e2d\u0e07\u0e21\u0e35\u0e04\u0e48\u0e32\u0e2a\u0e39\u0e07\u0e2a\u0e38\u0e14 {2}
|
||||
error-pattern-no-match=\u0e04\u0e48\u0e32\u0e44\u0e21\u0e48\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07
|
||||
error-invalid-uri=URL \u0e44\u0e21\u0e48\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07
|
||||
error-invalid-uri-scheme=scheme URL \u0e44\u0e21\u0e48\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07
|
||||
error-invalid-uri-fragment=fragment URL \u0e44\u0e21\u0e48\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07
|
||||
error-user-attribute-required=\u0e01\u0e23\u0e38\u0e13\u0e32\u0e23\u0e30\u0e1a\u0e38\u0e1f\u0e34\u0e25\u0e14\u0e4c\u0e19\u0e35\u0e49
|
||||
error-invalid-date=\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e44\u0e21\u0e48\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07
|
||||
error-user-attribute-read-only=\u0e1f\u0e34\u0e25\u0e14\u0e4c\u0e19\u0e35\u0e49\u0e40\u0e1b\u0e47\u0e19\u0e41\u0e1a\u0e1a\u0e2d\u0e48\u0e32\u0e19\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e40\u0e14\u0e35\u0e22\u0e27
|
||||
error-username-invalid-character=\u0e04\u0e48\u0e32\u0e21\u0e35\u0e2d\u0e31\u0e01\u0e02\u0e23\u0e30\u0e17\u0e35\u0e48\u0e44\u0e21\u0e48\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07
|
||||
error-person-name-invalid-character=\u0e04\u0e48\u0e32\u0e21\u0e35\u0e2d\u0e31\u0e01\u0e02\u0e23\u0e30\u0e17\u0e35\u0e48\u0e44\u0e21\u0e48\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07
|
||||
error-reset-otp-missing-id=\u0e01\u0e23\u0e38\u0e13\u0e32\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32 OTP
|
||||
invalidPasswordExistingMessage=\u0e23\u0e2b\u0e31\u0e2a\u0e1c\u0e48\u0e32\u0e19\u0e40\u0e14\u0e34\u0e21\u0e44\u0e21\u0e48\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07
|
||||
invalidPasswordBlacklistedMessage=\u0e23\u0e2b\u0e31\u0e2a\u0e1c\u0e48\u0e32\u0e19\u0e44\u0e21\u0e48\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07\: \u0e23\u0e2b\u0e31\u0e2a\u0e1c\u0e48\u0e32\u0e19\u0e2d\u0e22\u0e39\u0e48\u0e43\u0e19\u0e1a\u0e31\u0e0d\u0e0a\u0e35\u0e14\u0e33
|
||||
invalidPasswordConfirmMessage=\u0e01\u0e32\u0e23\u0e22\u0e37\u0e19\u0e22\u0e31\u0e19\u0e23\u0e2b\u0e31\u0e2a\u0e1c\u0e48\u0e32\u0e19\u0e44\u0e21\u0e48\u0e15\u0e23\u0e07\u0e01\u0e31\u0e19
|
||||
invalidTotpMessage=\u0e23\u0e2b\u0e31\u0e2a Authenticator \u0e44\u0e21\u0e48\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07
|
||||
usernameExistsMessage=\u0e21\u0e35\u0e0a\u0e37\u0e48\u0e2d\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e19\u0e35\u0e49\u0e2d\u0e22\u0e39\u0e48\u0e41\u0e25\u0e49\u0e27
|
||||
emailExistsMessage=\u0e21\u0e35\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e2d\u0e22\u0e39\u0e48\u0e41\u0e25\u0e49\u0e27
|
||||
federatedIdentityExistsMessage=\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e17\u0e35\u0e48\u0e21\u0e35 {0} {1} \u0e21\u0e35\u0e2d\u0e22\u0e39\u0e48\u0e41\u0e25\u0e49\u0e27 \u0e01\u0e23\u0e38\u0e13\u0e32\u0e40\u0e02\u0e49\u0e32\u0e2a\u0e39\u0e48\u0e23\u0e30\u0e1a\u0e1a\u0e08\u0e31\u0e14\u0e01\u0e32\u0e23\u0e1a\u0e31\u0e0d\u0e0a\u0e35\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e40\u0e0a\u0e37\u0e48\u0e2d\u0e21\u0e42\u0e22\u0e07\u0e1a\u0e31\u0e0d\u0e0a\u0e35
|
||||
federatedIdentityUnavailableMessage=\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19 {0} \u0e17\u0e35\u0e48\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a\u0e08\u0e32\u0e01\u0e1c\u0e39\u0e49\u0e43\u0e2b\u0e49\u0e1a\u0e23\u0e34\u0e01\u0e32\u0e23\u0e15\u0e31\u0e27\u0e15\u0e19 {1} \u0e44\u0e21\u0e48\u0e21\u0e35\u0e2d\u0e22\u0e39\u0e48 \u0e01\u0e23\u0e38\u0e13\u0e32\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d\u0e1c\u0e39\u0e49\u0e14\u0e39\u0e41\u0e25\u0e23\u0e30\u0e1a\u0e1a\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13
|
||||
federatedIdentityUnmatchedEssentialClaimMessage=\u0e44\u0e2d\u0e14\u0e35\u0e42\u0e17\u0e40\u0e04\u0e47\u0e19\u0e17\u0e35\u0e48\u0e2d\u0e2d\u0e01\u0e42\u0e14\u0e22\u0e1c\u0e39\u0e49\u0e43\u0e2b\u0e49\u0e1a\u0e23\u0e34\u0e01\u0e32\u0e23\u0e15\u0e31\u0e27\u0e15\u0e19\u0e44\u0e21\u0e48\u0e15\u0e23\u0e07\u0e01\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e2d\u0e49\u0e32\u0e07\u0e2a\u0e34\u0e17\u0e18\u0e34\u0e4c\u0e17\u0e35\u0e48\u0e08\u0e33\u0e40\u0e1b\u0e47\u0e19\u0e17\u0e35\u0e48\u0e01\u0e33\u0e2b\u0e19\u0e14\u0e44\u0e27\u0e49 \u0e01\u0e23\u0e38\u0e13\u0e32\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d\u0e1c\u0e39\u0e49\u0e14\u0e39\u0e41\u0e25\u0e23\u0e30\u0e1a\u0e1a\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13
|
||||
confirmLinkIdpTitle=\u0e21\u0e35\u0e1a\u0e31\u0e0d\u0e0a\u0e35\u0e2d\u0e22\u0e39\u0e48\u0e41\u0e25\u0e49\u0e27
|
||||
federatedIdentityConfirmLinkMessage=\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e17\u0e35\u0e48\u0e21\u0e35 {0} {1} \u0e21\u0e35\u0e2d\u0e22\u0e39\u0e48\u0e41\u0e25\u0e49\u0e27 \u0e04\u0e38\u0e13\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e14\u0e33\u0e40\u0e19\u0e34\u0e19\u0e01\u0e32\u0e23\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e44\u0e23\u0e15\u0e48\u0e2d?
|
||||
federatedIdentityConfirmReauthenticateMessage=\u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a\u0e15\u0e31\u0e27\u0e15\u0e19\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e40\u0e0a\u0e37\u0e48\u0e2d\u0e21\u0e42\u0e22\u0e07\u0e1a\u0e31\u0e0d\u0e0a\u0e35\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13\u0e01\u0e31\u0e1a {0}
|
||||
nestedFirstBrokerFlowMessage=\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19 {0} {1} \u0e44\u0e21\u0e48\u0e44\u0e14\u0e49\u0e40\u0e0a\u0e37\u0e48\u0e2d\u0e21\u0e42\u0e22\u0e07\u0e01\u0e31\u0e1a\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e17\u0e35\u0e48\u0e23\u0e39\u0e49\u0e08\u0e31\u0e01
|
||||
confirmLinkIdpReviewProfile=\u0e23\u0e35\u0e27\u0e34\u0e27\u0e42\u0e1b\u0e23\u0e44\u0e1f\u0e25\u0e4c
|
||||
confirmLinkIdpContinue=\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e02\u0e49\u0e32\u0e44\u0e1b\u0e43\u0e19\u0e1a\u0e31\u0e0d\u0e0a\u0e35\u0e17\u0e35\u0e48\u0e21\u0e35\u0e2d\u0e22\u0e39\u0e48
|
||||
configureTotpMessage=\u0e04\u0e38\u0e13\u0e15\u0e49\u0e2d\u0e07\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32 Mobile Authenticator \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e40\u0e1b\u0e34\u0e14\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e1a\u0e31\u0e0d\u0e0a\u0e35\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13
|
||||
configureBackupCodesMessage=\u0e04\u0e38\u0e13\u0e15\u0e49\u0e2d\u0e07\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32\u0e23\u0e2b\u0e31\u0e2a\u0e2a\u0e33\u0e23\u0e2d\u0e07\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e40\u0e1b\u0e34\u0e14\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e1a\u0e31\u0e0d\u0e0a\u0e35\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13
|
||||
updateProfileMessage=\u0e04\u0e38\u0e13\u0e15\u0e49\u0e2d\u0e07\u0e1b\u0e23\u0e31\u0e1a\u0e1b\u0e23\u0e38\u0e07\u0e42\u0e1b\u0e23\u0e44\u0e1f\u0e25\u0e4c\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e40\u0e1b\u0e34\u0e14\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e1a\u0e31\u0e0d\u0e0a\u0e35\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13
|
||||
updatePasswordMessage=\u0e04\u0e38\u0e13\u0e15\u0e49\u0e2d\u0e07\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19\u0e23\u0e2b\u0e31\u0e2a\u0e1c\u0e48\u0e32\u0e19\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e40\u0e1b\u0e34\u0e14\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e1a\u0e31\u0e0d\u0e0a\u0e35\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13
|
||||
updateEmailMessage=\u0e04\u0e38\u0e13\u0e15\u0e49\u0e2d\u0e07\u0e1b\u0e23\u0e31\u0e1a\u0e1b\u0e23\u0e38\u0e07\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e40\u0e1b\u0e34\u0e14\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e1a\u0e31\u0e0d\u0e0a\u0e35\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13
|
||||
resetPasswordMessage=\u0e04\u0e38\u0e13\u0e15\u0e49\u0e2d\u0e07\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19\u0e23\u0e2b\u0e31\u0e2a\u0e1c\u0e48\u0e32\u0e19
|
||||
verifyEmailMessage=\u0e04\u0e38\u0e13\u0e15\u0e49\u0e2d\u0e07\u0e22\u0e37\u0e19\u0e22\u0e31\u0e19\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e40\u0e1b\u0e34\u0e14\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e1a\u0e31\u0e0d\u0e0a\u0e35\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13
|
||||
linkIdpMessage=\u0e04\u0e38\u0e13\u0e08\u0e33\u0e40\u0e1b\u0e47\u0e19\u0e15\u0e49\u0e2d\u0e07\u0e22\u0e37\u0e19\u0e22\u0e31\u0e19\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e40\u0e0a\u0e37\u0e48\u0e2d\u0e21\u0e42\u0e22\u0e07\u0e1a\u0e31\u0e0d\u0e0a\u0e35\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13\u0e01\u0e31\u0e1a {0}
|
||||
emailSentMessage=\u0e04\u0e38\u0e13\u0e08\u0e30\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e43\u0e19\u0e44\u0e21\u0e48\u0e0a\u0e49\u0e32\u0e19\u0e35\u0e49\u0e1e\u0e23\u0e49\u0e2d\u0e21\u0e04\u0e33\u0e41\u0e19\u0e30\u0e19\u0e33\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21
|
||||
emailSendErrorMessage=\u0e01\u0e32\u0e23\u0e2a\u0e48\u0e07\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e25\u0e49\u0e21\u0e40\u0e2b\u0e25\u0e27 \u0e42\u0e1b\u0e23\u0e14\u0e25\u0e2d\u0e07\u0e2d\u0e35\u0e01\u0e04\u0e23\u0e31\u0e49\u0e07\u0e43\u0e19\u0e20\u0e32\u0e22\u0e2b\u0e25\u0e31\u0e07
|
||||
accountUpdatedMessage=\u0e1a\u0e31\u0e0d\u0e0a\u0e35\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e1b\u0e23\u0e31\u0e1a\u0e1b\u0e23\u0e38\u0e07\u0e41\u0e25\u0e49\u0e27
|
||||
accountPasswordUpdatedMessage=\u0e23\u0e2b\u0e31\u0e2a\u0e1c\u0e48\u0e32\u0e19\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e1b\u0e23\u0e31\u0e1a\u0e1b\u0e23\u0e38\u0e07\u0e41\u0e25\u0e49\u0e27
|
||||
delegationCompleteHeader=\u0e40\u0e02\u0e49\u0e32\u0e2a\u0e39\u0e48\u0e23\u0e30\u0e1a\u0e1a\u0e2a\u0e33\u0e40\u0e23\u0e47\u0e08
|
||||
delegationCompleteMessage=\u0e04\u0e38\u0e13\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e1b\u0e34\u0e14\u0e2b\u0e19\u0e49\u0e32\u0e15\u0e48\u0e32\u0e07\u0e40\u0e1a\u0e23\u0e32\u0e27\u0e4c\u0e40\u0e0b\u0e2d\u0e23\u0e4c\u0e19\u0e35\u0e49\u0e41\u0e25\u0e30\u0e01\u0e25\u0e31\u0e1a\u0e44\u0e1b\u0e17\u0e35\u0e48\u0e41\u0e2d\u0e1b\u0e1e\u0e25\u0e34\u0e40\u0e04\u0e0a\u0e31\u0e19\u0e04\u0e2d\u0e19\u0e42\u0e0b\u0e25\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13.
|
||||
delegationFailedHeader=\u0e40\u0e02\u0e49\u0e32\u0e2a\u0e39\u0e48\u0e23\u0e30\u0e1a\u0e1a\u0e25\u0e49\u0e21\u0e40\u0e2b\u0e25\u0e27
|
||||
delegationFailedMessage=\u0e04\u0e38\u0e13\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e1b\u0e34\u0e14\u0e2b\u0e19\u0e49\u0e32\u0e15\u0e48\u0e32\u0e07\u0e40\u0e1a\u0e23\u0e32\u0e27\u0e4c\u0e40\u0e0b\u0e2d\u0e23\u0e4c\u0e19\u0e35\u0e49\u0e41\u0e25\u0e30\u0e01\u0e25\u0e31\u0e1a\u0e44\u0e1b\u0e17\u0e35\u0e48\u0e41\u0e2d\u0e1b\u0e1e\u0e25\u0e34\u0e40\u0e04\u0e0a\u0e31\u0e19\u0e04\u0e2d\u0e19\u0e42\u0e0b\u0e25\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13\u0e41\u0e25\u0e30\u0e25\u0e2d\u0e07\u0e40\u0e02\u0e49\u0e32\u0e2a\u0e39\u0e48\u0e23\u0e30\u0e1a\u0e1a\u0e2d\u0e35\u0e01\u0e04\u0e23\u0e31\u0e49\u0e07.
|
||||
noAccessMessage=\u0e44\u0e21\u0e48\u0e21\u0e35\u0e01\u0e32\u0e23\u0e40\u0e02\u0e49\u0e32\u0e16\u0e36\u0e07
|
||||
invalidPasswordMinLengthMessage=\u0e23\u0e2b\u0e31\u0e2a\u0e1c\u0e48\u0e32\u0e19\u0e44\u0e21\u0e48\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07\: \u0e04\u0e27\u0e32\u0e21\u0e22\u0e32\u0e27\u0e02\u0e31\u0e49\u0e19\u0e15\u0e48\u0e33 {0} \u0e2d\u0e31\u0e01\u0e29\u0e23
|
||||
invalidPasswordMaxLengthMessage=\u0e23\u0e2b\u0e31\u0e2a\u0e1c\u0e48\u0e32\u0e19\u0e44\u0e21\u0e48\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07\: \u0e04\u0e27\u0e32\u0e21\u0e22\u0e32\u0e27\u0e2a\u0e39\u0e07\u0e2a\u0e38\u0e14 {0} \u0e2d\u0e31\u0e01\u0e29\u0e23
|
||||
invalidPasswordMinDigitsMessage=\u0e23\u0e2b\u0e31\u0e2a\u0e1c\u0e48\u0e32\u0e19\u0e44\u0e21\u0e48\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07\: \u0e15\u0e49\u0e2d\u0e07\u0e21\u0e35\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e19\u0e49\u0e2d\u0e22 {0} \u0e2b\u0e25\u0e31\u0e01
|
||||
invalidPasswordMinLowerCaseCharsMessage=\u0e23\u0e2b\u0e31\u0e2a\u0e1c\u0e48\u0e32\u0e19\u0e44\u0e21\u0e48\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07\: \u0e15\u0e49\u0e2d\u0e07\u0e21\u0e35\u0e15\u0e31\u0e27\u0e2d\u0e31\u0e01\u0e29\u0e23\u0e1e\u0e34\u0e21\u0e1e\u0e4c\u0e40\u0e25\u0e47\u0e01\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e19\u0e49\u0e2d\u0e22 {0} \u0e2d\u0e31\u0e01\u0e29\u0e23
|
||||
invalidPasswordMinUpperCaseCharsMessage=\u0e23\u0e2b\u0e31\u0e2a\u0e1c\u0e48\u0e32\u0e19\u0e44\u0e21\u0e48\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07\: \u0e15\u0e49\u0e2d\u0e07\u0e21\u0e35\u0e15\u0e31\u0e27\u0e2d\u0e31\u0e01\u0e29\u0e23\u0e1e\u0e34\u0e21\u0e1e\u0e4c\u0e43\u0e2b\u0e0d\u0e48\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e19\u0e49\u0e2d\u0e22 {0} \u0e2d\u0e31\u0e01\u0e29\u0e23
|
||||
invalidPasswordMinSpecialCharsMessage=\u0e23\u0e2b\u0e31\u0e2a\u0e1c\u0e48\u0e32\u0e19\u0e44\u0e21\u0e48\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07\: \u0e15\u0e49\u0e2d\u0e07\u0e21\u0e35\u0e2d\u0e31\u0e01\u0e02\u0e23\u0e30\u0e1e\u0e34\u0e40\u0e28\u0e29\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e19\u0e49\u0e2d\u0e22 {0} \u0e2d\u0e31\u0e01\u0e29\u0e23
|
||||
invalidPasswordNotUsernameMessage=\u0e23\u0e2b\u0e31\u0e2a\u0e1c\u0e48\u0e32\u0e19\u0e44\u0e21\u0e48\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07\: \u0e15\u0e49\u0e2d\u0e07\u0e44\u0e21\u0e48\u0e40\u0e2b\u0e21\u0e37\u0e2d\u0e19\u0e01\u0e31\u0e1a\u0e0a\u0e37\u0e48\u0e2d\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19
|
||||
invalidPasswordNotEmailMessage=\u0e23\u0e2b\u0e31\u0e2a\u0e1c\u0e48\u0e32\u0e19\u0e44\u0e21\u0e48\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07\: \u0e15\u0e49\u0e2d\u0e07\u0e44\u0e21\u0e48\u0e40\u0e2b\u0e21\u0e37\u0e2d\u0e19\u0e01\u0e31\u0e1a\u0e2d\u0e35\u0e40\u0e21\u0e25
|
||||
invalidPasswordRegexPatternMessage=\u0e23\u0e2b\u0e31\u0e2a\u0e1c\u0e48\u0e32\u0e19\u0e44\u0e21\u0e48\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07\: \u0e44\u0e21\u0e48\u0e15\u0e23\u0e07\u0e01\u0e31\u0e1a\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a regex
|
||||
invalidPasswordHistoryMessage=\u0e23\u0e2b\u0e31\u0e2a\u0e1c\u0e48\u0e32\u0e19\u0e44\u0e21\u0e48\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07\: \u0e15\u0e49\u0e2d\u0e07\u0e44\u0e21\u0e48\u0e40\u0e2b\u0e21\u0e37\u0e2d\u0e19\u0e01\u0e31\u0e1a {0} \u0e23\u0e2b\u0e31\u0e2a\u0e1c\u0e48\u0e32\u0e19\u0e25\u0e48\u0e32\u0e2a\u0e38\u0e14
|
||||
invalidPasswordGenericMessage=\u0e23\u0e2b\u0e31\u0e2a\u0e1c\u0e48\u0e32\u0e19\u0e44\u0e21\u0e48\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07\: \u0e23\u0e2b\u0e31\u0e2a\u0e1c\u0e48\u0e32\u0e19\u0e43\u0e2b\u0e21\u0e48\u0e44\u0e21\u0e48\u0e40\u0e1b\u0e47\u0e19\u0e44\u0e1b\u0e15\u0e32\u0e21\u0e19\u0e42\u0e22\u0e1a\u0e32\u0e22\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e23\u0e2b\u0e31\u0e2a\u0e1c\u0e48\u0e32\u0e19
|
||||
failedToProcessResponseMessage=\u0e01\u0e32\u0e23\u0e1b\u0e23\u0e30\u0e21\u0e27\u0e25\u0e1c\u0e25\u0e01\u0e32\u0e23\u0e15\u0e2d\u0e1a\u0e2a\u0e19\u0e2d\u0e07\u0e25\u0e49\u0e21\u0e40\u0e2b\u0e25\u0e27
|
||||
httpsRequiredMessage=\u0e08\u0e33\u0e40\u0e1b\u0e47\u0e19\u0e15\u0e49\u0e2d\u0e07\u0e43\u0e0a\u0e49 HTTPS
|
||||
realmNotEnabledMessage=\u0e44\u0e21\u0e48\u0e44\u0e14\u0e49\u0e40\u0e1b\u0e34\u0e14\u0e43\u0e0a\u0e49 realm
|
||||
invalidRequestMessage=\u0e04\u0e33\u0e02\u0e2d\u0e44\u0e21\u0e48\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07
|
||||
successLogout=\u0e04\u0e38\u0e13\u0e2d\u0e2d\u0e01\u0e08\u0e32\u0e01\u0e23\u0e30\u0e1a\u0e1a\u0e41\u0e25\u0e49\u0e27
|
||||
failedLogout=\u0e01\u0e32\u0e23\u0e2d\u0e2d\u0e01\u0e08\u0e32\u0e01\u0e23\u0e30\u0e1a\u0e1a\u0e25\u0e49\u0e21\u0e40\u0e2b\u0e25\u0e27
|
||||
unknownLoginRequesterMessage=\u0e1c\u0e39\u0e49\u0e23\u0e49\u0e2d\u0e07\u0e02\u0e2d\u0e40\u0e02\u0e49\u0e32\u0e2a\u0e39\u0e48\u0e23\u0e30\u0e1a\u0e1a\u0e17\u0e35\u0e48\u0e44\u0e21\u0e48\u0e23\u0e39\u0e49\u0e08\u0e31\u0e01
|
||||
loginRequesterNotEnabledMessage=\u0e1c\u0e39\u0e49\u0e23\u0e49\u0e2d\u0e07\u0e02\u0e2d\u0e40\u0e02\u0e49\u0e32\u0e2a\u0e39\u0e48\u0e23\u0e30\u0e1a\u0e1a\u0e17\u0e35\u0e48\u0e44\u0e21\u0e48\u0e44\u0e14\u0e49\u0e40\u0e1b\u0e34\u0e14\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19
|
||||
bearerOnlyMessage=\u0e41\u0e2d\u0e1b\u0e1e\u0e25\u0e34\u0e40\u0e04\u0e0a\u0e31\u0e19\u0e17\u0e35\u0e48\u0e43\u0e0a\u0e49 Bearer-only \u0e44\u0e21\u0e48\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e2d\u0e19\u0e38\u0e0d\u0e32\u0e15\u0e43\u0e2b\u0e49\u0e40\u0e23\u0e34\u0e48\u0e21\u0e01\u0e32\u0e23\u0e40\u0e02\u0e49\u0e32\u0e2a\u0e39\u0e48\u0e23\u0e30\u0e1a\u0e1a\u0e1c\u0e48\u0e32\u0e19\u0e40\u0e1a\u0e23\u0e32\u0e27\u0e4c\u0e40\u0e0b\u0e2d\u0e23\u0e4c
|
||||
standardFlowDisabledMessage=\u0e44\u0e04\u0e25\u0e40\u0e2d\u0e19\u0e15\u0e4c\u0e44\u0e21\u0e48\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e2d\u0e19\u0e38\u0e0d\u0e32\u0e15\u0e43\u0e2b\u0e49\u0e40\u0e23\u0e34\u0e48\u0e21\u0e01\u0e32\u0e23\u0e40\u0e02\u0e49\u0e32\u0e2a\u0e39\u0e48\u0e23\u0e30\u0e1a\u0e1a\u0e1c\u0e48\u0e32\u0e19\u0e40\u0e1a\u0e23\u0e32\u0e27\u0e4c\u0e40\u0e0b\u0e2d\u0e23\u0e4c\u0e14\u0e49\u0e27\u0e22 response_type \u0e17\u0e35\u0e48\u0e23\u0e30\u0e1a\u0e38 Standard flow \u0e16\u0e39\u0e01\u0e23\u0e30\u0e07\u0e31\u0e1a\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e44\u0e04\u0e25\u0e40\u0e2d\u0e19\u0e15\u0e4c
|
||||
implicitFlowDisabledMessage=\u0e44\u0e04\u0e25\u0e40\u0e2d\u0e19\u0e15\u0e4c\u0e44\u0e21\u0e48\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e2d\u0e19\u0e38\u0e0d\u0e32\u0e15\u0e43\u0e2b\u0e49\u0e40\u0e23\u0e34\u0e48\u0e21\u0e01\u0e32\u0e23\u0e40\u0e02\u0e49\u0e32\u0e2a\u0e39\u0e48\u0e23\u0e30\u0e1a\u0e1a\u0e1c\u0e48\u0e32\u0e19\u0e40\u0e1a\u0e23\u0e32\u0e27\u0e4c\u0e40\u0e0b\u0e2d\u0e23\u0e4c\u0e14\u0e49\u0e27\u0e22 response_type \u0e17\u0e35\u0e48\u0e23\u0e30\u0e1a\u0e38 Implicit flow \u0e16\u0e39\u0e01\u0e23\u0e30\u0e07\u0e31\u0e1a\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e44\u0e04\u0e25\u0e40\u0e2d\u0e19\u0e15\u0e4c
|
||||
invalidRedirectUriMessage=Uri redirect \u0e44\u0e21\u0e48\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07
|
||||
unsupportedNameIdFormatMessage=\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a NameIDFormat \u0e17\u0e35\u0e48\u0e44\u0e21\u0e48\u0e23\u0e2d\u0e07\u0e23\u0e31\u0e1a
|
||||
invalidRequesterMessage=\u0e1c\u0e39\u0e49\u0e23\u0e49\u0e2d\u0e07\u0e02\u0e2d\u0e44\u0e21\u0e48\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07
|
||||
registrationNotAllowedMessage=\u0e44\u0e21\u0e48\u0e2d\u0e19\u0e38\u0e0d\u0e32\u0e15\u0e43\u0e2b\u0e49\u0e25\u0e07\u0e17\u0e30\u0e40\u0e1a\u0e35\u0e22\u0e19
|
||||
resetCredentialNotAllowedMessage=\u0e44\u0e21\u0e48\u0e2d\u0e19\u0e38\u0e0d\u0e32\u0e15\u0e43\u0e2b\u0e49\u0e23\u0e35\u0e40\u0e0b\u0e47\u0e15 Credential
|
||||
permissionNotApprovedMessage=\u0e44\u0e21\u0e48\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e2d\u0e19\u0e38\u0e21\u0e31\u0e15\u0e34\u0e2a\u0e34\u0e17\u0e18\u0e34\u0e4c
|
||||
noRelayStateInResponseMessage=\u0e44\u0e21\u0e48\u0e21\u0e35\u0e2a\u0e16\u0e32\u0e19\u0e30 relay \u0e43\u0e19\u0e01\u0e32\u0e23\u0e15\u0e2d\u0e1a\u0e2a\u0e19\u0e2d\u0e07\u0e08\u0e32\u0e01\u0e1c\u0e39\u0e49\u0e43\u0e2b\u0e49\u0e1a\u0e23\u0e34\u0e01\u0e32\u0e23\u0e15\u0e31\u0e27\u0e15\u0e19
|
||||
insufficientPermissionMessage=\u0e2a\u0e34\u0e17\u0e18\u0e34\u0e4c\u0e44\u0e21\u0e48\u0e40\u0e1e\u0e35\u0e22\u0e07\u0e1e\u0e2d\u0e43\u0e19\u0e01\u0e32\u0e23\u0e40\u0e0a\u0e37\u0e48\u0e2d\u0e21\u0e42\u0e22\u0e07\u0e15\u0e31\u0e27\u0e15\u0e19
|
||||
couldNotProceedWithAuthenticationRequestMessage=\u0e44\u0e21\u0e48\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e14\u0e33\u0e40\u0e19\u0e34\u0e19\u0e01\u0e32\u0e23\u0e15\u0e48\u0e2d\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e2a\u0e48\u0e07\u0e04\u0e33\u0e02\u0e2d\u0e1e\u0e34\u0e2a\u0e39\u0e08\u0e19\u0e4c\u0e15\u0e31\u0e27\u0e08\u0e23\u0e34\u0e07\u0e44\u0e1b\u0e22\u0e31\u0e07\u0e1c\u0e39\u0e49\u0e43\u0e2b\u0e49\u0e1a\u0e23\u0e34\u0e01\u0e32\u0e23\u0e15\u0e31\u0e27\u0e15\u0e19
|
||||
couldNotObtainTokenMessage=\u0e44\u0e21\u0e48\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e23\u0e31\u0e1a\u0e42\u0e17\u0e40\u0e04\u0e47\u0e19\u0e08\u0e32\u0e01\u0e1c\u0e39\u0e49\u0e43\u0e2b\u0e49\u0e1a\u0e23\u0e34\u0e01\u0e32\u0e23\u0e15\u0e31\u0e27\u0e15\u0e19
|
||||
unexpectedErrorRetrievingTokenMessage=\u0e40\u0e01\u0e34\u0e14\u0e02\u0e49\u0e2d\u0e1c\u0e34\u0e14\u0e1e\u0e25\u0e32\u0e14\u0e17\u0e35\u0e48\u0e44\u0e21\u0e48\u0e04\u0e32\u0e14\u0e04\u0e34\u0e14\u0e02\u0e13\u0e30\u0e23\u0e31\u0e1a\u0e42\u0e17\u0e40\u0e04\u0e47\u0e19\u0e08\u0e32\u0e01\u0e1c\u0e39\u0e49\u0e43\u0e2b\u0e49\u0e1a\u0e23\u0e34\u0e01\u0e32\u0e23\u0e15\u0e31\u0e27\u0e15\u0e19
|
||||
unexpectedErrorHandlingResponseMessage=\u0e40\u0e01\u0e34\u0e14\u0e02\u0e49\u0e2d\u0e1c\u0e34\u0e14\u0e1e\u0e25\u0e32\u0e14\u0e17\u0e35\u0e48\u0e44\u0e21\u0e48\u0e04\u0e32\u0e14\u0e04\u0e34\u0e14\u0e02\u0e13\u0e30\u0e08\u0e31\u0e14\u0e01\u0e32\u0e23\u0e01\u0e32\u0e23\u0e15\u0e2d\u0e1a\u0e2a\u0e19\u0e2d\u0e07\u0e08\u0e32\u0e01\u0e1c\u0e39\u0e49\u0e43\u0e2b\u0e49\u0e1a\u0e23\u0e34\u0e01\u0e32\u0e23\u0e15\u0e31\u0e27\u0e15\u0e19
|
||||
identityProviderAuthenticationFailedMessage=\u0e01\u0e32\u0e23\u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a\u0e25\u0e49\u0e21\u0e40\u0e2b\u0e25\u0e27 \u0e44\u0e21\u0e48\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a\u0e01\u0e31\u0e1a\u0e1c\u0e39\u0e49\u0e43\u0e2b\u0e49\u0e1a\u0e23\u0e34\u0e01\u0e32\u0e23\u0e15\u0e31\u0e27\u0e15\u0e19
|
||||
couldNotSendAuthenticationRequestMessage=\u0e44\u0e21\u0e48\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e2a\u0e48\u0e07\u0e04\u0e33\u0e02\u0e2d\u0e1e\u0e34\u0e2a\u0e39\u0e08\u0e19\u0e4c\u0e15\u0e31\u0e27\u0e08\u0e23\u0e34\u0e07\u0e44\u0e1b\u0e22\u0e31\u0e07\u0e1c\u0e39\u0e49\u0e43\u0e2b\u0e49\u0e1a\u0e23\u0e34\u0e01\u0e32\u0e23\u0e15\u0e31\u0e27\u0e15\u0e19
|
||||
unexpectedErrorHandlingRequestMessage=\u0e40\u0e01\u0e34\u0e14\u0e02\u0e49\u0e2d\u0e1c\u0e34\u0e14\u0e1e\u0e25\u0e32\u0e14\u0e17\u0e35\u0e48\u0e44\u0e21\u0e48\u0e04\u0e32\u0e14\u0e04\u0e34\u0e14\u0e02\u0e13\u0e30\u0e08\u0e31\u0e14\u0e01\u0e32\u0e23\u0e04\u0e33\u0e02\u0e2d\u0e1e\u0e34\u0e2a\u0e39\u0e08\u0e19\u0e4c\u0e15\u0e31\u0e27\u0e08\u0e23\u0e34\u0e07\u0e44\u0e1b\u0e22\u0e31\u0e07\u0e1c\u0e39\u0e49\u0e43\u0e2b\u0e49\u0e1a\u0e23\u0e34\u0e01\u0e32\u0e23\u0e15\u0e31\u0e27\u0e15\u0e19
|
||||
invalidAccessCodeMessage=Access code \u0e44\u0e21\u0e48\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07
|
||||
sessionNotActiveMessage=\u0e44\u0e21\u0e48\u0e44\u0e14\u0e49\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e40\u0e0b\u0e2a\u0e0a\u0e31\u0e19
|
||||
invalidCodeMessage=\u0e40\u0e01\u0e34\u0e14\u0e02\u0e49\u0e2d\u0e1c\u0e34\u0e14\u0e1e\u0e25\u0e32\u0e14 \u0e01\u0e23\u0e38\u0e13\u0e32\u0e40\u0e02\u0e49\u0e32\u0e2a\u0e39\u0e48\u0e23\u0e30\u0e1a\u0e1a\u0e1c\u0e48\u0e32\u0e19\u0e41\u0e2d\u0e1b\u0e1e\u0e25\u0e34\u0e40\u0e04\u0e0a\u0e31\u0e19\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13\u0e2d\u0e35\u0e01\u0e04\u0e23\u0e31\u0e49\u0e07
|
||||
cookieNotFoundMessage=\u0e44\u0e21\u0e48\u0e1e\u0e1a\u0e04\u0e38\u0e01\u0e01\u0e35\u0e49 \u0e42\u0e1b\u0e23\u0e14\u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a\u0e43\u0e2b\u0e49\u0e41\u0e19\u0e48\u0e43\u0e08\u0e27\u0e48\u0e32\u0e04\u0e38\u0e13\u0e44\u0e14\u0e49\u0e40\u0e1b\u0e34\u0e14\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e04\u0e38\u0e01\u0e01\u0e35\u0e49\u0e43\u0e19\u0e40\u0e1a\u0e23\u0e32\u0e27\u0e4c\u0e40\u0e0b\u0e2d\u0e23\u0e4c\u0e41\u0e25\u0e49\u0e27
|
||||
insufficientLevelOfAuthentication=\u0e23\u0e30\u0e14\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e1e\u0e34\u0e2a\u0e39\u0e08\u0e19\u0e4c\u0e15\u0e31\u0e27\u0e08\u0e23\u0e34\u0e07\u0e17\u0e35\u0e48\u0e23\u0e49\u0e2d\u0e07\u0e02\u0e2d\u0e21\u0e35\u0e44\u0e21\u0e48\u0e40\u0e1e\u0e35\u0e22\u0e07\u0e1e\u0e2d
|
||||
identityProviderUnexpectedErrorMessage=\u0e40\u0e01\u0e34\u0e14\u0e02\u0e49\u0e2d\u0e1c\u0e34\u0e14\u0e1e\u0e25\u0e32\u0e14\u0e17\u0e35\u0e48\u0e44\u0e21\u0e48\u0e04\u0e32\u0e14\u0e04\u0e34\u0e14\u0e02\u0e13\u0e30\u0e1e\u0e34\u0e2a\u0e39\u0e08\u0e19\u0e4c\u0e15\u0e31\u0e27\u0e08\u0e23\u0e34\u0e07\u0e01\u0e31\u0e1a\u0e1c\u0e39\u0e49\u0e43\u0e2b\u0e49\u0e1a\u0e23\u0e34\u0e01\u0e32\u0e23\u0e15\u0e31\u0e27\u0e15\u0e19
|
||||
identityProviderMissingStateMessage=\u0e44\u0e21\u0e48\u0e1e\u0e1a\u0e1e\u0e32\u0e23\u0e32\u0e21\u0e34\u0e40\u0e15\u0e2d\u0e23\u0e4c state \u0e08\u0e32\u0e01\u0e01\u0e32\u0e23\u0e15\u0e2d\u0e1a\u0e2a\u0e19\u0e2d\u0e07\u0e02\u0e2d\u0e07\u0e1c\u0e39\u0e49\u0e43\u0e2b\u0e49\u0e1a\u0e23\u0e34\u0e01\u0e32\u0e23\u0e15\u0e31\u0e27\u0e15\u0e19
|
||||
identityProviderInvalidResponseMessage=\u0e01\u0e32\u0e23\u0e15\u0e2d\u0e1a\u0e2a\u0e19\u0e2d\u0e07\u0e08\u0e32\u0e01\u0e1c\u0e39\u0e49\u0e43\u0e2b\u0e49\u0e1a\u0e23\u0e34\u0e01\u0e32\u0e23\u0e15\u0e31\u0e27\u0e15\u0e19\u0e44\u0e21\u0e48\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07
|
||||
identityProviderInvalidSignatureMessage=\u0e25\u0e32\u0e22\u0e40\u0e0b\u0e47\u0e19\u0e43\u0e19\u0e01\u0e32\u0e23\u0e15\u0e2d\u0e1a\u0e2a\u0e19\u0e2d\u0e07\u0e08\u0e32\u0e01\u0e1c\u0e39\u0e49\u0e43\u0e2b\u0e49\u0e1a\u0e23\u0e34\u0e01\u0e32\u0e23\u0e15\u0e31\u0e27\u0e15\u0e19\u0e44\u0e21\u0e48\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07
|
||||
identityProviderNotFoundMessage=\u0e44\u0e21\u0e48\u0e1e\u0e1a\u0e1c\u0e39\u0e49\u0e43\u0e2b\u0e49\u0e1a\u0e23\u0e34\u0e01\u0e32\u0e23\u0e15\u0e31\u0e27\u0e15\u0e19\u0e14\u0e49\u0e27\u0e22\u0e15\u0e31\u0e27\u0e23\u0e30\u0e1a\u0e38\u0e19\u0e35\u0e49
|
||||
identityProviderLinkSuccess=\u0e04\u0e38\u0e13\u0e44\u0e14\u0e49\u0e22\u0e37\u0e19\u0e22\u0e31\u0e19\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13\u0e40\u0e23\u0e35\u0e22\u0e1a\u0e23\u0e49\u0e2d\u0e22\u0e41\u0e25\u0e49\u0e27 \u0e01\u0e23\u0e38\u0e13\u0e32\u0e01\u0e25\u0e31\u0e1a\u0e44\u0e1b\u0e17\u0e35\u0e48\u0e40\u0e1a\u0e23\u0e32\u0e27\u0e4c\u0e40\u0e0b\u0e2d\u0e23\u0e4c\u0e40\u0e14\u0e34\u0e21\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13\u0e41\u0e25\u0e30\u0e14\u0e33\u0e40\u0e19\u0e34\u0e19\u0e01\u0e32\u0e23\u0e40\u0e02\u0e49\u0e32\u0e2a\u0e39\u0e48\u0e23\u0e30\u0e1a\u0e1a\u0e17\u0e35\u0e48\u0e19\u0e31\u0e48\u0e19
|
||||
staleCodeMessage=\u0e2b\u0e19\u0e49\u0e32\u0e19\u0e35\u0e49\u0e44\u0e21\u0e48\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07\u0e2d\u0e35\u0e01\u0e15\u0e48\u0e2d\u0e44\u0e1b \u0e01\u0e23\u0e38\u0e13\u0e32\u0e01\u0e25\u0e31\u0e1a\u0e44\u0e1b\u0e17\u0e35\u0e48\u0e41\u0e2d\u0e1b\u0e1e\u0e25\u0e34\u0e40\u0e04\u0e0a\u0e31\u0e19\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13\u0e41\u0e25\u0e30\u0e40\u0e02\u0e49\u0e32\u0e2a\u0e39\u0e48\u0e23\u0e30\u0e1a\u0e1a\u0e2d\u0e35\u0e01\u0e04\u0e23\u0e31\u0e49\u0e07
|
||||
realmSupportsNoCredentialsMessage=realm \u0e44\u0e21\u0e48\u0e2a\u0e19\u0e31\u0e1a\u0e2a\u0e19\u0e38\u0e19\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17 credential \u0e43\u0e14 \u0e46
|
||||
credentialSetupRequired=\u0e44\u0e21\u0e48\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e40\u0e02\u0e49\u0e32\u0e2a\u0e39\u0e48\u0e23\u0e30\u0e1a\u0e1a \u0e08\u0e33\u0e40\u0e1b\u0e47\u0e19\u0e15\u0e49\u0e2d\u0e07\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e1b\u0e23\u0e30\u0e08\u0e33\u0e15\u0e31\u0e27
|
||||
identityProviderNotUniqueMessage=realm \u0e2a\u0e19\u0e31\u0e1a\u0e2a\u0e19\u0e38\u0e19\u0e1c\u0e39\u0e49\u0e43\u0e2b\u0e49\u0e1a\u0e23\u0e34\u0e01\u0e32\u0e23\u0e15\u0e31\u0e27\u0e15\u0e19\u0e2b\u0e25\u0e32\u0e22\u0e41\u0e2b\u0e25\u0e48\u0e07 \u0e44\u0e21\u0e48\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e23\u0e30\u0e1a\u0e38\u0e44\u0e14\u0e49\u0e27\u0e48\u0e32\u0e04\u0e27\u0e23\u0e1e\u0e34\u0e2a\u0e39\u0e08\u0e19\u0e4c\u0e15\u0e31\u0e27\u0e08\u0e23\u0e34\u0e07\u0e1c\u0e48\u0e32\u0e19\u0e1c\u0e39\u0e49\u0e43\u0e2b\u0e49\u0e1a\u0e23\u0e34\u0e01\u0e32\u0e23\u0e15\u0e31\u0e27\u0e15\u0e19\u0e43\u0e14
|
||||
emailVerifiedMessage=\u0e22\u0e37\u0e19\u0e22\u0e31\u0e19\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13\u0e41\u0e25\u0e49\u0e27
|
||||
staleEmailVerificationLink=\u0e25\u0e34\u0e07\u0e01\u0e4c\u0e17\u0e35\u0e48\u0e04\u0e38\u0e13\u0e04\u0e25\u0e34\u0e01\u0e40\u0e1b\u0e47\u0e19\u0e25\u0e34\u0e07\u0e01\u0e4c\u0e17\u0e35\u0e48\u0e40\u0e01\u0e48\u0e32\u0e41\u0e25\u0e30\u0e44\u0e21\u0e48\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07 \u0e1a\u0e32\u0e07\u0e17\u0e35\u0e04\u0e38\u0e13\u0e2d\u0e32\u0e08\u0e08\u0e30\u0e22\u0e37\u0e19\u0e22\u0e31\u0e19\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13\u0e41\u0e25\u0e49\u0e27
|
||||
identityProviderAlreadyLinkedMessage=Federated identity \u0e17\u0e35\u0e48\u0e2a\u0e48\u0e07\u0e04\u0e37\u0e19\u0e21\u0e32\u0e08\u0e32\u0e01\u0e1c\u0e39\u0e49\u0e43\u0e2b\u0e49\u0e1a\u0e23\u0e34\u0e01\u0e32\u0e23 {0} \u0e21\u0e35\u0e01\u0e32\u0e23\u0e40\u0e0a\u0e37\u0e48\u0e2d\u0e21\u0e42\u0e22\u0e07\u0e01\u0e31\u0e1a\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e2d\u0e37\u0e48\u0e19\u0e41\u0e25\u0e49\u0e27
|
||||
confirmAccountLinking=\u0e22\u0e37\u0e19\u0e22\u0e31\u0e19\u0e01\u0e32\u0e23\u0e40\u0e0a\u0e37\u0e48\u0e2d\u0e21\u0e42\u0e22\u0e07\u0e1a\u0e31\u0e0d\u0e0a\u0e35 {0} \u0e02\u0e2d\u0e07\u0e1c\u0e39\u0e49\u0e43\u0e2b\u0e49\u0e1a\u0e23\u0e34\u0e01\u0e32\u0e23\u0e15\u0e31\u0e27\u0e15\u0e19 {1} \u0e01\u0e31\u0e1a\u0e1a\u0e31\u0e0d\u0e0a\u0e35\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13
|
||||
confirmEmailAddressVerification=\u0e22\u0e37\u0e19\u0e22\u0e31\u0e19\u0e04\u0e27\u0e32\u0e21\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07\u0e02\u0e2d\u0e07\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48\u0e2d\u0e35\u0e40\u0e21\u0e25 {0}
|
||||
confirmExecutionOfActions=\u0e14\u0e33\u0e40\u0e19\u0e34\u0e19\u0e01\u0e32\u0e23\u0e15\u0e48\u0e2d\u0e44\u0e1b\u0e19\u0e35\u0e49
|
||||
backToApplication=« \u0e01\u0e25\u0e31\u0e1a\u0e44\u0e1b\u0e17\u0e35\u0e48\u0e41\u0e2d\u0e1b\u0e1e\u0e25\u0e34\u0e40\u0e04\u0e0a\u0e31\u0e19
|
||||
missingParameterMessage=\u0e44\u0e21\u0e48\u0e21\u0e35\u0e1e\u0e32\u0e23\u0e32\u0e21\u0e34\u0e40\u0e15\u0e2d\u0e23\u0e4c\: {0}
|
||||
clientNotFoundMessage=\u0e44\u0e21\u0e48\u0e1e\u0e1a\u0e44\u0e04\u0e25\u0e40\u0e2d\u0e19\u0e15\u0e4c
|
||||
clientDisabledMessage=\u0e44\u0e04\u0e25\u0e40\u0e2d\u0e19\u0e15\u0e4c\u0e16\u0e39\u0e01\u0e1b\u0e34\u0e14\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19
|
||||
invalidParameterMessage=\u0e1e\u0e32\u0e23\u0e32\u0e21\u0e34\u0e40\u0e15\u0e2d\u0e23\u0e4c\u0e44\u0e21\u0e48\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07\: {0}
|
||||
alreadyLoggedIn=\u0e04\u0e38\u0e13\u0e40\u0e02\u0e49\u0e32\u0e2a\u0e39\u0e48\u0e23\u0e30\u0e1a\u0e1a\u0e41\u0e25\u0e49\u0e27
|
||||
differentUserAuthenticated=\u0e04\u0e38\u0e13\u0e44\u0e14\u0e49\u0e1e\u0e34\u0e2a\u0e39\u0e08\u0e19\u0e4c\u0e15\u0e31\u0e27\u0e08\u0e23\u0e34\u0e07\u0e40\u0e1b\u0e47\u0e19\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e2d\u0e37\u0e48\u0e19 ''{0}'' \u0e43\u0e19\u0e40\u0e0b\u0e2a\u0e0a\u0e31\u0e19\u0e19\u0e35\u0e49\u0e41\u0e25\u0e49\u0e27 \u0e01\u0e23\u0e38\u0e13\u0e32\u0e2d\u0e2d\u0e01\u0e08\u0e32\u0e01\u0e23\u0e30\u0e1a\u0e1a\u0e01\u0e48\u0e2d\u0e19
|
||||
brokerLinkingSessionExpired=\u0e44\u0e14\u0e49\u0e02\u0e2d\u0e01\u0e32\u0e23\u0e40\u0e0a\u0e37\u0e48\u0e2d\u0e21\u0e42\u0e22\u0e07\u0e1a\u0e31\u0e0d\u0e0a\u0e35\u0e02\u0e2d\u0e07\u0e42\u0e1a\u0e23\u0e01\u0e40\u0e01\u0e2d\u0e23\u0e4c \u0e41\u0e15\u0e48\u0e40\u0e0b\u0e2a\u0e0a\u0e31\u0e19\u0e1b\u0e31\u0e08\u0e08\u0e38\u0e1a\u0e31\u0e19\u0e44\u0e21\u0e48\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07\u0e41\u0e25\u0e49\u0e27
|
||||
proceedWithAction=» \u0e04\u0e25\u0e34\u0e01\u0e17\u0e35\u0e48\u0e19\u0e35\u0e48\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e14\u0e33\u0e40\u0e19\u0e34\u0e19\u0e01\u0e32\u0e23
|
||||
acrNotFulfilled=\u0e04\u0e38\u0e13\u0e2a\u0e21\u0e1a\u0e31\u0e15\u0e34\u0e44\u0e21\u0e48\u0e40\u0e1b\u0e47\u0e19\u0e44\u0e1b\u0e15\u0e32\u0e21\u0e02\u0e49\u0e2d\u0e01\u0e33\u0e2b\u0e19\u0e14\u0e43\u0e19\u0e01\u0e32\u0e23\u0e1e\u0e34\u0e2a\u0e39\u0e08\u0e19\u0e4c\u0e15\u0e31\u0e27\u0e08\u0e23\u0e34\u0e07
|
||||
requiredAction.CONFIGURE_TOTP=\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32 OTP
|
||||
requiredAction.terms_and_conditions=\u0e02\u0e49\u0e2d\u0e01\u0e33\u0e2b\u0e19\u0e14\u0e41\u0e25\u0e30\u0e40\u0e07\u0e37\u0e48\u0e2d\u0e19\u0e44\u0e02
|
||||
requiredAction.UPDATE_PASSWORD=\u0e1b\u0e23\u0e31\u0e1a\u0e1b\u0e23\u0e38\u0e07\u0e23\u0e2b\u0e31\u0e2a\u0e1c\u0e48\u0e32\u0e19
|
||||
requiredAction.UPDATE_PROFILE=\u0e1b\u0e23\u0e31\u0e1a\u0e1b\u0e23\u0e38\u0e07\u0e42\u0e1b\u0e23\u0e44\u0e1f\u0e25\u0e4c
|
||||
requiredAction.VERIFY_EMAIL=\u0e22\u0e37\u0e19\u0e22\u0e31\u0e19\u0e2d\u0e35\u0e40\u0e21\u0e25
|
||||
requiredAction.CONFIGURE_RECOVERY_AUTHN_CODES=\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e23\u0e2b\u0e31\u0e2a\u0e01\u0e39\u0e49\u0e04\u0e37\u0e19
|
||||
requiredAction.webauthn-register-passwordless=Webauthn Register Passwordless
|
||||
invalidTokenRequiredActions=\u0e01\u0e32\u0e23\u0e01\u0e23\u0e30\u0e17\u0e33\u0e17\u0e35\u0e48\u0e08\u0e33\u0e40\u0e1b\u0e47\u0e19\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48\u0e43\u0e19\u0e25\u0e34\u0e07\u0e01\u0e4c\u0e44\u0e21\u0e48\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07
|
||||
doX509Login=\u0e04\u0e38\u0e13\u0e08\u0e30\u0e40\u0e02\u0e49\u0e32\u0e2a\u0e39\u0e48\u0e23\u0e30\u0e1a\u0e1a\u0e43\u0e19\u0e10\u0e32\u0e19\u0e30\:
|
||||
clientCertificate=\u0e43\u0e1a\u0e23\u0e31\u0e1a\u0e23\u0e2d\u0e07\u0e44\u0e04\u0e25\u0e40\u0e2d\u0e19\u0e15\u0e4c X509\:
|
||||
noCertificate=[\u0e44\u0e21\u0e48\u0e21\u0e35\u0e43\u0e1a\u0e23\u0e31\u0e1a\u0e23\u0e2d\u0e07]
|
||||
pageNotFound=\u0e44\u0e21\u0e48\u0e1e\u0e1a\u0e2b\u0e19\u0e49\u0e32
|
||||
internalServerError=\u0e40\u0e01\u0e34\u0e14\u0e02\u0e49\u0e2d\u0e1c\u0e34\u0e14\u0e1e\u0e25\u0e32\u0e14\u0e20\u0e32\u0e22\u0e43\u0e19\u0e40\u0e0b\u0e34\u0e23\u0e4c\u0e1f\u0e40\u0e27\u0e2d\u0e23\u0e4c
|
||||
console-username=\u0e0a\u0e37\u0e48\u0e2d\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\:
|
||||
console-password=\u0e23\u0e2b\u0e31\u0e2a\u0e1c\u0e48\u0e32\u0e19\:
|
||||
console-otp=\u0e23\u0e2b\u0e31\u0e2a\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e43\u0e0a\u0e49\u0e04\u0e23\u0e31\u0e49\u0e07\u0e40\u0e14\u0e35\u0e22\u0e27\:
|
||||
console-new-password=\u0e23\u0e2b\u0e31\u0e2a\u0e1c\u0e48\u0e32\u0e19\u0e43\u0e2b\u0e21\u0e48\:
|
||||
console-confirm-password=\u0e22\u0e37\u0e19\u0e22\u0e31\u0e19\u0e23\u0e2b\u0e31\u0e2a\u0e1c\u0e48\u0e32\u0e19\:
|
||||
console-update-password=\u0e08\u0e33\u0e40\u0e1b\u0e47\u0e19\u0e15\u0e49\u0e2d\u0e07\u0e1b\u0e23\u0e31\u0e1a\u0e1b\u0e23\u0e38\u0e07\u0e23\u0e2b\u0e31\u0e2a\u0e1c\u0e48\u0e32\u0e19\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13
|
||||
console-verify-email=\u0e04\u0e38\u0e13\u0e08\u0e33\u0e40\u0e1b\u0e47\u0e19\u0e15\u0e49\u0e2d\u0e07\u0e22\u0e37\u0e19\u0e22\u0e31\u0e19\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13 \u0e40\u0e23\u0e32\u0e44\u0e14\u0e49\u0e2a\u0e48\u0e07\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e1e\u0e23\u0e49\u0e2d\u0e21\u0e23\u0e2b\u0e31\u0e2a\u0e22\u0e37\u0e19\u0e22\u0e31\u0e19\u0e44\u0e1b\u0e17\u0e35\u0e48 {0} \u0e01\u0e23\u0e38\u0e13\u0e32\u0e23\u0e30\u0e1a\u0e38\u0e23\u0e2b\u0e31\u0e2a\u0e17\u0e35\u0e48\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e25\u0e07\u0e43\u0e19\u0e0a\u0e48\u0e2d\u0e07\u0e27\u0e48\u0e32\u0e07\u0e14\u0e49\u0e32\u0e19\u0e25\u0e48\u0e32\u0e07
|
||||
console-email-code=\u0e23\u0e2b\u0e31\u0e2a\u0e2d\u0e35\u0e40\u0e21\u0e25\:
|
||||
console-accept-terms=\u0e22\u0e2d\u0e21\u0e23\u0e31\u0e1a\u0e02\u0e49\u0e2d\u0e01\u0e33\u0e2b\u0e19\u0e14? [y/n]\:
|
||||
console-accept=y
|
||||
openshift.scope.user_info=\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19
|
||||
openshift.scope.user_check-access=\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e01\u0e32\u0e23\u0e40\u0e02\u0e49\u0e32\u0e16\u0e36\u0e07\u0e02\u0e2d\u0e07\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19
|
||||
openshift.scope.user_full=\u0e01\u0e32\u0e23\u0e40\u0e02\u0e49\u0e32\u0e16\u0e36\u0e07\u0e41\u0e1a\u0e1a\u0e40\u0e15\u0e47\u0e21\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a
|
||||
openshift.scope.list-projects=\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e42\u0e1b\u0e23\u0e40\u0e08\u0e04
|
||||
saml.post-form.title=\u0e01\u0e32\u0e23\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19\u0e40\u0e2a\u0e49\u0e19\u0e17\u0e32\u0e07\u0e01\u0e32\u0e23\u0e1e\u0e34\u0e2a\u0e39\u0e08\u0e19\u0e4c\u0e15\u0e31\u0e27\u0e08\u0e23\u0e34\u0e07
|
||||
saml.post-form.message=\u0e01\u0e33\u0e25\u0e31\u0e07\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19\u0e40\u0e2a\u0e49\u0e19\u0e17\u0e32\u0e07 \u0e42\u0e1b\u0e23\u0e14\u0e23\u0e2d
|
||||
saml.post-form.js-disabled=JavaScript \u0e16\u0e39\u0e01\u0e1b\u0e34\u0e14\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19 \u0e40\u0e23\u0e32\u0e02\u0e2d\u0e41\u0e19\u0e30\u0e19\u0e33\u0e43\u0e2b\u0e49\u0e04\u0e38\u0e13\u0e40\u0e1b\u0e34\u0e14\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19 \u0e04\u0e25\u0e34\u0e01\u0e17\u0e35\u0e48\u0e1b\u0e38\u0e48\u0e21\u0e14\u0e49\u0e32\u0e19\u0e25\u0e48\u0e32\u0e07\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e14\u0e33\u0e40\u0e19\u0e34\u0e19\u0e01\u0e32\u0e23\u0e15\u0e48\u0e2d
|
||||
saml.artifactResolutionServiceInvalidResponse=\u0e44\u0e21\u0e48\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16 resolve artifact \u0e44\u0e14\u0e49
|
||||
otp-display-name=\u0e41\u0e2d\u0e1b\u0e1e\u0e25\u0e34\u0e40\u0e04\u0e0a\u0e31\u0e19 Authenticator
|
||||
otp-help-text=\u0e23\u0e30\u0e1a\u0e38\u0e23\u0e2b\u0e31\u0e2a\u0e22\u0e37\u0e19\u0e22\u0e31\u0e19\u0e08\u0e32\u0e01\u0e41\u0e2d\u0e1b\u0e1e\u0e25\u0e34\u0e40\u0e04\u0e0a\u0e31\u0e19 Authenticator
|
||||
otp-reset-description=\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32 OTP \u0e43\u0e14\u0e17\u0e35\u0e48\u0e04\u0e27\u0e23\u0e16\u0e39\u0e01\u0e25\u0e1a?
|
||||
password-display-name=\u0e23\u0e2b\u0e31\u0e2a\u0e1c\u0e48\u0e32\u0e19
|
||||
password-help-text=\u0e25\u0e07\u0e0a\u0e37\u0e48\u0e2d\u0e40\u0e02\u0e49\u0e32\u0e43\u0e0a\u0e49\u0e42\u0e14\u0e22\u0e01\u0e32\u0e23\u0e23\u0e30\u0e1a\u0e38\u0e23\u0e2b\u0e31\u0e2a\u0e1c\u0e48\u0e32\u0e19
|
||||
auth-username-form-display-name=\u0e0a\u0e37\u0e48\u0e2d\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19
|
||||
auth-username-form-help-text=\u0e40\u0e23\u0e34\u0e48\u0e21\u0e25\u0e07\u0e0a\u0e37\u0e48\u0e2d\u0e40\u0e02\u0e49\u0e32\u0e43\u0e0a\u0e49\u0e42\u0e14\u0e22\u0e01\u0e32\u0e23\u0e23\u0e30\u0e1a\u0e38\u0e0a\u0e37\u0e48\u0e2d\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19
|
||||
auth-username-password-form-display-name=\u0e0a\u0e37\u0e48\u0e2d\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e41\u0e25\u0e30\u0e23\u0e2b\u0e31\u0e2a\u0e1c\u0e48\u0e32\u0e19
|
||||
auth-username-password-form-help-text=\u0e25\u0e07\u0e0a\u0e37\u0e48\u0e2d\u0e40\u0e02\u0e49\u0e32\u0e43\u0e0a\u0e49\u0e42\u0e14\u0e22\u0e01\u0e32\u0e23\u0e23\u0e30\u0e1a\u0e38\u0e0a\u0e37\u0e48\u0e2d\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e41\u0e25\u0e30\u0e23\u0e2b\u0e31\u0e2a\u0e1c\u0e48\u0e32\u0e19
|
||||
auth-recovery-authn-code-form-display-name=\u0e23\u0e2b\u0e31\u0e2a\u0e1e\u0e34\u0e2a\u0e39\u0e08\u0e19\u0e4c\u0e15\u0e31\u0e27\u0e08\u0e23\u0e34\u0e07\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e01\u0e32\u0e23\u0e01\u0e39\u0e49\u0e04\u0e37\u0e19
|
||||
auth-recovery-authn-code-form-help-text=\u0e23\u0e30\u0e1a\u0e38\u0e23\u0e2b\u0e31\u0e2a\u0e1e\u0e34\u0e2a\u0e39\u0e08\u0e19\u0e4c\u0e15\u0e31\u0e27\u0e08\u0e23\u0e34\u0e07\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e01\u0e32\u0e23\u0e01\u0e39\u0e49\u0e04\u0e37\u0e19\u0e08\u0e32\u0e01\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e17\u0e35\u0e48\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e44\u0e27\u0e49\u0e01\u0e48\u0e2d\u0e19\u0e2b\u0e19\u0e49\u0e32
|
||||
auth-recovery-code-info-message=\u0e01\u0e23\u0e38\u0e13\u0e32\u0e23\u0e30\u0e1a\u0e38\u0e23\u0e2b\u0e31\u0e2a\u0e01\u0e39\u0e49\u0e04\u0e37\u0e19\u0e17\u0e35\u0e48\u0e23\u0e30\u0e1a\u0e38
|
||||
auth-recovery-code-prompt=\u0e23\u0e2b\u0e31\u0e2a\u0e01\u0e39\u0e49\u0e04\u0e37\u0e19 \#{0}
|
||||
auth-recovery-code-header=\u0e40\u0e02\u0e49\u0e32\u0e2a\u0e39\u0e48\u0e23\u0e30\u0e1a\u0e1a\u0e14\u0e49\u0e27\u0e22\u0e23\u0e2b\u0e31\u0e2a\u0e1e\u0e34\u0e2a\u0e39\u0e08\u0e19\u0e4c\u0e15\u0e31\u0e27\u0e08\u0e23\u0e34\u0e07\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e01\u0e32\u0e23\u0e01\u0e39\u0e49\u0e04\u0e37\u0e19
|
||||
recovery-codes-error-invalid=\u0e23\u0e2b\u0e31\u0e2a\u0e1e\u0e34\u0e2a\u0e39\u0e08\u0e19\u0e4c\u0e15\u0e31\u0e27\u0e08\u0e23\u0e34\u0e07\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e01\u0e32\u0e23\u0e01\u0e39\u0e49\u0e04\u0e37\u0e19\u0e44\u0e21\u0e48\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07
|
||||
recovery-code-config-header=\u0e1e\u0e34\u0e2a\u0e39\u0e08\u0e19\u0e4c\u0e15\u0e31\u0e27\u0e08\u0e23\u0e34\u0e07\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e01\u0e32\u0e23\u0e01\u0e39\u0e49\u0e04\u0e37\u0e19
|
||||
recovery-code-config-warning-title=\u0e23\u0e2b\u0e31\u0e2a\u0e01\u0e39\u0e49\u0e04\u0e37\u0e19\u0e40\u0e2b\u0e25\u0e48\u0e32\u0e19\u0e35\u0e49\u0e08\u0e30\u0e44\u0e21\u0e48\u0e1b\u0e23\u0e32\u0e01\u0e0f\u0e2d\u0e35\u0e01\u0e2b\u0e25\u0e31\u0e07\u0e08\u0e32\u0e01\u0e17\u0e35\u0e48\u0e04\u0e38\u0e13\u0e2d\u0e2d\u0e01\u0e08\u0e32\u0e01\u0e2b\u0e19\u0e49\u0e32\u0e19\u0e35\u0e49\u0e44\u0e1b\u0e41\u0e25\u0e49\u0e27
|
||||
recovery-code-config-warning-message=\u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a\u0e43\u0e2b\u0e49\u0e41\u0e19\u0e48\u0e43\u0e08\u0e27\u0e48\u0e32\u0e04\u0e38\u0e13\u0e44\u0e14\u0e49\u0e1e\u0e34\u0e21\u0e1e\u0e4c \u0e14\u0e32\u0e27\u0e19\u0e4c\u0e42\u0e2b\u0e25\u0e14 \u0e2b\u0e23\u0e37\u0e2d\u0e04\u0e31\u0e14\u0e25\u0e2d\u0e01\u0e23\u0e2b\u0e31\u0e2a \u0e40\u0e01\u0e47\u0e1a\u0e44\u0e27\u0e49\u0e43\u0e19\u0e17\u0e35\u0e48\u0e17\u0e35\u0e48\u0e1b\u0e25\u0e2d\u0e14\u0e20\u0e31\u0e22 \u0e2b\u0e32\u0e01\u0e04\u0e38\u0e13\u0e22\u0e01\u0e40\u0e25\u0e34\u0e01\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32 \u0e23\u0e2b\u0e31\u0e2a\u0e01\u0e39\u0e49\u0e04\u0e37\u0e19\u0e40\u0e2b\u0e25\u0e48\u0e32\u0e19\u0e35\u0e49\u0e08\u0e30\u0e16\u0e39\u0e01\u0e25\u0e1a\u0e2d\u0e2d\u0e01\u0e08\u0e32\u0e01\u0e1a\u0e31\u0e0d\u0e0a\u0e35\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13
|
||||
recovery-codes-print=\u0e1e\u0e34\u0e21\u0e1e\u0e4c
|
||||
recovery-codes-download=\u0e14\u0e32\u0e27\u0e19\u0e4c\u0e42\u0e2b\u0e25\u0e14
|
||||
recovery-codes-copy=\u0e04\u0e31\u0e14\u0e25\u0e2d\u0e01
|
||||
recovery-codes-copied=\u0e04\u0e31\u0e14\u0e25\u0e2d\u0e01\u0e41\u0e25\u0e49\u0e27
|
||||
recovery-codes-confirmation-message=\u0e09\u0e31\u0e19\u0e44\u0e14\u0e49\u0e1a\u0e31\u0e19\u0e17\u0e36\u0e01\u0e23\u0e2b\u0e31\u0e2a\u0e40\u0e2b\u0e25\u0e48\u0e32\u0e19\u0e35\u0e49\u0e44\u0e27\u0e49\u0e43\u0e19\u0e17\u0e35\u0e48\u0e17\u0e35\u0e48\u0e1b\u0e25\u0e2d\u0e14\u0e20\u0e31\u0e22\u0e41\u0e25\u0e49\u0e27
|
||||
recovery-codes-action-complete=\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32\u0e40\u0e2a\u0e23\u0e47\u0e08\u0e2a\u0e21\u0e1a\u0e39\u0e23\u0e13\u0e4c
|
||||
recovery-codes-action-cancel=\u0e22\u0e01\u0e40\u0e25\u0e34\u0e01\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32
|
||||
recovery-codes-download-file-header=\u0e40\u0e01\u0e47\u0e1a\u0e23\u0e2b\u0e31\u0e2a\u0e01\u0e39\u0e49\u0e04\u0e37\u0e19\u0e40\u0e2b\u0e25\u0e48\u0e32\u0e19\u0e35\u0e49\u0e44\u0e27\u0e49\u0e43\u0e19\u0e17\u0e35\u0e48\u0e17\u0e35\u0e48\u0e1b\u0e25\u0e2d\u0e14\u0e20\u0e31\u0e22
|
||||
recovery-codes-download-file-description=\u0e23\u0e2b\u0e31\u0e2a\u0e01\u0e39\u0e49\u0e04\u0e37\u0e19\u0e04\u0e37\u0e2d\u0e23\u0e2b\u0e31\u0e2a\u0e1c\u0e48\u0e32\u0e19\u0e17\u0e35\u0e48\u0e43\u0e0a\u0e49\u0e44\u0e14\u0e49\u0e40\u0e1e\u0e35\u0e22\u0e07\u0e04\u0e23\u0e31\u0e49\u0e07\u0e40\u0e14\u0e35\u0e22\u0e27\u0e17\u0e35\u0e48\u0e08\u0e30\u0e0a\u0e48\u0e27\u0e22\u0e43\u0e2b\u0e49\u0e04\u0e38\u0e13\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e40\u0e02\u0e49\u0e32\u0e2a\u0e39\u0e48\u0e23\u0e30\u0e1a\u0e1a\u0e44\u0e14\u0e49\u0e2b\u0e32\u0e01\u0e04\u0e38\u0e13\u0e44\u0e21\u0e48\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e40\u0e02\u0e49\u0e32\u0e16\u0e36\u0e07 authenticator \u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13
|
||||
recovery-codes-download-file-date=\u0e23\u0e2b\u0e31\u0e2a\u0e40\u0e2b\u0e25\u0e48\u0e32\u0e19\u0e35\u0e49\u0e16\u0e39\u0e01\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e02\u0e36\u0e49\u0e19\u0e40\u0e21\u0e37\u0e48\u0e2d
|
||||
recovery-codes-label-default=\u0e23\u0e2b\u0e31\u0e2a\u0e01\u0e39\u0e49\u0e04\u0e37\u0e19
|
||||
webauthn-display-name=\u0e04\u0e35\u0e22\u0e4c\u0e23\u0e31\u0e01\u0e29\u0e32\u0e04\u0e27\u0e32\u0e21\u0e1b\u0e25\u0e2d\u0e14\u0e20\u0e31\u0e22
|
||||
webauthn-help-text=\u0e43\u0e0a\u0e49\u0e04\u0e35\u0e22\u0e4c\u0e23\u0e31\u0e01\u0e29\u0e32\u0e04\u0e27\u0e32\u0e21\u0e1b\u0e25\u0e2d\u0e14\u0e20\u0e31\u0e22\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e40\u0e02\u0e49\u0e32\u0e2a\u0e39\u0e48\u0e23\u0e30\u0e1a\u0e1a
|
||||
webauthn-passwordless-display-name=\u0e04\u0e35\u0e22\u0e4c\u0e23\u0e31\u0e01\u0e29\u0e32\u0e04\u0e27\u0e32\u0e21\u0e1b\u0e25\u0e2d\u0e14\u0e20\u0e31\u0e22
|
||||
webauthn-passwordless-help-text=\u0e43\u0e0a\u0e49\u0e04\u0e35\u0e22\u0e4c\u0e23\u0e31\u0e01\u0e29\u0e32\u0e04\u0e27\u0e32\u0e21\u0e1b\u0e25\u0e2d\u0e14\u0e20\u0e31\u0e22\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e40\u0e02\u0e49\u0e32\u0e2a\u0e39\u0e48\u0e23\u0e30\u0e1a\u0e1a\u0e42\u0e14\u0e22\u0e44\u0e21\u0e48\u0e15\u0e49\u0e2d\u0e07\u0e43\u0e0a\u0e49\u0e23\u0e2b\u0e31\u0e2a\u0e1c\u0e48\u0e32\u0e19
|
||||
webauthn-login-title=\u0e01\u0e32\u0e23\u0e40\u0e02\u0e49\u0e32\u0e2a\u0e39\u0e48\u0e23\u0e30\u0e1a\u0e1a\u0e14\u0e49\u0e27\u0e22\u0e04\u0e35\u0e22\u0e4c\u0e23\u0e31\u0e01\u0e29\u0e32\u0e04\u0e27\u0e32\u0e21\u0e1b\u0e25\u0e2d\u0e14\u0e20\u0e31\u0e22
|
||||
webauthn-registration-title=\u0e01\u0e32\u0e23\u0e25\u0e07\u0e17\u0e30\u0e40\u0e1a\u0e35\u0e22\u0e19\u0e04\u0e35\u0e22\u0e4c\u0e23\u0e31\u0e01\u0e29\u0e32\u0e04\u0e27\u0e32\u0e21\u0e1b\u0e25\u0e2d\u0e14\u0e20\u0e31\u0e22
|
||||
webauthn-available-authenticators=\u0e04\u0e35\u0e22\u0e4c\u0e23\u0e31\u0e01\u0e29\u0e32\u0e04\u0e27\u0e32\u0e21\u0e1b\u0e25\u0e2d\u0e14\u0e20\u0e31\u0e22\u0e17\u0e35\u0e48\u0e21\u0e35\u0e2d\u0e22\u0e39\u0e48
|
||||
webauthn-unsupported-browser-text=\u0e40\u0e27\u0e47\u0e1a\u0e40\u0e1a\u0e23\u0e32\u0e27\u0e4c\u0e40\u0e0b\u0e2d\u0e23\u0e4c\u0e19\u0e35\u0e49\u0e44\u0e21\u0e48\u0e2a\u0e19\u0e31\u0e1a\u0e2a\u0e19\u0e38\u0e19 WebAuthn \u0e25\u0e2d\u0e07\u0e43\u0e0a\u0e49\u0e40\u0e1a\u0e23\u0e32\u0e27\u0e4c\u0e40\u0e0b\u0e2d\u0e23\u0e4c\u0e2d\u0e37\u0e48\u0e19\u0e2b\u0e23\u0e37\u0e2d\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d\u0e1c\u0e39\u0e49\u0e14\u0e39\u0e41\u0e25\u0e23\u0e30\u0e1a\u0e1a\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13
|
||||
webauthn-doAuthenticate=\u0e40\u0e02\u0e49\u0e32\u0e2a\u0e39\u0e48\u0e23\u0e30\u0e1a\u0e1a\u0e14\u0e49\u0e27\u0e22\u0e04\u0e35\u0e22\u0e4c\u0e23\u0e31\u0e01\u0e29\u0e32\u0e04\u0e27\u0e32\u0e21\u0e1b\u0e25\u0e2d\u0e14\u0e20\u0e31\u0e22
|
||||
webauthn-createdAt-label=\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e41\u0e25\u0e49\u0e27
|
||||
webauthn-error-title=\u0e02\u0e49\u0e2d\u0e1c\u0e34\u0e14\u0e1e\u0e25\u0e32\u0e14\u0e02\u0e2d\u0e07\u0e04\u0e35\u0e22\u0e4c\u0e23\u0e31\u0e01\u0e29\u0e32\u0e04\u0e27\u0e32\u0e21\u0e1b\u0e25\u0e2d\u0e14\u0e20\u0e31\u0e22
|
||||
webauthn-error-registration=\u0e01\u0e32\u0e23\u0e25\u0e07\u0e17\u0e30\u0e40\u0e1a\u0e35\u0e22\u0e19\u0e04\u0e35\u0e22\u0e4c\u0e23\u0e31\u0e01\u0e29\u0e32\u0e04\u0e27\u0e32\u0e21\u0e1b\u0e25\u0e2d\u0e14\u0e20\u0e31\u0e22\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13\u0e44\u0e21\u0e48\u0e2a\u0e33\u0e40\u0e23\u0e47\u0e08<br/> {0}
|
||||
webauthn-error-api-get=\u0e01\u0e32\u0e23\u0e1e\u0e34\u0e2a\u0e39\u0e08\u0e19\u0e4c\u0e15\u0e31\u0e27\u0e08\u0e23\u0e34\u0e07\u0e42\u0e14\u0e22\u0e43\u0e0a\u0e49\u0e04\u0e35\u0e22\u0e4c\u0e23\u0e31\u0e01\u0e29\u0e32\u0e04\u0e27\u0e32\u0e21\u0e1b\u0e25\u0e2d\u0e14\u0e20\u0e31\u0e22\u0e44\u0e21\u0e48\u0e2a\u0e33\u0e40\u0e23\u0e47\u0e08<br/> {0}
|
||||
webauthn-error-different-user=\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e17\u0e35\u0e48\u0e1e\u0e34\u0e2a\u0e39\u0e08\u0e19\u0e4c\u0e15\u0e31\u0e27\u0e08\u0e23\u0e34\u0e07\u0e23\u0e32\u0e22\u0e41\u0e23\u0e01\u0e44\u0e21\u0e48\u0e43\u0e0a\u0e48\u0e23\u0e32\u0e22\u0e17\u0e35\u0e48\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e1e\u0e34\u0e2a\u0e39\u0e08\u0e19\u0e4c\u0e15\u0e31\u0e27\u0e08\u0e23\u0e34\u0e07\u0e08\u0e32\u0e01\u0e04\u0e35\u0e22\u0e4c\u0e23\u0e31\u0e01\u0e29\u0e32\u0e04\u0e27\u0e32\u0e21\u0e1b\u0e25\u0e2d\u0e14\u0e20\u0e31\u0e22
|
||||
webauthn-error-auth-verification=\u0e1c\u0e25\u0e01\u0e32\u0e23\u0e1e\u0e34\u0e2a\u0e39\u0e08\u0e19\u0e4c\u0e15\u0e31\u0e27\u0e08\u0e23\u0e34\u0e07\u0e02\u0e2d\u0e07\u0e04\u0e35\u0e22\u0e4c\u0e23\u0e31\u0e01\u0e29\u0e32\u0e04\u0e27\u0e32\u0e21\u0e1b\u0e25\u0e2d\u0e14\u0e20\u0e31\u0e22\u0e44\u0e21\u0e48\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07<br/> {0}
|
||||
webauthn-error-register-verification=\u0e1c\u0e25\u0e01\u0e32\u0e23\u0e25\u0e07\u0e17\u0e30\u0e40\u0e1a\u0e35\u0e22\u0e19\u0e02\u0e2d\u0e07\u0e04\u0e35\u0e22\u0e4c\u0e23\u0e31\u0e01\u0e29\u0e32\u0e04\u0e27\u0e32\u0e21\u0e1b\u0e25\u0e2d\u0e14\u0e20\u0e31\u0e22\u0e44\u0e21\u0e48\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07<br/> {0}
|
||||
webauthn-error-user-not-found=\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e17\u0e35\u0e48\u0e44\u0e21\u0e48\u0e23\u0e39\u0e49\u0e08\u0e31\u0e01\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e1e\u0e34\u0e2a\u0e39\u0e08\u0e19\u0e4c\u0e15\u0e31\u0e27\u0e08\u0e23\u0e34\u0e07\u0e08\u0e32\u0e01\u0e04\u0e35\u0e22\u0e4c\u0e23\u0e31\u0e01\u0e29\u0e32\u0e04\u0e27\u0e32\u0e21\u0e1b\u0e25\u0e2d\u0e14\u0e20\u0e31\u0e22
|
||||
identity-provider-redirector=\u0e40\u0e0a\u0e37\u0e48\u0e2d\u0e21\u0e15\u0e48\u0e2d\u0e01\u0e31\u0e1a\u0e1c\u0e39\u0e49\u0e43\u0e2b\u0e49\u0e1a\u0e23\u0e34\u0e01\u0e32\u0e23\u0e15\u0e31\u0e27\u0e15\u0e19\u0e2d\u0e37\u0e48\u0e19
|
||||
identity-provider-login-label=\u0e2b\u0e23\u0e37\u0e2d\u0e40\u0e02\u0e49\u0e32\u0e2a\u0e39\u0e48\u0e23\u0e30\u0e1a\u0e1a\u0e42\u0e14\u0e22\u0e43\u0e0a\u0e49
|
||||
idp-email-verification-display-name=\u0e01\u0e32\u0e23\u0e17\u0e27\u0e19\u0e2a\u0e2d\u0e1a\u0e2d\u0e35\u0e40\u0e21\u0e25
|
||||
idp-email-verification-help-text=\u0e40\u0e0a\u0e37\u0e48\u0e2d\u0e21\u0e42\u0e22\u0e07\u0e1a\u0e31\u0e0d\u0e0a\u0e35\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13\u0e42\u0e14\u0e22\u0e01\u0e32\u0e23\u0e17\u0e27\u0e19\u0e2a\u0e2d\u0e1a\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13
|
||||
idp-username-password-form-display-name=\u0e0a\u0e37\u0e48\u0e2d\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e41\u0e25\u0e30\u0e23\u0e2b\u0e31\u0e2a\u0e1c\u0e48\u0e32\u0e19
|
||||
idp-username-password-form-help-text=\u0e40\u0e0a\u0e37\u0e48\u0e2d\u0e21\u0e42\u0e22\u0e07\u0e1a\u0e31\u0e0d\u0e0a\u0e35\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13\u0e42\u0e14\u0e22\u0e40\u0e02\u0e49\u0e32\u0e2a\u0e39\u0e48\u0e23\u0e30\u0e1a\u0e1a
|
||||
finalDeletionConfirmation=\u0e2b\u0e32\u0e01\u0e04\u0e38\u0e13\u0e25\u0e1a\u0e1a\u0e31\u0e0d\u0e0a\u0e35\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13 \u0e08\u0e30\u0e44\u0e21\u0e48\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e01\u0e39\u0e49\u0e04\u0e37\u0e19\u0e44\u0e14\u0e49 \u0e2b\u0e32\u0e01\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e40\u0e01\u0e47\u0e1a\u0e1a\u0e31\u0e0d\u0e0a\u0e35\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13 \u0e43\u0e2b\u0e49\u0e04\u0e25\u0e34\u0e01\u0e22\u0e01\u0e40\u0e25\u0e34\u0e01
|
||||
irreversibleAction=\u0e01\u0e32\u0e23\u0e01\u0e23\u0e30\u0e17\u0e33\u0e19\u0e35\u0e49\u0e44\u0e21\u0e48\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e22\u0e49\u0e2d\u0e19\u0e01\u0e25\u0e31\u0e1a\u0e44\u0e14\u0e49
|
||||
deleteAccountConfirm=\u0e22\u0e37\u0e19\u0e22\u0e31\u0e19\u0e01\u0e32\u0e23\u0e25\u0e1a\u0e1a\u0e31\u0e0d\u0e0a\u0e35
|
||||
deletingImplies=\u0e01\u0e32\u0e23\u0e25\u0e1a\u0e1a\u0e31\u0e0d\u0e0a\u0e35\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13\u0e2b\u0e21\u0e32\u0e22\u0e16\u0e36\u0e07\:
|
||||
errasingData=\u0e01\u0e32\u0e23\u0e25\u0e1a\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13
|
||||
loggingOutImmediately=\u0e01\u0e32\u0e23\u0e2d\u0e2d\u0e01\u0e08\u0e32\u0e01\u0e23\u0e30\u0e1a\u0e1a\u0e43\u0e19\u0e17\u0e31\u0e19\u0e17\u0e35
|
||||
accountUnusable=\u0e44\u0e21\u0e48\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e43\u0e0a\u0e49\u0e41\u0e2d\u0e1b\u0e1e\u0e25\u0e34\u0e40\u0e04\u0e0a\u0e31\u0e19\u0e42\u0e14\u0e22\u0e43\u0e0a\u0e49\u0e1a\u0e31\u0e0d\u0e0a\u0e35\u0e19\u0e35\u0e49\u0e44\u0e14\u0e49
|
||||
userDeletedSuccessfully=\u0e25\u0e1a\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e2a\u0e33\u0e40\u0e23\u0e47\u0e08\u0e41\u0e25\u0e49\u0e27
|
||||
access-denied=\u0e1b\u0e0f\u0e34\u0e40\u0e2a\u0e18\u0e01\u0e32\u0e23\u0e40\u0e02\u0e49\u0e32\u0e16\u0e36\u0e07
|
||||
access-denied-when-idp-auth=\u0e01\u0e32\u0e23\u0e40\u0e02\u0e49\u0e32\u0e16\u0e36\u0e07\u0e16\u0e39\u0e01\u0e1b\u0e0f\u0e34\u0e40\u0e2a\u0e18\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e1e\u0e34\u0e2a\u0e39\u0e08\u0e19\u0e4c\u0e15\u0e31\u0e27\u0e08\u0e23\u0e34\u0e07\u0e14\u0e49\u0e27\u0e22 {0}
|
||||
frontchannel-logout.title=\u0e01\u0e33\u0e25\u0e31\u0e07\u0e2d\u0e2d\u0e01\u0e08\u0e32\u0e01\u0e23\u0e30\u0e1a\u0e1a
|
||||
frontchannel-logout.message=\u0e04\u0e38\u0e13\u0e01\u0e33\u0e25\u0e31\u0e07\u0e2d\u0e2d\u0e01\u0e08\u0e32\u0e01\u0e23\u0e30\u0e1a\u0e1a\u0e08\u0e32\u0e01\u0e41\u0e2d\u0e1b\u0e1e\u0e25\u0e34\u0e40\u0e04\u0e0a\u0e31\u0e19\u0e15\u0e48\u0e2d\u0e44\u0e1b\u0e19\u0e35\u0e49
|
||||
logoutConfirmTitle=\u0e01\u0e33\u0e25\u0e31\u0e07\u0e2d\u0e2d\u0e01\u0e08\u0e32\u0e01\u0e23\u0e30\u0e1a\u0e1a
|
||||
logoutConfirmHeader=\u0e04\u0e38\u0e13\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e2d\u0e2d\u0e01\u0e08\u0e32\u0e01\u0e23\u0e30\u0e1a\u0e1a\u0e2b\u0e23\u0e37\u0e2d\u0e44\u0e21\u0e48?
|
||||
doLogout=\u0e2d\u0e2d\u0e01\u0e08\u0e32\u0e01\u0e23\u0e30\u0e1a\u0e1a
|
||||
readOnlyUsernameMessage=\u0e04\u0e38\u0e13\u0e44\u0e21\u0e48\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e1b\u0e23\u0e31\u0e1a\u0e1b\u0e23\u0e38\u0e07\u0e0a\u0e37\u0e48\u0e2d\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13\u0e40\u0e19\u0e37\u0e48\u0e2d\u0e07\u0e08\u0e32\u0e01\u0e40\u0e1b\u0e47\u0e19\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e41\u0e1a\u0e1a\u0e2d\u0e48\u0e32\u0e19\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e40\u0e14\u0e35\u0e22\u0e27
|
||||
shouldBeEqual={0} \u0e04\u0e27\u0e23\u0e40\u0e17\u0e48\u0e32\u0e01\u0e31\u0e1a {1}
|
||||
shouldBeDifferent={0} \u0e04\u0e27\u0e23\u0e41\u0e15\u0e01\u0e15\u0e48\u0e32\u0e07\u0e08\u0e32\u0e01 {1}
|
||||
shouldMatchPattern=\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a\u0e04\u0e27\u0e23\u0e15\u0e23\u0e07\u0e01\u0e31\u0e1a\: `/{0}/`
|
||||
mustBeAnInteger=\u0e15\u0e49\u0e2d\u0e07\u0e40\u0e1b\u0e47\u0e19\u0e08\u0e33\u0e19\u0e27\u0e19\u0e40\u0e15\u0e47\u0e21
|
||||
notAValidOption=\u0e44\u0e21\u0e48\u0e43\u0e0a\u0e48\u0e15\u0e31\u0e27\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e17\u0e35\u0e48\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07
|
||||
selectAnOption=\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e15\u0e31\u0e27\u0e40\u0e25\u0e37\u0e2d\u0e01
|
||||
remove=\u0e25\u0e1a
|
||||
addValue=\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e04\u0e48\u0e32
|
||||
languages=\u0e20\u0e32\u0e29\u0e32
|
@ -0,0 +1,268 @@
|
||||
|
||||
doLogIn=Oturum a\u00e7
|
||||
doRegister=Kay\u0131t ol
|
||||
doRegisterSecurityKey=Kay\u0131t ol
|
||||
doCancel=\u0130ptal et
|
||||
doSubmit=G\u00f6nder
|
||||
doYes=Evet
|
||||
doNo=Hay\u0131r
|
||||
doContinue=Devam et
|
||||
doIgnore=Yoksay
|
||||
doAccept=Kabul Et
|
||||
doDecline=Reddet
|
||||
doForgotPassword=Parolan\u0131z\u0131 m\u0131 unuttunuz?
|
||||
doClickHere=Buraya T\u0131klay\u0131n
|
||||
doImpersonate=Ki\u015fiselle\u015ftir
|
||||
kerberosNotConfigured=Kerberos Tan\u0131mlanmam\u0131\u015f
|
||||
kerberosNotConfiguredTitle=Kerberos Tan\u0131mlanmam\u0131\u015f
|
||||
bypassKerberosDetail=Ya Kerberos ile giri\u015f yapmad\u0131n\u0131z veya taray\u0131c\u0131n\u0131z Kerberos giri\u015f i\u00e7in ayarlanmam\u0131\u015f. Di\u011fer yollarla giri\u015f yapmak i\u00e7in l\u00fctfen devam''a t\u0131klay\u0131n
|
||||
kerberosNotSetUp=Kerberos kurulmad\u0131. Giri\u015f yapamazs\u0131n.
|
||||
registerTitle=Kay\u0131t ol
|
||||
loginTitle={0} adresinde oturum a\u00e7\u0131n
|
||||
loginTitleHtml={0}
|
||||
impersonateTitle={0} Kullan\u0131c\u0131 kimli\u011fine b\u00fcr\u00fcn
|
||||
impersonateTitleHtml=<strong>{0}</strong> Kullan\u0131c\u0131 kimli\u011fine b\u00fcr\u00fcn
|
||||
realmChoice=Realm
|
||||
unknownUser=Bilinmeyen kullan\u0131c\u0131
|
||||
loginTotpTitle=Mobil Kimlik Do\u011frulama Kurulumu
|
||||
loginProfileTitle=Hesap bilgilerini G\u00fcncelle
|
||||
loginTimeout=Giri\u015f yapmak \u00e7ok uzun s\u00fcrd\u00fc. Giri\u015f s\u00fcreci ba\u015ftan ba\u015flayacak.
|
||||
oauthGrantTitle={0} adresine Eri\u015fim Ver
|
||||
oauthGrantTitleHtml={0}
|
||||
errorTitle=\u00dczg\u00fcn\u00fcz...
|
||||
errorTitleHtml=<strong>\u00dczg\u00fcn\u00fcz ...</strong>
|
||||
emailVerifyTitle=Eposta Do\u011frulama
|
||||
emailForgotTitle=Parolan\u0131z\u0131 m\u0131 unuttunuz?
|
||||
updatePasswordTitle=\u015eifre g\u00fcncelle
|
||||
codeSuccessTitle=Ba\u015far\u0131l\u0131 i\u015flem kodu
|
||||
codeErrorTitle=Hatal\u0131 i\u015flem kodu\: {0}
|
||||
displayUnsupported=\u0130stenen g\u00f6sterim t\u00fcr\u00fc desteklenmiyor
|
||||
browserRequired=Giri\u015f i\u00e7in tary\u0131c\u0131 gerekli
|
||||
browserContinue=Giri\u015fe devam etmek i\u00e7in taray\u0131c\u0131 gerekli
|
||||
browserContinuePrompt=Taray\u0131c\u0131 a\u00e7 ve giri\u015fe devam et? [e/h]\:
|
||||
browserContinueAnswer=h
|
||||
termsTitle=\u015eartlar ve ko\u015fullar
|
||||
termsText=
|
||||
termsPlainText=Tan\u0131mlanacak \u015fartlar ve ko\u015fullar.
|
||||
recaptchaFailed=Ge\u00e7ersiz Recaptcha
|
||||
recaptchaNotConfigured=Recaptcha gerekli, ancak yap\u0131land\u0131r\u0131lmam\u0131\u015f
|
||||
consentDenied=Onay reddedildi.
|
||||
noAccount=Yeni kullan\u0131c\u0131?
|
||||
username=Kullan\u0131c\u0131 Ad\u0131
|
||||
usernameOrEmail=Kullan\u0131c\u0131 ad\u0131 veya E-mail
|
||||
firstName=Ad
|
||||
givenName=Ad
|
||||
fullName=Ad Soyad
|
||||
lastName=Soyad
|
||||
familyName=Soyad
|
||||
email=E-Mail
|
||||
password=\u015eifre
|
||||
passwordConfirm=\u015eifre Do\u011frulama
|
||||
passwordNew=Yeni \u015eifre
|
||||
passwordNewConfirm=eni \u015eifre Do\u011frulama
|
||||
rememberMe=Beni Hat\u0131rla
|
||||
authenticatorCode=Kimlik Do\u011frulama Kodu
|
||||
address=Adres
|
||||
street=Cadde
|
||||
locality=Semt
|
||||
region=B\u00f6lge
|
||||
postal_code=Posta Kodu
|
||||
country=\u00dclke
|
||||
emailVerified=E-Mail Do\u011fruland\u0131
|
||||
gssDelegationCredential=GSS Yetki Bilgisi
|
||||
profileScopeConsentText=Kullan\u0131c\u0131 profili
|
||||
emailScopeConsentText=E-Mai Adresi
|
||||
addressScopeConsentText=Adres
|
||||
phoneScopeConsentText=Telefon Numaras\u0131
|
||||
offlineAccessScopeConsentText=\u00c7evrimd\u0131\u015f\u0131 Eri\u015fim
|
||||
samlRoleListScopeConsentText=Rollerim
|
||||
rolesScopeConsentText=Kullan\u0131c\u0131 rolleri
|
||||
loginTotpIntro=Bu hesaba eri\u015fmek i\u00e7in bir Tek Kullan\u0131ml\u0131k \u015eifre olu\u015fturmal\u0131s\u0131n\u0131z.
|
||||
loginTotpStep1=Cep telefonunuzda a\u015fa\u011f\u0131daki uygulamalardan birini y\u00fckleyin
|
||||
loginTotpStep2=Uygulamay\u0131 a\u00e7\u0131n ve barkodu taray\u0131n
|
||||
loginTotpStep3=Uygulama taraf\u0131ndan sa\u011flanan tek seferlik kodu girin ve kurulumu tamamlamak i\u00e7in G\u00f6nder''i t\u0131klay\u0131n.
|
||||
loginTotpManualStep2=Uygulamay\u0131 a\u00e7\u0131n ve anahtar\u0131 girin
|
||||
loginTotpManualStep3=Uygulama bunlar\u0131 ayarlamaya izin veriyorsa a\u015fa\u011f\u0131daki yap\u0131land\u0131rma de\u011ferlerini kullan\u0131n.
|
||||
loginTotpUnableToScan=Taranam\u0131yor?
|
||||
loginTotpScanBarcode=Barkod tara?
|
||||
loginOtpOneTime=Tek seferlik kod
|
||||
loginTotpType=Tip
|
||||
loginTotpAlgorithm=Algoritma
|
||||
loginTotpDigits=Basamak
|
||||
loginTotpInterval=Aral\u0131k
|
||||
loginTotpCounter=Saya\u00e7
|
||||
loginTotp.totp=Zaman Tabanl\u0131
|
||||
loginTotp.hotp=Saya\u00e7 Tabanl\u0131
|
||||
oauthGrantRequest=Bu eri\u015fim ayr\u0131cal\u0131klar\u0131 veriyor musunuz?
|
||||
inResource=i\u00e7inde
|
||||
emailVerifyInstruction1=E-posta adresinizi do\u011frulamak i\u00e7in talimatlar\u0131 i\u00e7eren bir e-posta size g\u00f6nderildi.
|
||||
emailVerifyInstruction2=E-postan\u0131zda do\u011frulama kodu almad\u0131n\u0131z m\u0131?
|
||||
emailVerifyInstruction3=e-postay\u0131 yeniden g\u00f6ndermek i\u00e7in.
|
||||
emailLinkIdpTitle=Ba\u011flant\u0131 {0}
|
||||
emailLinkIdp1={1} hesab\u0131n\u0131 {2} hesab\u0131n\u0131za ba\u011flayan talimatlar\u0131 i\u00e7eren bir e-posta size g\u00f6nderildi.
|
||||
emailLinkIdp2=E-postan\u0131zda do\u011frulama kodu almad\u0131n\u0131z m\u0131?
|
||||
emailLinkIdp3=e-postay\u0131 yeniden g\u00f6ndermek i\u00e7in.
|
||||
emailLinkIdp4=E-postay\u0131 farkl\u0131 taray\u0131c\u0131da zaten do\u011frulad\u0131ysan\u0131z
|
||||
emailLinkIdp5=devam etmek.
|
||||
backToLogin=« Giri\u015f''e geri d\u00f6n
|
||||
emailInstruction=Kullan\u0131c\u0131 ad\u0131n\u0131z\u0131 veya e-posta adresinizi girin ve yeni bir \u015fifre olu\u015fturmaya ili\u015fkin talimatlar\u0131 size g\u00f6nderece\u011fiz.
|
||||
copyCodeInstruction=L\u00fctfen bu kodu kopyalay\u0131n ve uygulaman\u0131za yap\u0131\u015ft\u0131r\u0131n\:
|
||||
pageExpiredTitle=Sayfan\u0131n S\u00fcresi Doldu
|
||||
pageExpiredMsg1=Giri\u015f i\u015flemini yeniden ba\u015flatmak i\u00e7in
|
||||
pageExpiredMsg2=Giri\u015f i\u015flemine devam etmek i\u00e7in
|
||||
personalInfo=Ki\u015fisel bilgi\:
|
||||
role_admin=Admin
|
||||
role_realm-admin=Realm Admin
|
||||
role_create-realm=Realm Olu\u015ftur
|
||||
role_create-client=Create client
|
||||
role_view-realm=Realm g\u00f6r\u00fcnt\u00fcle
|
||||
role_view-users=Kullan\u0131c\u0131 g\u00f6r\u00fcnt\u00fcle
|
||||
role_view-applications=Uygulamar\u0131 g\u00f6r
|
||||
role_view-clients=Clients g\u00f6r\u00fcnt\u00fcle
|
||||
role_view-events=Events g\u00f6r\u00fcnt\u00fcle
|
||||
role_view-identity-providers=Kimlik sa\u011flay\u0131c\u0131lar\u0131n\u0131 g\u00f6r\u00fcnt\u00fcle
|
||||
role_manage-realm=Realm Y\u00f6net
|
||||
role_manage-users=Kullan\u0131c\u0131lar\u0131 Y\u00f6net
|
||||
role_manage-applications=Uygulamalar\u0131 Y\u00f6net
|
||||
role_manage-identity-providers=Kimlik Sa\u011flay\u0131c\u0131lar\u0131n\u0131 Y\u00f6net
|
||||
role_manage-clients=Clients Y\u00f6net
|
||||
role_manage-events=Events Y\u00f6net
|
||||
role_view-profile=Profil g\u00f6r\u00fcnt\u00fcle
|
||||
role_manage-account=Hesap Y\u00f6net
|
||||
role_manage-account-links=Hesap ba\u011flant\u0131lar\u0131n\u0131 y\u00f6net
|
||||
role_read-token=Token oku
|
||||
role_offline-access=\u00c7evrimd\u0131\u015f\u0131 eri\u015fim
|
||||
client_account=Hesap
|
||||
client_security-admin-console=G\u00fcvenlik Y\u00f6netici Konsolu
|
||||
client_admin-cli=Admin CLI
|
||||
client_realm-management=Realm Y\u00f6net
|
||||
client_broker=Broker
|
||||
invalidUserMessage=Ge\u00e7ersiz kullan\u0131c\u0131 ad\u0131 veya \u015fifre.
|
||||
invalidEmailMessage=Ge\u00e7ersiz e-posta adresi.
|
||||
accountDisabledMessage=Hesap devre d\u0131\u015f\u0131, y\u00f6netici ile ileti\u015fime ge\u00e7in.
|
||||
accountTemporarilyDisabledMessage=Hesab\u0131n\u0131z ge\u00e7ici olarak kilitlendi, l\u00fctfen y\u00f6neticiyle ileti\u015fime ge\u00e7in veya daha sonra tekrar deneyin.
|
||||
expiredCodeMessage=Oturum zaman a\u015f\u0131m\u0131na u\u011frad\u0131. L\u00fctfen tekrar giri\u015f yap\u0131n.
|
||||
expiredActionMessage=Eylem s\u00fcresi doldu. L\u00fctfen \u015fimdi giri\u015f yapmaya devam edin.
|
||||
expiredActionTokenNoSessionMessage=Eylemin s\u00fcresi doldu.
|
||||
expiredActionTokenSessionExistsMessage=Eylem s\u00fcresi doldu. L\u00fctfen tekrar ba\u015flay\u0131n.
|
||||
missingFirstNameMessage=L\u00fctfen ilk ad\u0131 belirtin.
|
||||
missingLastNameMessage=L\u00fctfen soyad\u0131 belirtin.
|
||||
missingEmailMessage=L\u00fctfen email belirtin.
|
||||
missingUsernameMessage=L\u00fctfen kullan\u0131c\u0131 ad\u0131n\u0131 belirtin.
|
||||
missingPasswordMessage=L\u00fctfen \u015fifre belirtin.
|
||||
missingTotpMessage=L\u00fctfen kimlik do\u011frulama kodunu belirtin.
|
||||
notMatchPasswordMessage=\u015eifreler e\u015fle\u015fmiyor.
|
||||
invalidPasswordExistingMessage=Mevcut \u015fifre ge\u00e7ersiz.
|
||||
invalidPasswordBlacklistedMessage=Ge\u00e7ersiz \u015fifre\: \u015fifre kara listeye al\u0131nd\u0131.
|
||||
invalidPasswordConfirmMessage=\u015eifre onay\u0131 e\u015fle\u015fmiyor.
|
||||
invalidTotpMessage=Ge\u00e7ersiz kimlik do\u011frulama kodu.
|
||||
usernameExistsMessage=Kullan\u0131c\u0131 ad\u0131 zaten var.
|
||||
emailExistsMessage=Bu e-posta zaten var.
|
||||
federatedIdentityExistsMessage={0} {1} kullan\u0131c\u0131 zaten var. Hesab\u0131 ba\u011flamak i\u00e7in l\u00fctfen hesap y\u00f6netimine giri\u015f yap\u0131n.
|
||||
confirmLinkIdpTitle=Bu Hesap Zaten Mevcut
|
||||
federatedIdentityConfirmLinkMessage={0} {1} kullan\u0131c\u0131 zaten var. Nas\u0131l devam etmek istersin?
|
||||
confirmLinkIdpReviewProfile=Profili g\u00f6zden ge\u00e7ir
|
||||
confirmLinkIdpContinue=Mevcut hesaba ekle
|
||||
configureTotpMessage=Hesab\u0131n\u0131z\u0131 etkinle\u015ftirmek i\u00e7in Mobil Kimlik Do\u011frulama''y\u0131 ayarlaman\u0131z gerekiyor.
|
||||
updateProfileMessage=Hesab\u0131n\u0131z\u0131 etkinle\u015ftirmek i\u00e7in kullan\u0131c\u0131 profilinizi g\u00fcncellemeniz gerekiyor.
|
||||
updatePasswordMessage=Hesab\u0131n\u0131z\u0131 etkinle\u015ftirmek i\u00e7in \u015fifrenizi de\u011fi\u015ftirmeniz gerekiyor.
|
||||
resetPasswordMessage=\u015eifreni de\u011fi\u015ftirmelisin.
|
||||
verifyEmailMessage=Hesab\u0131n\u0131z\u0131 etkinle\u015ftirmek i\u00e7in e-posta adresinizi do\u011frulaman\u0131z gerekiyor.
|
||||
linkIdpMessage=Hesab\u0131n\u0131z\u0131 {0} ile ba\u011flamak i\u00e7in e-posta adresinizi do\u011frulaman\u0131z gerekiyor.
|
||||
emailSentMessage=Daha fazla talimatla k\u0131sa s\u00fcrede bir e-posta almal\u0131s\u0131n\u0131z.
|
||||
emailSendErrorMessage=E-posta g\u00f6nderilemedi, l\u00fctfen daha sonra tekrar deneyin.
|
||||
accountUpdatedMessage=Hesab\u0131n g\u00fcncellendi.
|
||||
accountPasswordUpdatedMessage=\u015eifreniz g\u00fcncellenmi\u015ftir.
|
||||
delegationCompleteHeader=Giri\u015f ba\u015far\u0131l\u0131
|
||||
delegationCompleteMessage=Bu taray\u0131c\u0131 penceresini kapatabilir ve konsol uygulaman\u0131za geri d\u00f6nebilirsiniz.
|
||||
delegationFailedHeader=Giri\u015f ba\u015far\u0131s\u0131z
|
||||
delegationFailedMessage=Bu taray\u0131c\u0131 penceresini kapatabilir ve konsol uygulaman\u0131za geri d\u00f6n\u00fcp tekrar giri\u015f yapmay\u0131 deneyebilirsiniz..
|
||||
noAccessMessage=Eri\u015fim yok
|
||||
invalidPasswordMinLengthMessage=Ge\u00e7ersiz \u015eifre\: En az {0} karakter uzunlu\u011funda olmal\u0131.
|
||||
invalidPasswordMinDigitsMessage=Ge\u00e7ersiz \u015eifre\: En az {0} say\u0131(lar) i\u00e7ermelidir.
|
||||
invalidPasswordMinLowerCaseCharsMessage=Ge\u00e7ersiz \u015eifre \: En az {0} k\u00fc\u00e7\u00fck harf i\u00e7ermelidir.
|
||||
invalidPasswordMinUpperCaseCharsMessage=Ge\u00e7ersiz \u015eifre\: En az {0} b\u00fcy\u00fck harf i\u00e7ermelidir.
|
||||
invalidPasswordMinSpecialCharsMessage=Ge\u00e7ersiz \u015eifre\: En az {0} \u00f6zel karakter i\u00e7ermelidir.
|
||||
invalidPasswordNotUsernameMessage=Ge\u00e7ersiz \u015eifre\: Kullan\u0131c\u0131 ad\u0131yla ayn\u0131 olamaz.
|
||||
invalidPasswordRegexPatternMessage=Ge\u00e7ersiz \u015eifre\: Regex Patternine uygun de\u011fil.
|
||||
invalidPasswordHistoryMessage=Ge\u00e7ersiz \u015eifre\: Son {0} \u015fifreden biri olamaz.
|
||||
invalidPasswordGenericMessage=Ge\u00e7ersiz \u015eifre\: yeni \u015fifre \u015fifre politikalar\u0131yla e\u015fle\u015fmiyor.
|
||||
failedToProcessResponseMessage=Yan\u0131t i\u015flenemedi
|
||||
httpsRequiredMessage=HTTPS zorunlu
|
||||
realmNotEnabledMessage=Realm aktif de\u011fil
|
||||
invalidRequestMessage=Ge\u00e7ersiz \u0130stek
|
||||
failedLogout=\u00c7\u0131k\u0131\u015f ba\u015far\u0131s\u0131z
|
||||
unknownLoginRequesterMessage=Bilinmeyen giri\u015f iste\u011fi
|
||||
loginRequesterNotEnabledMessage=Giri\u015f istemi etkin de\u011fil
|
||||
bearerOnlyMessage=Yaln\u0131zca ta\u015f\u0131y\u0131c\u0131 uygulamalar\u0131 taray\u0131c\u0131 giri\u015fini ba\u015flatmaya izinli de\u011fil
|
||||
standardFlowDisabledMessage=Client is not allowed to initiate browser login with given response_type. Standard flow is disabled for the client.
|
||||
implicitFlowDisabledMessage=Client is not allowed to initiate browser login with given response_type. Implicit flow is disabled for the client.
|
||||
invalidRedirectUriMessage=Ge\u00e7ersiz y\u00f6nlendirme url''i
|
||||
unsupportedNameIdFormatMessage=Desteklenmeyen NameIDFormat
|
||||
invalidRequesterMessage=Ge\u00e7ersiz istek
|
||||
registrationNotAllowedMessage=Kay\u0131t yap\u0131lamaz
|
||||
resetCredentialNotAllowedMessage=S\u0131f\u0131rlamas\u0131na izin verilmiyor
|
||||
permissionNotApprovedMessage=\u0130zin onaylanmad\u0131.
|
||||
noRelayStateInResponseMessage=Kimlik sa\u011flay\u0131c\u0131dan yan\u0131t olarak ge\u00e7i\u015f durumu yok.
|
||||
insufficientPermissionMessage=Kimliklerin ba\u011flanmas\u0131 i\u00e7in yetersiz izinler.
|
||||
couldNotProceedWithAuthenticationRequestMessage=Kimlik sa\u011flay\u0131c\u0131ya kimlik do\u011frulama iste\u011fi ile devam edilemedi.
|
||||
couldNotObtainTokenMessage=Kimlik sa\u011flay\u0131c\u0131dan token al\u0131namad\u0131.
|
||||
unexpectedErrorRetrievingTokenMessage=Kimlik sa\u011flay\u0131c\u0131dan token al\u0131rken beklenmeyen bir hata olu\u015ftu.
|
||||
unexpectedErrorHandlingResponseMessage=Kimlik sa\u011flay\u0131c\u0131dan yan\u0131t al\u0131n\u0131rken beklenmeyen bir hata olu\u015ftu.
|
||||
identityProviderAuthenticationFailedMessage=Kimlik do\u011frulama ba\u015far\u0131s\u0131z oldu. Kimlik sa\u011flay\u0131c\u0131yla kimlik do\u011frulamas\u0131 yap\u0131lamad\u0131.
|
||||
couldNotSendAuthenticationRequestMessage=Kimlik sa\u011flay\u0131c\u0131ya kimlik do\u011frulama iste\u011fi g\u00f6nderilemedi.
|
||||
unexpectedErrorHandlingRequestMessage=Kimlik sa\u011flay\u0131c\u0131ya kimlik do\u011frulama iste\u011fi i\u015flenirken beklenmeyen bir hata olu\u015ftu.
|
||||
invalidAccessCodeMessage=Ge\u00e7ersiz giri\u015f kodu.
|
||||
sessionNotActiveMessage=Oturum etkin de\u011fil.
|
||||
invalidCodeMessage=Bir hata olu\u015ftu, l\u00fctfen ba\u015fvurunuz arac\u0131l\u0131\u011f\u0131yla tekrar giri\u015f yap\u0131n.
|
||||
identityProviderUnexpectedErrorMessage=Kimlik sa\u011flay\u0131c\u0131yla kimlik do\u011frulamas\u0131 yap\u0131l\u0131rken beklenmeyen bir hata olu\u015ftu
|
||||
identityProviderNotFoundMessage=Tan\u0131mlay\u0131c\u0131 ile kimlik sa\u011flay\u0131c\u0131 bulunamad\u0131.
|
||||
identityProviderLinkSuccess=E-postan\u0131z\u0131 ba\u015far\u0131yla do\u011frulad\u0131n\u0131z. L\u00fctfen orijinal taray\u0131c\u0131n\u0131za geri d\u00f6n\u00fcn ve giri\u015f yap\u0131n.
|
||||
staleCodeMessage=Bu sayfa art\u0131k ge\u00e7erli de\u011fil, l\u00fctfen uygulaman\u0131za geri d\u00f6n\u00fcn ve tekrar giri\u015f yap\u0131n
|
||||
realmSupportsNoCredentialsMessage=Realm herhangi bir kimlik bilgisi t\u00fcr\u00fcn\u00fc desteklemiyor.
|
||||
identityProviderNotUniqueMessage=Realm \u00e7oklu kimlik sa\u011flay\u0131c\u0131lar\u0131n\u0131 destekler. Kimlik do\u011frulamak i\u00e7in hangi kimlik sa\u011flay\u0131c\u0131s\u0131n\u0131n kullan\u0131lmas\u0131 gerekti\u011fini belirleyemedi.
|
||||
emailVerifiedMessage=E-posta adresiniz do\u011fruland\u0131.
|
||||
staleEmailVerificationLink=T\u0131klad\u0131\u011f\u0131n\u0131z ba\u011flant\u0131 eski bir ba\u011flant\u0131d\u0131r ve art\u0131k ge\u00e7erli de\u011fil. Belki de e-postan\u0131z\u0131 zaten do\u011frulad\u0131n\u0131z.
|
||||
identityProviderAlreadyLinkedMessage={0} taraf\u0131ndan d\u00f6nd\u00fcr\u00fclen birle\u015fik kimlik, ba\u015fka bir kullan\u0131c\u0131yla zaten ba\u011flant\u0131l\u0131.
|
||||
confirmAccountLinking={1} kimlik sa\u011flay\u0131c\u0131s\u0131n\u0131n hesab\u0131n\u0131 {0} hesab\u0131n\u0131zla ili\u015fkilendirmeyi onaylay\u0131n.
|
||||
confirmEmailAddressVerification={0} e-posta adresinin ge\u00e7erlili\u011fini onaylay\u0131n.
|
||||
confirmExecutionOfActions=A\u015fa\u011f\u0131daki eylemleri ger\u00e7ekle\u015ftirin
|
||||
backToApplication=« Uygulamaya D\u00f6n
|
||||
missingParameterMessage=Eksik parametreler\: {0}
|
||||
clientNotFoundMessage=\u0130stemci Bulunamad\u0131.
|
||||
clientDisabledMessage=\u0130stemci engelli.
|
||||
invalidParameterMessage=Ge\u00e7ersiz Paremetreler\: {0}
|
||||
alreadyLoggedIn=Zaten giri\u015f yapt\u0131n\u0131z.
|
||||
differentUserAuthenticated=Bu oturumda zaten farkl\u0131 kullan\u0131c\u0131 '' {0} '' olarak do\u011frulanm\u0131\u015fs\u0131n\u0131z. L\u00fctfen \u00f6nce \u00e7\u0131k\u0131\u015f yap\u0131n\u0131z.
|
||||
brokerLinkingSessionExpired=\u0130stenen broker hesab\u0131 ba\u011flan\u0131yor, ancak mevcut oturum art\u0131k ge\u00e7erli de\u011fil.
|
||||
proceedWithAction=\u00bb Devam etmek i\u00e7in buraya t\u0131klay\u0131n
|
||||
requiredAction.CONFIGURE_TOTP=OTP Ayarla
|
||||
requiredAction.TERMS_AND_CONDITIONS=\u015eartlar ve Ko\u015fullar
|
||||
requiredAction.UPDATE_PASSWORD=\u015eifre g\u00fcncelle
|
||||
requiredAction.UPDATE_PROFILE=Profili G\u00fcncelle
|
||||
requiredAction.VERIFY_EMAIL=E-mail''i do\u011frula
|
||||
doX509Login=Olarak giri\u015f yapacaks\u0131n\u0131z\:
|
||||
clientCertificate=X509 istemci sertifikas\u0131\:
|
||||
noCertificate=[Sertifika Yok]
|
||||
pageNotFound=Sayfa Bulunamad\u0131
|
||||
internalServerError=Bir i\u00e7 sunucu hatas\u0131 olu\u015ftu
|
||||
console-username=Kullan\u0131c\u0131 ad\u0131\:
|
||||
console-password=Parola\:
|
||||
console-otp=Tek seferlik \u015fifre\:
|
||||
console-new-password=Yeni \u015fifre\:
|
||||
console-confirm-password=\u015eifreyi Onayla\:
|
||||
console-update-password=\u015eifrenizin g\u00fcncellenmesi gerekiyor.
|
||||
console-verify-email=E-posta adresinizi do\u011frulaman\u0131z gerekiyor. Bir do\u011frulama kodu i\u00e7eren {0} adresine bir e-posta g\u00f6nderildi. L\u00fctfen bu kodu a\u015fa\u011f\u0131daki girdiye giriniz.
|
||||
console-email-code=E-posta Kodu\:
|
||||
console-accept-terms=\u015eartlar\u0131 kabul et? [e/h]\:
|
||||
console-accept=e
|
||||
readOnlyUsernameMessage=Yazma korumal\u0131 oldu\u011fundan kullan\u0131c\u0131 ad\u0131n\u0131z\u0131 de\u011fi\u015ftiremezsiniz.
|
||||
shouldBeEqual={0} {1} e\u015fit olmal\u0131d\u0131r
|
||||
shouldBeDifferent={0} {1} farkl\u0131 olmal\u0131d\u0131r
|
||||
shouldMatchPattern=Desen e\u015fle\u015fmelidir\: `/{0}/`
|
||||
mustBeAnInteger=Tam say\u0131 olmal\u0131d\u0131r
|
||||
notAValidOption=Ge\u00e7erli bir se\u00e7enek de\u011fil
|
||||
selectAnOption=Bir se\u00e7enek se\u00e7in
|
||||
remove=Kald\u0131r
|
||||
addValue=De\u011fer ekle
|
||||
languages=Diller
|
@ -0,0 +1,440 @@
|
||||
|
||||
doLogIn=\u0423\u0432\u0456\u0439\u0442\u0438
|
||||
doRegister=\u0417\u0430\u0440\u0435\u0454\u0441\u0442\u0440\u0443\u0432\u0430\u0442\u0438\u0441\u044f
|
||||
doRegisterSecurityKey=\u0417\u0430\u0440\u0435\u0454\u0441\u0442\u0440\u0443\u0432\u0430\u0442\u0438\u0441\u044f
|
||||
doCancel=\u0421\u043a\u0430\u0441\u0443\u0432\u0430\u0442\u0438
|
||||
doSubmit=\u041d\u0430\u0434\u0456\u0441\u043b\u0430\u0442\u0438
|
||||
doBack=\u041d\u0430\u0437\u0430\u0434
|
||||
doYes=\u0422\u0430\u043a
|
||||
doNo=\u041d\u0456
|
||||
doContinue=\u041f\u0440\u043e\u0434\u043e\u0432\u0436\u0438\u0442\u0438
|
||||
doIgnore=\u0406\u0433\u043d\u043e\u0440\u0443\u0432\u0430\u0442\u0438
|
||||
doAccept=\u041f\u0440\u0438\u0439\u043d\u044f\u0442\u0438
|
||||
doDecline=\u0412\u0456\u0434\u0445\u0438\u043b\u0438\u0442\u0438
|
||||
doForgotPassword=\u0417\u0430\u0431\u0443\u043b\u0438 \u043f\u0430\u0440\u043e\u043b\u044c?
|
||||
doClickHere=\u041d\u0430\u0442\u0438\u0441\u043d\u0456\u0442\u044c \u0442\u0443\u0442
|
||||
doImpersonate=\u0406\u043c\u043f\u0435\u0440\u0441\u043e\u043d\u0430\u043b\u0456\u0437\u0443\u0432\u0430\u0442\u0438\u0441\u044f
|
||||
doTryAgain=\u0421\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0437\u043d\u043e\u0432\u0443
|
||||
doTryAnotherWay=\u0421\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0456\u043d\u0448\u0438\u0439 \u0441\u043f\u043e\u0441\u0456\u0431
|
||||
doConfirmDelete=\u041f\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0438 \u0432\u0438\u0434\u0430\u043b\u0435\u043d\u043d\u044f
|
||||
errorDeletingAccount=\u041f\u0456\u0434 \u0447\u0430\u0441 \u0432\u0438\u0434\u0430\u043b\u0435\u043d\u043d\u044f \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u043e\u0433\u043e \u0437\u0430\u043f\u0438\u0441\u0443 \u0441\u0442\u0430\u043b\u0430\u0441\u044f \u043f\u043e\u043c\u0438\u043b\u043a\u0430
|
||||
deletingAccountForbidden=\u0423 \u0432\u0430\u0441 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043d\u044c\u043e \u043f\u0440\u0430\u0432 \u0434\u043b\u044f \u0432\u0438\u0434\u0430\u043b\u0435\u043d\u043d\u044f \u0432\u043b\u0430\u0441\u043d\u043e\u0433\u043e \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u043e\u0433\u043e \u0437\u0430\u043f\u0438\u0441\u0443, \u0437\u0432\u0435\u0440\u043d\u0456\u0442\u044c\u0441\u044f \u0434\u043e \u0430\u0434\u043c\u0456\u043d\u0456\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430.
|
||||
kerberosNotConfigured=Kerberos \u043d\u0435 \u043d\u0430\u043b\u0430\u0448\u0442\u043e\u0432\u0430\u043d\u043e
|
||||
kerberosNotConfiguredTitle=Kerberos \u043d\u0435 \u043d\u0430\u043b\u0430\u0448\u0442\u043e\u0432\u0430\u043d\u043e
|
||||
bypassKerberosDetail=\u0410\u0431\u043e \u0432\u0438 \u043d\u0435 \u0432\u0432\u0456\u0439\u0448\u043b\u0438 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0447\u0435\u0440\u0435\u0437 Kerberos, \u0430\u0431\u043e \u0432\u0430\u0448 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u043d\u0435 \u043d\u0430\u043b\u0430\u0448\u0442\u043e\u0432\u0430\u043d\u0438\u0439 \u0434\u043b\u044f \u0432\u0445\u043e\u0434\u0443 \u0447\u0435\u0440\u0435\u0437 Kerberos. \u041d\u0430\u0442\u0438\u0441\u043d\u0456\u0442\u044c \u00ab\u041f\u0440\u043e\u0434\u043e\u0432\u0436\u0438\u0442\u0438\u00bb, \u0449\u043e\u0431 \u0443\u0432\u0456\u0439\u0442\u0438 \u0456\u043d\u0448\u0438\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c
|
||||
kerberosNotSetUp=Kerberos \u043d\u0435 \u043d\u0430\u043b\u0430\u0448\u0442\u043e\u0432\u0430\u043d\u043e. \u0412\u0438 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u0443\u0432\u0456\u0439\u0442\u0438.
|
||||
registerTitle=\u0417\u0430\u0440\u0435\u0454\u0441\u0442\u0440\u0443\u0432\u0430\u0442\u0438\u0441\u044f
|
||||
loginAccountTitle=\u0423\u0432\u0456\u0439\u0434\u0456\u0442\u044c \u0443 \u0441\u0432\u0456\u0439 \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u0438\u0439 \u0437\u0430\u043f\u0438\u0441
|
||||
loginTitle=\u0423\u0432\u0456\u0439\u0442\u0438 \u0432 {0}
|
||||
loginTitleHtml={0}
|
||||
impersonateTitle={0} \u0412\u0438\u0434\u0430\u0432\u0430\u0442\u0438 \u0441\u0435\u0431\u0435 \u0437\u0430 \u043a\u043e\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430
|
||||
impersonateTitleHtml=<strong>{0}</strong> \u0412\u0438\u0434\u0430\u0432\u0430\u0442\u0438 \u0441\u0435\u0431\u0435 \u0437\u0430 \u043a\u043e\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430
|
||||
realmChoice=Realm
|
||||
unknownUser=\u041d\u0435\u0432\u0456\u0434\u043e\u043c\u0438\u0439 \u043a\u043e\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447
|
||||
loginTotpTitle=\u041d\u0430\u043b\u0430\u0448\u0442\u0443\u0432\u0430\u043d\u043d\u044f \u043c\u043e\u0431\u0456\u043b\u044c\u043d\u043e\u0433\u043e \u0430\u0432\u0442\u0435\u043d\u0442\u0438\u0444\u0456\u043a\u0430\u0442\u043e\u0440\u0430
|
||||
loginProfileTitle=\u041e\u043d\u043e\u0432\u0438\u0442\u0438 \u0456\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0456\u044e \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u043e\u0433\u043e \u0437\u0430\u043f\u0438\u0441\u0443
|
||||
loginIdpReviewProfileTitle=\u041e\u043d\u043e\u0432\u0438\u0442\u0438 \u0456\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0456\u044e \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u043e\u0433\u043e \u0437\u0430\u043f\u0438\u0441\u0443
|
||||
loginTimeout=\u0427\u0430\u0441 \u043e\u0447\u0456\u043a\u0443\u0432\u0430\u043d\u043d\u044f \u0432\u0430\u0448\u043e\u0457 \u0441\u043f\u0440\u043e\u0431\u0438 \u0432\u0445\u043e\u0434\u0443 \u043c\u0438\u043d\u0443\u0432. \u0412\u0445\u0456\u0434 \u043f\u043e\u0447\u043d\u0435\u0442\u044c\u0441\u044f \u0437 \u043f\u043e\u0447\u0430\u0442\u043a\u0443.
|
||||
reauthenticate=\u0411\u0443\u0434\u044c \u043b\u0430\u0441\u043a\u0430, \u043f\u0440\u043e\u0439\u0434\u0456\u0442\u044c \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u0443 \u0430\u0432\u0442\u0435\u043d\u0442\u0438\u0444\u0456\u043a\u0430\u0446\u0456\u044e, \u0449\u043e\u0431 \u043f\u0440\u043e\u0434\u043e\u0432\u0436\u0438\u0442\u0438
|
||||
oauthGrantTitle=\u041d\u0430\u0434\u0430\u0442\u0438 \u0434\u043e\u0441\u0442\u0443\u043f \u0434\u043e {0}
|
||||
oauthGrantTitleHtml={0}
|
||||
oauthGrantInformation=\u041f\u0435\u0440\u0435\u043a\u043e\u043d\u0430\u0439\u0442\u0435\u0441\u044f, \u0449\u043e \u0412\u0438 \u0434\u043e\u0432\u0456\u0440\u044f\u0454\u0442\u0435 {0}, \u0434\u0456\u0437\u043d\u0430\u0432\u0448\u0438\u0441\u044c, \u044f\u043a {0} \u043e\u0431\u0440\u043e\u0431\u043b\u044f\u0442\u0438\u043c\u0435 \u0412\u0430\u0448\u0456 \u0434\u0430\u043d\u0456.
|
||||
oauthGrantReview=\u0412\u0438 \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u0435\u0440\u0435\u0433\u043b\u044f\u043d\u0443\u0442\u0438
|
||||
oauthGrantTos=\u0443\u043c\u043e\u0432\u0438 \u043e\u0431\u0441\u043b\u0443\u0433\u043e\u0432\u0443\u0432\u0430\u043d\u043d\u044f.
|
||||
oauthGrantPolicy=\u043f\u043e\u043b\u0456\u0442\u0438\u043a\u0430 \u043a\u043e\u043d\u0444\u0456\u0434\u0435\u043d\u0446\u0456\u0439\u043d\u043e\u0441\u0442\u0456.
|
||||
errorTitle=\u041d\u0430\u043c \u0448\u043a\u043e\u0434\u0430...
|
||||
errorTitleHtml=<strong>\u0412\u0438\u0431\u0430\u0447\u0442\u0435</strong> ...
|
||||
emailVerifyTitle=\u041f\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u0436\u0435\u043d\u043d\u044f \u0435\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0457 \u043f\u043e\u0448\u0442\u0438
|
||||
emailForgotTitle=\u0417\u0430\u0431\u0443\u043b\u0438 \u043f\u0430\u0440\u043e\u043b\u044c?
|
||||
updateEmailTitle=\u041e\u043d\u043e\u0432\u0438\u0442\u0438 \u0430\u0434\u0440\u0435\u0441\u0443 \u0435\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0457 \u043f\u043e\u0448\u0442\u0438
|
||||
emailUpdateConfirmationSentTitle=\u0415\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u0438\u0439 \u043b\u0438\u0441\u0442 \u0456\u0437 \u043f\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u0436\u0435\u043d\u043d\u044f\u043c \u043d\u0430\u0434\u0456\u0441\u043b\u0430\u043d\u043e
|
||||
emailUpdateConfirmationSent=\u0415\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u0438\u0439 \u043b\u0438\u0441\u0442 \u0456\u0437 \u043f\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u0436\u0435\u043d\u043d\u044f\u043c \u043d\u0430\u0434\u0456\u0441\u043b\u0430\u043d\u043e \u043d\u0430 \u0430\u0434\u0440\u0435\u0441\u0443 {0}. \u0421\u043b\u0456\u0434\u0443\u0439\u0442\u0435 \u0432\u043a\u0430\u0437\u0456\u0432\u043a\u0430\u043c, \u0449\u043e\u0431 \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u0438 \u043e\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044f \u0430\u0434\u0440\u0435\u0441\u0438 \u0435\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0457 \u043f\u043e\u0448\u0442\u0438.
|
||||
emailUpdatedTitle=\u0410\u0434\u0440\u0435\u0441\u0430 \u0435\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0457 \u043f\u043e\u0448\u0442\u0438 \u043e\u043d\u043e\u0432\u043b\u0435\u043d\u0430
|
||||
emailUpdated=\u0415\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u0430 \u0430\u0434\u0440\u0435\u0441\u0430 \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u043e\u0433\u043e \u0437\u0430\u043f\u0438\u0441\u0443 \u0431\u0443\u043b\u0430 \u0443\u0441\u043f\u0456\u0448\u043d\u043e \u043e\u043d\u043e\u0432\u043b\u0435\u043d\u0430 \u043d\u0430 {0}.
|
||||
updatePasswordTitle=\u041e\u043d\u043e\u0432\u0438\u0442\u0438 \u043f\u0430\u0440\u043e\u043b\u044c
|
||||
codeSuccessTitle=\u041a\u043e\u0434 \u0443\u0441\u043f\u0456\u0445\u0443
|
||||
codeErrorTitle=\u041a\u043e\u0434 \u043f\u043e\u043c\u0438\u043b\u043a\u0438\: {0}
|
||||
displayUnsupported=\u0417\u0430\u043f\u0438\u0442\u0443\u0432\u0430\u043d\u0438\u0439 \u0442\u0438\u043f \u0434\u0438\u0441\u043f\u043b\u0435\u044f \u043d\u0435 \u043f\u0456\u0434\u0442\u0440\u0438\u043c\u0443\u0454\u0442\u044c\u0441\u044f
|
||||
browserRequired=\u0411\u0440\u0430\u0443\u0437\u0435\u0440 \u043f\u043e\u0442\u0440\u0456\u0431\u0435\u043d \u0434\u043b\u044f \u0432\u0445\u043e\u0434\u0443
|
||||
browserContinue=\u0411\u0440\u0430\u0443\u0437\u0435\u0440 \u043f\u043e\u0442\u0440\u0456\u0431\u0435\u043d \u0434\u043b\u044f \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u044f \u0432\u0445\u043e\u0434\u0443
|
||||
browserContinuePrompt=\u0412\u0456\u0434\u043a\u0440\u0438\u0442\u0438 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u0456 \u043f\u0440\u043e\u0434\u043e\u0432\u0436\u0438\u0442\u0438 \u0432\u0445\u0456\u0434? [y/n]\:
|
||||
browserContinueAnswer=y
|
||||
termsTitle=\u0423\u043c\u043e\u0432\u0438
|
||||
termsText=
|
||||
termsPlainText=\u041f\u043e\u043b\u043e\u0436\u0435\u043d\u043d\u044f \u0442\u0430 \u0443\u043c\u043e\u0432\u0438, \u044f\u043a\u0456 \u0431\u0443\u0434\u0443\u0442\u044c \u0432\u0438\u0437\u043d\u0430\u0447\u0435\u043d\u0456.
|
||||
termsAcceptanceRequired=\u0412\u0438 \u043f\u043e\u0432\u0438\u043d\u043d\u0456 \u043f\u043e\u0433\u043e\u0434\u0438\u0442\u0438\u0441\u044f \u0437 \u0443\u043c\u043e\u0432\u0430\u043c\u0438.
|
||||
acceptTerms=\u042f \u043f\u043e\u0433\u043e\u0434\u0436\u0443\u044e\u0441\u044c \u0437 \u0443\u043c\u043e\u0432\u0430\u043c\u0438
|
||||
recaptchaFailed=\u041d\u0435\u0434\u0456\u0439\u0441\u043d\u0438\u0439 Recaptcha
|
||||
recaptchaNotConfigured=Recaptcha \u043f\u043e\u0442\u0440\u0456\u0431\u043d\u0430, \u0430\u043b\u0435 \u043d\u0435 \u043d\u0430\u043b\u0430\u0448\u0442\u043e\u0432\u0430\u043d\u0430
|
||||
consentDenied=\u0417\u0433\u043e\u0434\u0430 \u0432\u0456\u0434\u0445\u0438\u043b\u0435\u043d\u0430.
|
||||
noAccount=\u041d\u043e\u0432\u0438\u0439 \u043a\u043e\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447?
|
||||
username=\u0406\u043c''\u044f \u043a\u043e\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430
|
||||
usernameOrEmail=\u0406\u043c''\u044f \u043a\u043e\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430 \u0430\u0431\u043e \u0435\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u0430 \u043f\u043e\u0448\u0442\u0430
|
||||
firstName=\u0406\u043c''\u044f
|
||||
givenName=\u0406\u043c''\u044f
|
||||
fullName=\u041f\u043e\u0432\u043d\u0435 \u0456\u043c''\u044f
|
||||
lastName=\u041f\u0440\u0456\u0437\u0432\u0438\u0449\u0435
|
||||
familyName=\u041f\u0440\u0456\u0437\u0432\u0438\u0449\u0435
|
||||
email=\u0415\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u0430 \u043f\u043e\u0448\u0442\u0430
|
||||
password=\u041f\u0430\u0440\u043e\u043b\u044c
|
||||
passwordConfirm=\u041f\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0438 \u043f\u0430\u0440\u043e\u043b\u044c
|
||||
passwordNew=\u041d\u043e\u0432\u0438\u0439 \u043f\u0430\u0440\u043e\u043b\u044c
|
||||
passwordNewConfirm=\u041d\u043e\u0432\u0435 \u043f\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u0436\u0435\u043d\u043d\u044f \u043f\u0430\u0440\u043e\u043b\u044f
|
||||
hidePassword=\u041f\u0440\u0438\u0445\u043e\u0432\u0430\u0442\u0438 \u043f\u0430\u0440\u043e\u043b\u044c
|
||||
showPassword=\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u0438 \u043f\u0430\u0440\u043e\u043b\u044c
|
||||
rememberMe=\u0417\u0430\u043f\u0430\u043c''\u044f\u0442\u0430\u0442\u0438 \u043c\u0435\u043d\u0435
|
||||
authenticatorCode=\u041e\u0434\u043d\u043e\u0440\u0430\u0437\u043e\u0432\u0438\u0439 \u043a\u043e\u0434
|
||||
address=\u0410\u0434\u0440\u0435\u0441\u0430
|
||||
street=\u0412\u0443\u043b\u0438\u0446\u044f
|
||||
locality=\u041c\u0456\u0441\u0442\u043e
|
||||
region=\u041e\u0431\u043b\u0430\u0441\u0442\u044c
|
||||
postal_code=\u041f\u043e\u0448\u0442\u043e\u0432\u0438\u0439 \u0456\u043d\u0434\u0435\u043a\u0441
|
||||
country=\u041a\u0440\u0430\u0457\u043d\u0430
|
||||
emailVerified=\u0410\u0434\u0440\u0435\u0441\u0430 \u0435\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0457 \u043f\u043e\u0448\u0442\u0438 \u043f\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u0436\u0435\u043d\u0430
|
||||
website=\u0412\u0435\u0431-\u0441\u0442\u043e\u0440\u0456\u043d\u043a\u0430
|
||||
phoneNumber=\u041d\u043e\u043c\u0435\u0440 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0443
|
||||
phoneNumberVerified=\u041d\u043e\u043c\u0435\u0440 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0443 \u043f\u0435\u0440\u0435\u0432\u0456\u0440\u0435\u043d\u043e
|
||||
gender=\u0421\u0442\u0430\u0442\u044c
|
||||
birthday=\u0414\u0430\u0442\u0430 \u043d\u0430\u0440\u043e\u0434\u0436\u0435\u043d\u043d\u044f
|
||||
zoneinfo=\u0427\u0430\u0441\u043e\u0432\u0438\u0439 \u043f\u043e\u044f\u0441
|
||||
gssDelegationCredential=\u041e\u0431\u043b\u0456\u043a\u043e\u0432\u0456 \u0434\u0430\u043d\u0456 \u0434\u0435\u043b\u0435\u0433\u0443\u0432\u0430\u043d\u043d\u044f GSS
|
||||
logoutOtherSessions=\u0412\u0438\u0439\u0442\u0438 \u0437 \u0456\u043d\u0448\u0438\u0445 \u043f\u0440\u0438\u0441\u0442\u0440\u043e\u0457\u0432
|
||||
profileScopeConsentText=\u041f\u0440\u043e\u0444\u0456\u043b\u044c \u043a\u043e\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430
|
||||
emailScopeConsentText=\u0410\u0434\u0440\u0435\u0441\u0430 \u0435\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0457 \u043f\u043e\u0448\u0442\u0438
|
||||
addressScopeConsentText=\u0410\u0434\u0440\u0435\u0441\u0430
|
||||
phoneScopeConsentText=\u041d\u043e\u043c\u0435\u0440 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0443
|
||||
offlineAccessScopeConsentText=\u0414\u043e\u0441\u0442\u0443\u043f \u043e\u0444\u043b\u0430\u0439\u043d
|
||||
samlRoleListScopeConsentText=\u041c\u043e\u0457 \u0440\u043e\u043b\u0456
|
||||
rolesScopeConsentText=\u0420\u043e\u043b\u0456 \u043a\u043e\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430
|
||||
restartLoginTooltip=\u041f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0438 \u0432\u0445\u0456\u0434
|
||||
loginTotpIntro=\u0412\u0430\u043c \u043f\u043e\u0442\u0440\u0456\u0431\u043d\u043e \u043d\u0430\u043b\u0430\u0448\u0442\u0443\u0432\u0430\u0442\u0438 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u043e\u0434\u043d\u043e\u0440\u0430\u0437\u043e\u0432\u0438\u0445 \u043f\u0430\u0440\u043e\u043b\u0456\u0432 \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0443 \u0434\u043e \u0446\u044c\u043e\u0433\u043e \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u043e\u0433\u043e \u0437\u0430\u043f\u0438\u0441\u0443
|
||||
loginTotpStep1=\u0412\u0441\u0442\u0430\u043d\u043e\u0432\u0456\u0442\u044c \u043d\u0430 \u0441\u0432\u0456\u0439 \u043c\u043e\u0431\u0456\u043b\u044c\u043d\u0438\u0439 \u0442\u0435\u043b\u0435\u0444\u043e\u043d \u043e\u0434\u0438\u043d \u0456\u0437 \u043d\u0430\u0441\u0442\u0443\u043f\u043d\u0438\u0445 \u0437\u0430\u0441\u0442\u043e\u0441\u0443\u043d\u043a\u0456\u0432\:
|
||||
loginTotpStep2=\u0412\u0456\u0434\u043a\u0440\u0438\u0439\u0442\u0435 \u0437\u0430\u0441\u0442\u043e\u0441\u0443\u043d\u043e\u043a \u0442\u0430 \u0432\u0456\u0434\u0441\u043a\u0430\u043d\u0443\u0439\u0442\u0435 \u0448\u0442\u0440\u0438\u0445-\u043a\u043e\u0434\:
|
||||
loginTotpStep3=\u0412\u0432\u0435\u0434\u0456\u0442\u044c \u043e\u0434\u043d\u043e\u0440\u0430\u0437\u043e\u0432\u0438\u0439 \u043a\u043e\u0434, \u043d\u0430\u0434\u0430\u043d\u0438\u0439 \u0437\u0430\u0441\u0442\u043e\u0441\u0443\u043d\u043a\u043e\u043c, \u0456 \u043d\u0430\u0442\u0438\u0441\u043d\u0456\u0442\u044c "\u041d\u0430\u0434\u0456\u0441\u043b\u0430\u0442\u0438", \u0449\u043e\u0431 \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u0438 \u043d\u0430\u043b\u0430\u0448\u0442\u0443\u0432\u0430\u043d\u043d\u044f.
|
||||
loginTotpStep3DeviceName=\u0412\u0432\u0435\u0434\u0456\u0442\u044c \u043d\u0430\u0437\u0432\u0443 \u043f\u0440\u0438\u0441\u0442\u0440\u043e\u044e, \u0449\u043e\u0431 \u0434\u043e\u043f\u043e\u043c\u043e\u0433\u0442\u0438 \u0432\u0430\u043c \u043a\u0435\u0440\u0443\u0432\u0430\u0442\u0438 \u043f\u0440\u0438\u0441\u0442\u0440\u043e\u044f\u043c\u0438 OTP.
|
||||
loginTotpManualStep2=\u0412\u0456\u0434\u043a\u0440\u0438\u0439\u0442\u0435 \u0437\u0430\u0441\u0442\u043e\u0441\u0443\u043d\u043e\u043a \u0442\u0430 \u0432\u0432\u0435\u0434\u0456\u0442\u044c \u043a\u043b\u044e\u0447\:
|
||||
loginTotpManualStep3=\u0412\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u043e\u0432\u0443\u0439\u0442\u0435 \u0442\u0430\u043a\u0456 \u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044f \u043a\u043e\u043d\u0444\u0456\u0433\u0443\u0440\u0430\u0446\u0456\u0457, \u044f\u043a\u0449\u043e \u0437\u0430\u0441\u0442\u043e\u0441\u0443\u043d\u043e\u043a \u0434\u043e\u0437\u0432\u043e\u043b\u044f\u0454 \u0457\u0445 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443\:
|
||||
loginTotpUnableToScan=\u041d\u0435\u043c\u043e\u0436\u043b\u0438\u0432\u043e \u0441\u043a\u0430\u043d\u0443\u0432\u0430\u0442\u0438?
|
||||
loginTotpScanBarcode=\u0421\u043a\u0430\u043d\u0443\u0432\u0430\u0442\u0438 \u0448\u0442\u0440\u0438\u0445-\u043a\u043e\u0434?
|
||||
loginCredential=\u041e\u0431\u043b\u0456\u043a\u043e\u0432\u0456 \u0434\u0430\u043d\u0456
|
||||
loginOtpOneTime=\u041e\u0434\u043d\u043e\u0440\u0430\u0437\u043e\u0432\u0438\u0439 \u043a\u043e\u0434
|
||||
loginTotpType=\u0422\u0438\u043f
|
||||
loginTotpAlgorithm=\u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c
|
||||
loginTotpDigits=\u0426\u0438\u0444\u0440\u0438
|
||||
loginTotpInterval=\u0406\u043d\u0442\u0435\u0440\u0432\u0430\u043b
|
||||
loginTotpCounter=\u041b\u0456\u0447\u0438\u043b\u044c\u043d\u0438\u043a
|
||||
loginTotpDeviceName=\u041d\u0430\u0437\u0432\u0430 \u043f\u0440\u0438\u0441\u0442\u0440\u043e\u044e
|
||||
loginTotp.totp=\u041d\u0430 \u043e\u0441\u043d\u043e\u0432\u0456 \u0447\u0430\u0441\u0443
|
||||
loginTotp.hotp=\u041d\u0430 \u043e\u0441\u043d\u043e\u0432\u0456 \u043b\u0456\u0447\u0438\u043b\u044c\u043d\u0438\u043a\u0430
|
||||
totpAppFreeOTPName=\u0411\u0435\u0437\u043a\u043e\u0448\u0442\u043e\u0432\u043d\u0438\u0439 OTP
|
||||
totpAppGoogleName=\u0410\u0432\u0442\u0435\u043d\u0442\u0438\u0444\u0456\u043a\u0430\u0442\u043e\u0440 Google
|
||||
totpAppMicrosoftAuthenticatorName=\u0410\u0432\u0442\u0435\u043d\u0442\u0438\u0444\u0456\u043a\u0430\u0442\u043e\u0440 Microsoft
|
||||
loginChooseAuthenticator=\u0412\u0438\u0431\u0435\u0440\u0456\u0442\u044c \u043c\u0435\u0442\u043e\u0434 \u0432\u0445\u043e\u0434\u0443
|
||||
oauthGrantRequest=\u0412\u0438 \u0437\u0433\u043e\u0434\u043d\u0456 \u043d\u0430\u0434\u0430\u0442\u0438 \u0446\u0456 \u043f\u0440\u0438\u0432\u0456\u043b\u0435\u0457 \u0434\u043e\u0441\u0442\u0443\u043f\u0443?
|
||||
inResource=\u0443
|
||||
oauth2DeviceVerificationTitle=\u0412\u0445\u0456\u0434 \u043d\u0430 \u043f\u0440\u0438\u0441\u0442\u0440\u0456\u0439
|
||||
verifyOAuth2DeviceUserCode=\u0412\u0432\u0435\u0434\u0456\u0442\u044c \u043a\u043e\u0434, \u043d\u0430\u0434\u0430\u043d\u0438\u0439 \u0412\u0430\u0448\u0438\u043c \u043f\u0440\u0438\u0441\u0442\u0440\u043e\u0454\u043c, \u0456 \u043d\u0430\u0442\u0438\u0441\u043d\u0456\u0442\u044c "\u041d\u0430\u0434\u0456\u0441\u043b\u0430\u0442\u0438"
|
||||
oauth2DeviceInvalidUserCodeMessage=\u041d\u0435\u0434\u0456\u0439\u0441\u043d\u0438\u0439 \u043a\u043e\u0434, \u0441\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0449\u0435 \u0440\u0430\u0437.
|
||||
oauth2DeviceExpiredUserCodeMessage=\u0422\u0435\u0440\u043c\u0456\u043d \u0434\u0456\u0457 \u043a\u043e\u0434\u0443 \u043c\u0438\u043d\u0443\u0432. \u041f\u043e\u0432\u0435\u0440\u043d\u0456\u0442\u044c\u0441\u044f \u0434\u043e \u0441\u0432\u043e\u0433\u043e \u043f\u0440\u0438\u0441\u0442\u0440\u043e\u044e \u0442\u0430 \u0441\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u043f\u0456\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u0438\u0441\u044f \u0437\u043d\u043e\u0432\u0443.
|
||||
oauth2DeviceVerificationCompleteHeader=\u0423\u0441\u043f\u0456\u0448\u043d\u0438\u0439 \u0432\u0445\u0456\u0434 \u043d\u0430 \u043f\u0440\u0438\u0441\u0442\u0440\u0456\u0439
|
||||
oauth2DeviceVerificationCompleteMessage=\u0412\u0438 \u043c\u043e\u0436\u0435\u0442\u0435 \u0437\u0430\u043a\u0440\u0438\u0442\u0438 \u0446\u0435 \u0432\u0456\u043a\u043d\u043e \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430 \u0442\u0430 \u043f\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u0438\u0441\u044f \u0434\u043e \u0441\u0432\u043e\u0433\u043e \u043f\u0440\u0438\u0441\u0442\u0440\u043e\u044e.
|
||||
oauth2DeviceVerificationFailedHeader=\u041f\u043e\u043c\u0438\u043b\u043a\u0430 \u0432\u0445\u043e\u0434\u0443 \u043d\u0430 \u043f\u0440\u0438\u0441\u0442\u0440\u0456\u0439
|
||||
oauth2DeviceVerificationFailedMessage=\u0412\u0438 \u043c\u043e\u0436\u0435\u0442\u0435 \u0437\u0430\u043a\u0440\u0438\u0442\u0438 \u0446\u0435 \u0432\u0456\u043a\u043d\u043e \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430, \u043f\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u0438\u0441\u044f \u0434\u043e \u0441\u0432\u043e\u0433\u043e \u043f\u0440\u0438\u0441\u0442\u0440\u043e\u044e \u0442\u0430 \u0441\u043f\u0440\u043e\u0431\u0443\u0432\u0430\u0442\u0438 \u043f\u0456\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u0438\u0441\u044f \u0437\u043d\u043e\u0432\u0443.
|
||||
oauth2DeviceConsentDeniedMessage=\u0417\u0433\u043e\u0434\u0430 \u043d\u0430 \u043f\u0456\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044f \u043f\u0440\u0438\u0441\u0442\u0440\u043e\u044e \u0432\u0456\u0434\u043c\u043e\u0432\u043b\u0435\u043d\u0430.
|
||||
oauth2DeviceAuthorizationGrantDisabledMessage=\u041a\u043b\u0456\u0454\u043d\u0442\u0443 \u043d\u0435 \u0434\u043e\u0437\u0432\u043e\u043b\u0435\u043d\u043e \u0456\u043d\u0456\u0446\u0456\u044e\u0432\u0430\u0442\u0438 \u0434\u043e\u0437\u0432\u0456\u043b \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0456\u0457 \u043f\u0440\u0438\u0441\u0442\u0440\u043e\u044e OAuth 2.0. \u0426\u0435\u0439 \u043f\u0440\u043e\u0446\u0435\u0441 \u0432\u0438\u043c\u043a\u043d\u0435\u043d\u043e \u0434\u043b\u044f \u043a\u043b\u0456\u0454\u043d\u0442\u0430.
|
||||
emailVerifyInstruction1=\u0415\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u0438\u0439 \u043b\u0438\u0441\u0442 \u0437 \u0456\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0456\u044f\u043c\u0438 \u0449\u043e\u0434\u043e \u043f\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u0436\u0435\u043d\u043d\u044f \u0412\u0430\u0448\u043e\u0457 \u0430\u0434\u0440\u0435\u0441\u0438 \u0435\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0457 \u043f\u043e\u0448\u0442\u0438 \u0431\u0443\u043b\u043e \u043d\u0430\u0434\u0456\u0441\u043b\u0430\u043d\u043e \u043d\u0430 \u0412\u0430\u0448\u0443 \u0430\u0434\u0440\u0435\u0441\u0443 {0}.
|
||||
emailVerifyInstruction2=\u041d\u0435 \u043e\u0442\u0440\u0438\u043c\u0430\u043b\u0438 \u043a\u043e\u0434 \u043f\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u0436\u0435\u043d\u043d\u044f \u043d\u0430 \u0432\u0430\u0448\u0443 \u0435\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u0443 \u043f\u043e\u0448\u0442\u0443?
|
||||
emailVerifyInstruction3=\u0449\u043e\u0431 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e \u043d\u0430\u0434\u0456\u0441\u043b\u0430\u0442\u0438 \u0435\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u0438\u0439 \u043b\u0438\u0441\u0442.
|
||||
emailLinkIdpTitle=\u041f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f {0}
|
||||
emailLinkIdp1=\u0412\u0430\u043c \u0431\u0443\u0432 \u043d\u0430\u0434\u0456\u0441\u043b\u0430\u043d\u0438\u0439 \u0435\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u0438\u0439 \u043b\u0438\u0441\u0442 \u0437 \u0456\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0456\u044f\u043c\u0438 \u0449\u043e\u0434\u043e \u0437\u0432''\u044f\u0437\u0443\u0432\u0430\u043d\u043d\u044f \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u043e\u0433\u043e \u0437\u0430\u043f\u0438\u0441\u0443 {0} {1} \u0437 \u0432\u0430\u0448\u0438\u043c \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u0438\u043c \u0437\u0430\u043f\u0438\u0441\u043e\u043c {2}.
|
||||
emailLinkIdp2=\u041d\u0435 \u043e\u0442\u0440\u0438\u043c\u0430\u043b\u0438 \u043a\u043e\u0434 \u043f\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u0436\u0435\u043d\u043d\u044f \u043d\u0430 \u0432\u0430\u0448\u0443 \u0435\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u0443 \u043f\u043e\u0448\u0442\u0443?
|
||||
emailLinkIdp3=\u0434\u043b\u044f \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0433\u043e \u0432\u0456\u0434\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044f \u043b\u0438\u0441\u0442\u0430.
|
||||
emailLinkIdp4=\u042f\u043a\u0449\u043e \u0432\u0438 \u0432\u0436\u0435 \u043f\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u043b\u0438 \u0435\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u0443 \u0430\u0434\u0440\u0435\u0441\u0443 \u0432 \u0456\u043d\u0448\u043e\u043c\u0443 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0456
|
||||
emailLinkIdp5=\u0434\u043b\u044f \u043f\u0440\u043e\u0434\u043e\u0432\u0436\u0435\u043d\u043d\u044f.
|
||||
backToLogin=« \u041d\u0430\u0437\u0430\u0434 \u0434\u043e \u0432\u0445\u043e\u0434\u0443
|
||||
emailInstruction=\u0412\u0432\u0435\u0434\u0456\u0442\u044c \u0441\u0432\u043e\u0454 \u0456\u043c''\u044f \u043a\u043e\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430 \u0430\u0431\u043e \u0430\u0434\u0440\u0435\u0441\u0443 \u0435\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0457 \u043f\u043e\u0448\u0442\u0438, \u0456 \u043c\u0438 \u043d\u0430\u0434\u0456\u0448\u043b\u0435\u043c\u043e \u0412\u0430\u043c \u0456\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0456\u0457 \u0449\u043e\u0434\u043e \u0441\u0442\u0432\u043e\u0440\u0435\u043d\u043d\u044f \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u0430\u0440\u043e\u043b\u044f.
|
||||
emailInstructionUsername=\u0412\u0432\u0435\u0434\u0456\u0442\u044c \u0441\u0432\u043e\u0454 \u0456\u043c''\u044f \u043a\u043e\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430, \u0456 \u043c\u0438 \u043d\u0430\u0434\u0456\u0448\u043b\u0435\u043c\u043e \u0412\u0430\u043c \u0456\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0456\u0457 \u0449\u043e\u0434\u043e \u0441\u0442\u0432\u043e\u0440\u0435\u043d\u043d\u044f \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u0430\u0440\u043e\u043b\u044f.
|
||||
copyCodeInstruction=\u0411\u0443\u0434\u044c \u043b\u0430\u0441\u043a\u0430, \u0441\u043a\u043e\u043f\u0456\u044e\u0439\u0442\u0435 \u0446\u0435\u0439 \u043a\u043e\u0434 \u0456 \u0432\u0441\u0442\u0430\u0432\u0442\u0435 \u0439\u043e\u0433\u043e \u0443 \u0441\u0432\u0456\u0439 \u0437\u0430\u0441\u0442\u043e\u0441\u0443\u043d\u043e\u043a\:
|
||||
pageExpiredTitle=\u0422\u0435\u0440\u043c\u0456\u043d \u0434\u0456\u0457 \u0441\u0442\u043e\u0440\u0456\u043d\u043a\u0438 \u0437\u0430\u043a\u0456\u043d\u0447\u0438\u0432\u0441\u044f
|
||||
pageExpiredMsg1=\u0429\u043e\u0431 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0438 \u043f\u0440\u043e\u0446\u0435\u0441 \u0432\u0445\u043e\u0434\u0443
|
||||
pageExpiredMsg2=\u0429\u043e\u0431 \u043f\u0440\u043e\u0434\u043e\u0432\u0436\u0438\u0442\u0438 \u043f\u0440\u043e\u0446\u0435\u0441 \u0432\u0445\u043e\u0434\u0443
|
||||
personalInfo=\u041e\u0441\u043e\u0431\u0438\u0441\u0442\u0430 \u0456\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0456\u044f\:
|
||||
role_admin=\u0410\u0434\u043c\u0456\u043d\u0456\u0441\u0442\u0440\u0430\u0442\u043e\u0440
|
||||
role_realm-admin=\u0410\u0434\u043c\u0456\u043d\u0456\u0441\u0442\u0440\u0430\u0442\u043e\u0440 realm
|
||||
role_create-realm=\u0421\u0442\u0432\u043e\u0440\u0435\u043d\u043d\u044f realm
|
||||
role_create-client=\u0421\u0442\u0432\u043e\u0440\u0435\u043d\u043d\u044f \u043a\u043b\u0456\u0454\u043d\u0442\u0430
|
||||
role_view-realm=\u041f\u0435\u0440\u0435\u0433\u043b\u044f\u0434 realm
|
||||
role_view-users=\u041f\u0435\u0440\u0435\u0433\u043b\u044f\u0434 \u043a\u043e\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0456\u0432
|
||||
role_view-applications=\u041f\u0435\u0440\u0435\u0433\u043b\u044f\u0434 \u0437\u0430\u0441\u0442\u043e\u0441\u0443\u043d\u043a\u0456\u0432
|
||||
role_view-clients=\u041f\u0435\u0440\u0435\u0433\u043b\u044f\u0434 \u043a\u043b\u0456\u0454\u043d\u0442\u0456\u0432
|
||||
role_view-events=\u041f\u0435\u0440\u0435\u0433\u043b\u044f\u0434 \u043f\u043e\u0434\u0456\u0439
|
||||
role_view-identity-providers=\u041f\u0435\u0440\u0435\u0433\u043b\u044f\u0434 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0456\u0432 \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u0438\u0445 \u0437\u0430\u043f\u0438\u0441\u0456\u0432
|
||||
role_manage-realm=\u041a\u0435\u0440\u0443\u0432\u0430\u043d\u043d\u044f realm
|
||||
role_manage-users=\u041a\u0435\u0440\u0443\u0432\u0430\u043d\u043d\u044f \u043a\u043e\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430\u043c\u0438
|
||||
role_manage-applications=\u041a\u0435\u0440\u0443\u0432\u0430\u043d\u043d\u044f \u0437\u0430\u0441\u0442\u043e\u0441\u0443\u043d\u043a\u0430\u043c\u0438
|
||||
role_manage-identity-providers=\u041a\u0435\u0440\u0443\u0432\u0430\u043d\u043d\u044f \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430\u043c\u0438 \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u0438\u0445 \u0437\u0430\u043f\u0438\u0441\u0456\u0432
|
||||
role_manage-clients=\u041a\u0435\u0440\u0443\u0432\u0430\u043d\u043d\u044f \u043a\u043b\u0456\u0454\u043d\u0442\u0430\u043c\u0438
|
||||
role_manage-events=\u041a\u0435\u0440\u0443\u0432\u0430\u043d\u043d\u044f \u043f\u043e\u0434\u0456\u044f\u043c\u0438
|
||||
role_view-profile=\u041f\u0435\u0440\u0435\u0433\u043b\u044f\u0434 \u043f\u0440\u043e\u0444\u0456\u043b\u044e
|
||||
role_manage-account=\u041a\u0435\u0440\u0443\u0432\u0430\u043d\u043d\u044f \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u0438\u043c \u0437\u0430\u043f\u0438\u0441\u043e\u043c
|
||||
role_manage-account-links=\u041a\u0435\u0440\u0443\u0432\u0430\u043d\u043d\u044f \u0437\u0432''\u044f\u0437\u0430\u043d\u0438\u043c\u0438 \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u0438\u043c\u0438 \u0437\u0430\u043f\u0438\u0441\u0430\u043c\u0438
|
||||
role_read-token=\u041f\u0435\u0440\u0435\u0433\u043b\u044f\u0434 \u0442\u043e\u043a\u0435\u043d\u0443
|
||||
role_offline-access=\u041e\u0444\u043b\u0430\u0439\u043d-\u0434\u043e\u0441\u0442\u0443\u043f
|
||||
client_account=\u041e\u0431\u043b\u0456\u043a\u043e\u0432\u0438\u0439 \u0437\u0430\u043f\u0438\u0441
|
||||
client_account-console=\u041a\u043e\u043d\u0441\u043e\u043b\u044c \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u043e\u0433\u043e \u0437\u0430\u043f\u0438\u0441\u0443
|
||||
client_security-admin-console=\u041a\u043e\u043d\u0441\u043e\u043b\u044c \u0430\u0434\u043c\u0456\u043d\u0456\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430 \u0431\u0435\u0437\u043f\u0435\u043a\u0438
|
||||
client_admin-cli=Admin CLI
|
||||
client_realm-management=\u041a\u0435\u0440\u0443\u0432\u0430\u043d\u043d\u044f realm
|
||||
client_broker=\u0411\u0440\u043e\u043a\u0435\u0440
|
||||
requiredFields=\u041e\u0431\u043e\u0432''\u044f\u0437\u043a\u043e\u0432\u0456 \u043f\u043e\u043b\u044f
|
||||
invalidUserMessage=\u041d\u0435\u0432\u0456\u0440\u043d\u0435 \u0456\u043c''\u044f \u043a\u043e\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430 \u0430\u0431\u043e \u043f\u0430\u0440\u043e\u043b\u044c.
|
||||
invalidUsernameMessage=\u041d\u0435\u0432\u0456\u0440\u043d\u0435 \u0456\u043c''\u044f \u043a\u043e\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430.
|
||||
invalidUsernameOrEmailMessage=\u041d\u0435\u0432\u0456\u0440\u043d\u0435 \u0456\u043c''\u044f \u043a\u043e\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430 \u0430\u0431\u043e \u0430\u0434\u0440\u0435\u0441\u0430 \u0435\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0457 \u043f\u043e\u0448\u0442\u0438.
|
||||
invalidPasswordMessage=\u041d\u0435\u0432\u0456\u0440\u043d\u0438\u0439 \u043f\u0430\u0440\u043e\u043b\u044c.
|
||||
invalidEmailMessage=\u041d\u0435\u0432\u0456\u0440\u043d\u0430 \u0430\u0434\u0440\u0435\u0441\u0430 \u0435\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0457 \u043f\u043e\u0448\u0442\u0438.
|
||||
accountDisabledMessage=\u041e\u0431\u043b\u0456\u043a\u043e\u0432\u0438\u0439 \u0437\u0430\u043f\u0438\u0441 \u0437\u0430\u0431\u043b\u043e\u043a\u043e\u0432\u0430\u043d\u043e, \u0437\u0432\u0435\u0440\u043d\u0456\u0442\u044c\u0441\u044f \u0434\u043e \u0430\u0434\u043c\u0456\u043d\u0456\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430.
|
||||
accountTemporarilyDisabledMessage=\u041e\u0431\u043b\u0456\u043a\u043e\u0432\u0438\u0439 \u0437\u0430\u043f\u0438\u0441 \u0442\u0438\u043c\u0447\u0430\u0441\u043e\u0432\u043e \u0437\u0430\u0431\u043b\u043e\u043a\u043e\u0432\u0430\u043d\u043e; \u0437\u0432\u0435\u0440\u043d\u0456\u0442\u044c\u0441\u044f \u0434\u043e \u0430\u0434\u043c\u0456\u043d\u0456\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430 \u0430\u0431\u043e \u043f\u043e\u0432\u0442\u043e\u0440\u0456\u0442\u044c \u0441\u043f\u0440\u043e\u0431\u0443 \u043f\u0456\u0437\u043d\u0456\u0448\u0435.
|
||||
expiredCodeMessage=\u0427\u0430\u0441 \u043e\u0447\u0456\u043a\u0443\u0432\u0430\u043d\u043d\u044f \u0432\u0445\u043e\u0434\u0443 \u0437\u0430\u043a\u0456\u043d\u0447\u0438\u0432\u0441\u044f. \u0423\u0432\u0456\u0439\u0434\u0456\u0442\u044c \u0437\u043d\u043e\u0432\u0443.
|
||||
expiredActionMessage=\u0422\u0435\u0440\u043c\u0456\u043d \u0434\u0456\u0457 \u0437\u0430\u043a\u0456\u043d\u0447\u0438\u0432\u0441\u044f. \u0411\u0443\u0434\u044c \u043b\u0430\u0441\u043a\u0430, \u0443\u0432\u0456\u0439\u0434\u0456\u0442\u044c \u0437\u043d\u043e\u0432\u0443.
|
||||
expiredActionTokenNoSessionMessage=\u0422\u0435\u0440\u043c\u0456\u043d \u0434\u0456\u0457 \u0437\u0430\u043a\u0456\u043d\u0447\u0438\u0432\u0441\u044f.
|
||||
expiredActionTokenSessionExistsMessage=\u0422\u0435\u0440\u043c\u0456\u043d \u0434\u0456\u0457 \u043c\u0438\u043d\u0443\u0432. \u0411\u0443\u0434\u044c \u043b\u0430\u0441\u043a\u0430, \u043f\u043e\u0447\u043d\u0456\u0442\u044c \u0437\u043d\u043e\u0432\u0443.
|
||||
sessionLimitExceeded=\u041f\u0435\u0440\u0435\u0432\u0438\u0449\u0435\u043d\u043e \u043b\u0456\u043c\u0456\u0442 \u043f\u043e \u043a\u0456\u043b\u044c\u043a\u043e\u0441\u0442\u0456 \u0441\u0435\u0441\u0456\u0439
|
||||
missingFirstNameMessage=\u0411\u0443\u0434\u044c \u043b\u0430\u0441\u043a\u0430, \u0432\u043a\u0430\u0436\u0456\u0442\u044c \u0456\u043c''\u044f.
|
||||
missingLastNameMessage=\u0411\u0443\u0434\u044c \u043b\u0430\u0441\u043a\u0430, \u0432\u043a\u0430\u0436\u0456\u0442\u044c \u043f\u0440\u0456\u0437\u0432\u0438\u0449\u0435.
|
||||
missingEmailMessage=\u0411\u0443\u0434\u044c \u043b\u0430\u0441\u043a\u0430, \u0432\u043a\u0430\u0436\u0456\u0442\u044c \u0430\u0434\u0440\u0435\u0441\u0443 \u0435\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0457 \u043f\u043e\u0448\u0442\u0438.
|
||||
missingUsernameMessage=\u0411\u0443\u0434\u044c \u043b\u0430\u0441\u043a\u0430, \u0432\u043a\u0430\u0436\u0456\u0442\u044c \u0456\u043c''\u044f \u043a\u043e\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430.
|
||||
missingPasswordMessage=\u0411\u0443\u0434\u044c \u043b\u0430\u0441\u043a\u0430, \u0432\u043a\u0430\u0436\u0456\u0442\u044c \u043f\u0430\u0440\u043e\u043b\u044c.
|
||||
missingTotpMessage=\u0411\u0443\u0434\u044c \u043b\u0430\u0441\u043a\u0430, \u0432\u043a\u0430\u0436\u0456\u0442\u044c \u043a\u043e\u0434 \u0430\u0432\u0442\u0435\u043d\u0442\u0438\u0444\u0456\u043a\u0430\u0442\u043e\u0440\u0430.
|
||||
missingTotpDeviceNameMessage=\u0411\u0443\u0434\u044c \u043b\u0430\u0441\u043a\u0430, \u0432\u043a\u0430\u0436\u0456\u0442\u044c \u043d\u0430\u0437\u0432\u0443 \u043f\u0440\u0438\u0441\u0442\u0440\u043e\u044e.
|
||||
notMatchPasswordMessage=\u041f\u0430\u0440\u043e\u043b\u0456 \u043d\u0435 \u0437\u0431\u0456\u0433\u0430\u044e\u0442\u044c\u0441\u044f.
|
||||
error-invalid-value=\u041d\u0435\u0432\u0456\u0440\u043d\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044f.
|
||||
error-invalid-blank=\u0411\u0443\u0434\u044c \u043b\u0430\u0441\u043a\u0430, \u0432\u043a\u0430\u0436\u0456\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044f.
|
||||
error-empty=\u0411\u0443\u0434\u044c \u043b\u0430\u0441\u043a\u0430, \u0432\u043a\u0430\u0436\u0456\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044f.
|
||||
error-invalid-length=\u041a\u0456\u043b\u044c\u043a\u0456\u0441\u0442\u044c \u0441\u0438\u043c\u0432\u043e\u043b\u0456\u0432 \u043f\u043e\u0432\u0438\u043d\u043d\u0430 \u0431\u0443\u0442\u0438 \u043d\u0435 \u043c\u0435\u043d\u0448\u0435 {1} \u0456 \u043d\u0435 \u0431\u0456\u043b\u044c\u0448\u0435 {2}.
|
||||
error-invalid-length-too-short=\u041a\u0456\u043b\u044c\u043a\u0456\u0441\u0442\u044c \u0441\u0438\u043c\u0432\u043e\u043b\u0456\u0432 \u043f\u043e\u0432\u0438\u043d\u043d\u0430 \u0431\u0443\u0442\u0438 \u043d\u0435 \u043c\u0435\u043d\u0448\u0435 {1}.
|
||||
error-invalid-length-too-long=\u041a\u0456\u043b\u044c\u043a\u0456\u0441\u0442\u044c \u0441\u0438\u043c\u0432\u043e\u043b\u0456\u0432 \u043f\u043e\u0432\u0438\u043d\u043d\u0430 \u0431\u0443\u0442\u0438 \u043d\u0435 \u0431\u0456\u043b\u044c\u0448\u0435 {2}.
|
||||
error-invalid-email=\u041d\u0435\u0432\u0456\u0440\u043d\u0430 \u0430\u0434\u0440\u0435\u0441\u0430 \u0435\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0457 \u043f\u043e\u0448\u0442\u0438.
|
||||
error-invalid-number=\u041d\u0435\u0432\u0456\u0440\u043d\u0435 \u0447\u0438\u0441\u043b\u043e.
|
||||
error-number-out-of-range=\u0427\u0438\u0441\u043b\u043e \u043f\u043e\u0432\u0438\u043d\u043d\u043e \u0431\u0443\u0442\u0438 \u043d\u0435 \u043c\u0435\u043d\u0448\u0435 {1} \u0456 \u043d\u0435 \u0431\u0456\u043b\u044c\u0448\u0435 {2}.
|
||||
error-number-out-of-range-too-small=\u0427\u0438\u0441\u043b\u043e \u043f\u043e\u0432\u0438\u043d\u043d\u043e \u0431\u0443\u0442\u0438 \u043d\u0435 \u043c\u0435\u043d\u0448\u0435 {1}.
|
||||
error-number-out-of-range-too-big=\u0427\u0438\u0441\u043b\u043e \u043f\u043e\u0432\u0438\u043d\u043d\u043e \u0431\u0443\u0442\u0438 \u043d\u0435 \u0431\u0456\u043b\u044c\u0448\u0435 {2}.
|
||||
error-pattern-no-match=\u041d\u0435\u0432\u0456\u0440\u043d\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044f.
|
||||
error-invalid-uri=\u041d\u0435\u0432\u0456\u0440\u043d\u0438\u0439 URL.
|
||||
error-invalid-uri-scheme=\u041d\u0435\u0432\u0456\u0440\u043d\u0430 \u0441\u0445\u0435\u043c\u0430 URL.
|
||||
error-invalid-uri-fragment=\u041d\u0435\u0432\u0456\u0440\u043d\u0438\u0439 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442 URL.
|
||||
error-user-attribute-required=\u0411\u0443\u0434\u044c \u043b\u0430\u0441\u043a\u0430, \u0432\u043a\u0430\u0436\u0456\u0442\u044c \u0430\u0442\u0440\u0438\u0431\u0443\u0442.
|
||||
error-invalid-date=\u041d\u0435\u0432\u0456\u0440\u043d\u0430 \u0434\u0430\u0442\u0430.
|
||||
error-user-attribute-read-only=\u0426\u0435 \u043f\u043e\u043b\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0435 \u043b\u0438\u0448\u0435 \u0434\u043b\u044f \u0447\u0438\u0442\u0430\u043d\u043d\u044f.
|
||||
error-username-invalid-character=\u0417\u043d\u0430\u0447\u0435\u043d\u043d\u044f \u043c\u0456\u0441\u0442\u0438\u0442\u044c \u043d\u0435\u0432\u0456\u0440\u043d\u0438\u0439 \u0441\u0438\u043c\u0432\u043e\u043b.
|
||||
error-person-name-invalid-character=\u0417\u043d\u0430\u0447\u0435\u043d\u043d\u044f \u043c\u0456\u0441\u0442\u0438\u0442\u044c \u043d\u0435\u0432\u0456\u0440\u043d\u0438\u0439 \u0441\u0438\u043c\u0432\u043e\u043b.
|
||||
error-reset-otp-missing-id=\u0411\u0443\u0434\u044c \u043b\u0430\u0441\u043a\u0430, \u0432\u0438\u0431\u0435\u0440\u0456\u0442\u044c \u043a\u043e\u043d\u0444\u0456\u0433\u0443\u0440\u0430\u0446\u0456\u044e OTP.
|
||||
invalidPasswordExistingMessage=\u041d\u0435\u0432\u0456\u0440\u043d\u0438\u0439 \u0456\u0441\u043d\u0443\u044e\u0447\u0438\u0439 \u043f\u0430\u0440\u043e\u043b\u044c.
|
||||
invalidPasswordBlacklistedMessage=\u041d\u0435\u0432\u0456\u0440\u043d\u0438\u0439 \u043f\u0430\u0440\u043e\u043b\u044c\: \u043f\u0430\u0440\u043e\u043b\u044c \u0443 \u0447\u043e\u0440\u043d\u043e\u043c\u0443 \u0441\u043f\u0438\u0441\u043a\u0443.
|
||||
invalidPasswordConfirmMessage=\u041f\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u0436\u0435\u043d\u043d\u044f \u043f\u0430\u0440\u043e\u043b\u044e \u043d\u0435 \u0437\u0431\u0456\u0433\u0430\u0454\u0442\u044c\u0441\u044f.
|
||||
invalidTotpMessage=\u041d\u0435\u0432\u0456\u0440\u043d\u0438\u0439 \u043a\u043e\u0434 \u0430\u0432\u0442\u0435\u043d\u0442\u0438\u0444\u0456\u043a\u0430\u0442\u043e\u0440\u0430.
|
||||
usernameExistsMessage=\u0406\u043c''\u044f \u043a\u043e\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430 \u0432\u0436\u0435 \u0456\u0441\u043d\u0443\u0454.
|
||||
emailExistsMessage=\u0410\u0434\u0440\u0435\u0441\u0430 \u0435\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0457 \u043f\u043e\u0448\u0442\u0438 \u0432\u0436\u0435 \u0456\u0441\u043d\u0443\u0454.
|
||||
federatedIdentityExistsMessage=\u041a\u043e\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447 \u0437 {0} {1} \u0432\u0436\u0435 \u0456\u0441\u043d\u0443\u0454. \u0411\u0443\u0434\u044c \u043b\u0430\u0441\u043a\u0430, \u0443\u0432\u0456\u0439\u0434\u0456\u0442\u044c \u0434\u043e \u0441\u0438\u0441\u0442\u0435\u043c\u0438 \u043a\u0435\u0440\u0443\u0432\u0430\u043d\u043d\u044f \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u0438\u043c \u0437\u0430\u043f\u0438\u0441\u043e\u043c, \u0449\u043e\u0431 \u0437\u0432''\u044f\u0437\u0430\u0442\u0438 \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u0438\u0439 \u0437\u0430\u043f\u0438\u0441.
|
||||
federatedIdentityUnavailableMessage=\u041a\u043e\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447 {0}, \u0430\u0432\u0442\u0435\u043d\u0442\u0438\u0444\u0456\u043a\u043e\u0432\u0430\u043d\u0438\u0439 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u043e\u043c \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u0438\u0445 \u0437\u0430\u043f\u0438\u0441\u0456\u0432 {1}, \u043d\u0435 \u0456\u0441\u043d\u0443\u0454. \u0411\u0443\u0434\u044c \u043b\u0430\u0441\u043a\u0430, \u0437\u0432\u0435\u0440\u043d\u0456\u0442\u044c\u0441\u044f \u0434\u043e \u0430\u0434\u043c\u0456\u043d\u0456\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430.
|
||||
federatedIdentityUnmatchedEssentialClaimMessage=ID-\u0442\u043e\u043a\u0435\u043d, \u0432\u0438\u0434\u0430\u043d\u0438\u0439 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u043e\u043c \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u0438\u0445 \u0437\u0430\u043f\u0438\u0441\u0456\u0432, \u043d\u0435 \u0432\u0456\u0434\u043f\u043e\u0432\u0456\u0434\u0430\u0454 \u043d\u0430\u043b\u0430\u0448\u0442\u0443\u0432\u0430\u043d\u043d\u044f\u043c. \u0411\u0443\u0434\u044c \u043b\u0430\u0441\u043a\u0430, \u0437\u0432\u0435\u0440\u043d\u0456\u0442\u044c\u0441\u044f \u0434\u043e \u0441\u0432\u043e\u0433\u043e \u0430\u0434\u043c\u0456\u043d\u0456\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430.
|
||||
confirmLinkIdpTitle=\u041e\u0431\u043b\u0456\u043a\u043e\u0432\u0438\u0439 \u0437\u0430\u043f\u0438\u0441 \u0443\u0436\u0435 \u0456\u0441\u043d\u0443\u0454
|
||||
federatedIdentityConfirmLinkMessage=\u041a\u043e\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447 \u0456\u0437 {0} {1} \u0432\u0436\u0435 \u0456\u0441\u043d\u0443\u0454. \u0411\u0430\u0436\u0430\u0454\u0442\u0435 \u043f\u0440\u043e\u0434\u043e\u0432\u0436\u0438\u0442\u0438?
|
||||
federatedIdentityConfirmReauthenticateMessage=\u041f\u0440\u043e\u0439\u0434\u0456\u0442\u044c \u0430\u0432\u0442\u0435\u043d\u0442\u0438\u0444\u0456\u043a\u0430\u0446\u0456\u044e, \u0449\u043e\u0431 \u0437\u0432''\u044f\u0437\u0430\u0442\u0438 \u0441\u0432\u0456\u0439 \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u0438\u0439 \u0437\u0430\u043f\u0438\u0441 \u0456\u0437 {0}
|
||||
nestedFirstBrokerFlowMessage=\u041a\u043e\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447 {0} {1} \u043d\u0435 \u0437\u0432''\u044f\u0437\u0430\u043d\u0438\u0439 \u0437 \u0436\u043e\u0434\u043d\u0438\u043c \u0432\u0456\u0434\u043e\u043c\u0438\u043c \u043a\u043e\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0435\u043c.
|
||||
confirmLinkIdpReviewProfile=\u041f\u0435\u0440\u0435\u0433\u043b\u044f\u043d\u0443\u0442\u0438 \u043f\u0440\u043e\u0444\u0456\u043b\u044c
|
||||
confirmLinkIdpContinue=\u0414\u043e\u0434\u0430\u0442\u0438 \u0434\u043e \u0456\u0441\u043d\u0443\u044e\u0447\u043e\u0433\u043e \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u043e\u0433\u043e \u0437\u0430\u043f\u0438\u0441\u0443
|
||||
configureTotpMessage=\u0412\u0430\u043c \u043f\u043e\u0442\u0440\u0456\u0431\u043d\u043e \u043d\u0430\u043b\u0430\u0448\u0442\u0443\u0432\u0430\u0442\u0438 Mobile Authenticator, \u0449\u043e\u0431 \u0430\u043a\u0442\u0438\u0432\u0443\u0432\u0430\u0442\u0438 \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u0438\u0439 \u0437\u0430\u043f\u0438\u0441.
|
||||
configureBackupCodesMessage=\u0412\u0430\u043c \u043f\u043e\u0442\u0440\u0456\u0431\u043d\u043e \u043d\u0430\u043b\u0430\u0448\u0442\u0443\u0432\u0430\u0442\u0438 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u0456 \u043a\u043e\u0434\u0438, \u0449\u043e\u0431 \u0430\u043a\u0442\u0438\u0432\u0443\u0432\u0430\u0442\u0438 \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u0438\u0439 \u0437\u0430\u043f\u0438\u0441.
|
||||
updateProfileMessage=\u0412\u0430\u043c \u043f\u043e\u0442\u0440\u0456\u0431\u043d\u043e \u043e\u043d\u043e\u0432\u0438\u0442\u0438 \u0441\u0432\u0456\u0439 \u043f\u0440\u043e\u0444\u0456\u043b\u044c \u043a\u043e\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430, \u0449\u043e\u0431 \u0430\u043a\u0442\u0438\u0432\u0443\u0432\u0430\u0442\u0438 \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u0438\u0439 \u0437\u0430\u043f\u0438\u0441.
|
||||
updatePasswordMessage=\u0412\u0430\u043c \u043f\u043e\u0442\u0440\u0456\u0431\u043d\u043e \u0437\u043c\u0456\u043d\u0438\u0442\u0438 \u043f\u0430\u0440\u043e\u043b\u044c, \u0449\u043e\u0431 \u0430\u043a\u0442\u0438\u0432\u0443\u0432\u0430\u0442\u0438 \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u0438\u0439 \u0437\u0430\u043f\u0438\u0441.
|
||||
updateEmailMessage=\u0412\u0430\u043c \u043f\u043e\u0442\u0440\u0456\u0431\u043d\u043e \u043e\u043d\u043e\u0432\u0438\u0442\u0438 \u0430\u0434\u0440\u0435\u0441\u0443 \u0435\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0457 \u043f\u043e\u0448\u0442\u0438, \u0449\u043e\u0431 \u0430\u043a\u0442\u0438\u0432\u0443\u0432\u0430\u0442\u0438 \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u0438\u0439 \u0437\u0430\u043f\u0438\u0441.
|
||||
resetPasswordMessage=\u0412\u0430\u043c \u043f\u043e\u0442\u0440\u0456\u0431\u043d\u043e \u0437\u043c\u0456\u043d\u0438\u0442\u0438 \u043f\u0430\u0440\u043e\u043b\u044c.
|
||||
verifyEmailMessage=\u0412\u0430\u043c \u043f\u043e\u0442\u0440\u0456\u0431\u043d\u043e \u043f\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0438 \u0430\u0434\u0440\u0435\u0441\u0443 \u0435\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0457 \u043f\u043e\u0448\u0442\u0438, \u0449\u043e\u0431 \u0430\u043a\u0442\u0438\u0432\u0443\u0432\u0430\u0442\u0438 \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u0438\u0439 \u0437\u0430\u043f\u0438\u0441.
|
||||
linkIdpMessage=\u0412\u0430\u043c \u043f\u043e\u0442\u0440\u0456\u0431\u043d\u043e \u043f\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0438 \u0441\u0432\u043e\u044e \u0430\u0434\u0440\u0435\u0441\u0443 \u0435\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0457 \u043f\u043e\u0448\u0442\u0438, \u0449\u043e\u0431 \u0437\u0432''\u044f\u0437\u0430\u0442\u0438 \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u0438\u0439 \u0437\u0430\u043f\u0438\u0441 \u0456\u0437 {0}.
|
||||
emailSentMessage=\u041d\u0435\u0432\u0434\u043e\u0432\u0437\u0456 \u0412\u0438 \u043c\u0430\u0454\u0442\u0435 \u043e\u0442\u0440\u0438\u043c\u0430\u0442\u0438 \u0435\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u0438\u0439 \u043b\u0438\u0441\u0442 \u0456\u0437 \u043f\u043e\u0434\u0430\u043b\u044c\u0448\u0438\u043c\u0438 \u0456\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0456\u044f\u043c\u0438.
|
||||
emailSendErrorMessage=\u041d\u0435 \u0432\u0434\u0430\u043b\u043e\u0441\u044f \u043d\u0430\u0434\u0456\u0441\u043b\u0430\u0442\u0438 \u043b\u0438\u0441\u0442\u0430 \u043d\u0430 \u0435\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u0443 \u043f\u043e\u0448\u0442\u0443, \u043f\u043e\u0432\u0442\u043e\u0440\u0456\u0442\u044c \u0441\u043f\u0440\u043e\u0431\u0443 \u043f\u0456\u0437\u043d\u0456\u0448\u0435.
|
||||
accountUpdatedMessage=\u0412\u0430\u0448 \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u0438\u0439 \u0437\u0430\u043f\u0438\u0441 \u043e\u043d\u043e\u0432\u043b\u0435\u043d\u043e.
|
||||
accountPasswordUpdatedMessage=\u0412\u0430\u0448 \u043f\u0430\u0440\u043e\u043b\u044c \u043e\u043d\u043e\u0432\u043b\u0435\u043d\u043e.
|
||||
delegationCompleteHeader=\u0412\u0445\u0456\u0434 \u0443\u0441\u043f\u0456\u0448\u043d\u0438\u0439
|
||||
delegationCompleteMessage=\u0412\u0438 \u043c\u043e\u0436\u0435\u0442\u0435 \u0437\u0430\u043a\u0440\u0438\u0442\u0438 \u0446\u0435 \u0432\u0456\u043a\u043d\u043e \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430 \u0442\u0430 \u043f\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u0438\u0441\u044f \u0434\u043e \u0432\u0430\u0448\u043e\u0457 \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u043d\u043e\u0457 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u0438.
|
||||
delegationFailedHeader=\u041f\u043e\u043c\u0438\u043b\u043a\u0430 \u0432\u0445\u043e\u0434\u0443
|
||||
delegationFailedMessage=\u0412\u0438 \u043c\u043e\u0436\u0435\u0442\u0435 \u0437\u0430\u043a\u0440\u0438\u0442\u0438 \u0446\u0435 \u0432\u0456\u043a\u043d\u043e \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430, \u043f\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u0438\u0441\u044f \u0434\u043e \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u043d\u043e\u0457 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u0438 \u0442\u0430 \u0441\u043f\u0440\u043e\u0431\u0443\u0432\u0430\u0442\u0438 \u0443\u0432\u0456\u0439\u0442\u0438 \u0437\u043d\u043e\u0432\u0443.
|
||||
noAccessMessage=\u041d\u0435\u043c\u0430\u0454 \u0434\u043e\u0441\u0442\u0443\u043f\u0443
|
||||
invalidPasswordMinLengthMessage=\u041d\u0435\u0432\u0456\u0440\u043d\u0438\u0439 \u043f\u0430\u0440\u043e\u043b\u044c\: \u0434\u043e\u0432\u0436\u0438\u043d\u0430 \u043f\u0430\u0440\u043e\u043b\u044f \u043f\u043e\u0432\u0438\u043d\u043d\u0430 \u0431\u0443\u0442\u0438 \u043d\u0435 \u043c\u0435\u043d\u0448\u0435 {0} \u0441\u0438\u043c\u0432\u043e\u043b\u0456\u0432(\u0430).
|
||||
invalidPasswordMaxLengthMessage=\u041d\u0435\u0432\u0456\u0440\u043d\u0438\u0439 \u043f\u0430\u0440\u043e\u043b\u044c\: \u0434\u043e\u0432\u0436\u0438\u043d\u0430 \u043f\u0430\u0440\u043e\u043b\u044f \u043f\u043e\u0432\u0438\u043d\u043d\u0430 \u0431\u0443\u0442\u0438 \u043d\u0435 \u0431\u0456\u043b\u044c\u0448\u0435 {0} \u0441\u0438\u043c\u0432\u043e\u043b\u0456\u0432(\u0430).
|
||||
invalidPasswordMinDigitsMessage=\u041d\u0435\u0432\u0456\u0440\u043d\u0438\u0439 \u043f\u0430\u0440\u043e\u043b\u044c\: \u043f\u0430\u0440\u043e\u043b\u044c \u043c\u0430\u0454 \u043c\u0456\u0441\u0442\u0438\u0442\u0438 \u043f\u0440\u0438\u043d\u0430\u0439\u043c\u043d\u0456 {0} \u0446\u0438\u0444\u0440.
|
||||
invalidPasswordMinLowerCaseCharsMessage=\u041d\u0435\u0432\u0456\u0440\u043d\u0438\u0439 \u043f\u0430\u0440\u043e\u043b\u044c\: \u043f\u0430\u0440\u043e\u043b\u044c \u043c\u0430\u0454 \u043c\u0456\u0441\u0442\u0438\u0442\u0438 \u0449\u043e\u043d\u0430\u0439\u043c\u0435\u043d\u0448\u0435 {0} \u0441\u0438\u043c\u0432\u043e\u043b\u0456\u0432(\u0430) \u0443 \u043d\u0438\u0436\u043d\u044c\u043e\u043c\u0443 \u0440\u0435\u0433\u0456\u0441\u0442\u0440\u0443.
|
||||
invalidPasswordMinUpperCaseCharsMessage=\u041d\u0435\u0432\u0456\u0440\u043d\u0438\u0439 \u043f\u0430\u0440\u043e\u043b\u044c\: \u043f\u0430\u0440\u043e\u043b\u044c \u043c\u0430\u0454 \u043c\u0456\u0441\u0442\u0438\u0442\u0438 \u0449\u043e\u043d\u0430\u0439\u043c\u0435\u043d\u0448\u0435 {0} \u0441\u0438\u043c\u0432\u043e\u043b\u0456\u0432(\u0430) \u0443 \u0432\u0435\u0440\u0445\u043d\u044c\u043e\u043c\u0443 \u0440\u0435\u0433\u0456\u0441\u0442\u0440\u0456.
|
||||
invalidPasswordMinSpecialCharsMessage=\u041d\u0435\u0432\u0456\u0440\u043d\u0438\u0439 \u043f\u0430\u0440\u043e\u043b\u044c\: \u043f\u0430\u0440\u043e\u043b\u044c \u043c\u0430\u0454 \u043c\u0456\u0441\u0442\u0438\u0442\u0438 \u0449\u043e\u043d\u0430\u0439\u043c\u0435\u043d\u0448\u0435 {0} \u0441\u043f\u0435\u0446\u0456\u0430\u043b\u044c\u043d\u0438\u0445 \u0441\u0438\u043c\u0432\u043e\u043b\u0456\u0432(\u0430).
|
||||
invalidPasswordNotUsernameMessage=\u041d\u0435\u0432\u0456\u0440\u043d\u0438\u0439 \u043f\u0430\u0440\u043e\u043b\u044c\: \u043f\u0430\u0440\u043e\u043b\u044c \u043d\u0435 \u043f\u043e\u0432\u0438\u043d\u0435\u043d \u0437\u0431\u0456\u0433\u0430\u0442\u0438\u0441\u044f \u0437 \u0456\u043c\u0435\u043d\u0435\u043c \u043a\u043e\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430.
|
||||
invalidPasswordNotEmailMessage=\u041d\u0435\u0432\u0456\u0440\u043d\u0438\u0439 \u043f\u0430\u0440\u043e\u043b\u044c\: \u043f\u0430\u0440\u043e\u043b\u044c \u043d\u0435 \u043f\u043e\u0432\u0438\u043d\u0435\u043d \u0437\u0431\u0456\u0433\u0430\u0442\u0438\u0441\u044f \u0437 \u0430\u0434\u0440\u0435\u0441\u043e\u044e \u0435\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0457 \u043f\u043e\u0448\u0442\u0438.
|
||||
invalidPasswordRegexPatternMessage=\u041d\u0435\u0432\u0456\u0440\u043d\u0438\u0439 \u043f\u0430\u0440\u043e\u043b\u044c\: \u043f\u0430\u0440\u043e\u043b\u044c \u043d\u0435 \u0432\u0456\u0434\u043f\u043e\u0432\u0456\u0434\u0430\u0454 \u0448\u0430\u0431\u043b\u043e\u043d\u0443(\u0430\u043c) \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e\u0433\u043e \u0432\u0438\u0440\u0430\u0437\u0443.
|
||||
invalidPasswordHistoryMessage=\u041d\u0435\u0434\u0456\u0439\u0441\u043d\u0438\u0439 \u043f\u0430\u0440\u043e\u043b\u044c\: \u043f\u0430\u0440\u043e\u043b\u044c \u043d\u0435 \u043f\u043e\u0432\u0438\u043d\u0435\u043d \u0437\u0431\u0456\u0433\u0430\u0442\u0438\u0441\u044f \u0437 \u0436\u043e\u0434\u043d\u0438\u043c \u0437 \u043e\u0441\u0442\u0430\u043d\u043d\u0456\u0445 {0} \u043f\u0430\u0440\u043e\u043b\u0456\u0432.
|
||||
invalidPasswordGenericMessage=\u041d\u0435\u0432\u0456\u0440\u043d\u0438\u0439 \u043f\u0430\u0440\u043e\u043b\u044c\: \u043d\u043e\u0432\u0438\u0439 \u043f\u0430\u0440\u043e\u043b\u044c \u043d\u0435 \u0432\u0456\u0434\u043f\u043e\u0432\u0456\u0434\u0430\u0454 \u043f\u043e\u043b\u0456\u0442\u0438\u0446\u0456 \u043f\u0430\u0440\u043e\u043b\u0456\u0432.
|
||||
failedToProcessResponseMessage=\u041d\u0435 \u0432\u0434\u0430\u043b\u043e\u0441\u044f \u043e\u0431\u0440\u043e\u0431\u0438\u0442\u0438 \u0432\u0456\u0434\u043f\u043e\u0432\u0456\u0434\u044c
|
||||
httpsRequiredMessage=\u041f\u043e\u0442\u0440\u0456\u0431\u0435\u043d HTTPS
|
||||
realmNotEnabledMessage=Realm \u043d\u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439
|
||||
invalidRequestMessage=\u041d\u0435\u0432\u0456\u0440\u043d\u0438\u0439 \u0437\u0430\u043f\u0438\u0442
|
||||
successLogout=\u0412\u0438 \u0432\u0438\u0439\u0448\u043b\u0438 \u0437 \u0441\u0438\u0441\u0442\u0435\u043c\u0438
|
||||
failedLogout=\u041f\u043e\u043c\u0438\u043b\u043a\u0430 \u0432\u0438\u0445\u043e\u0434\u0443
|
||||
unknownLoginRequesterMessage=\u041d\u0435\u0432\u0456\u0434\u043e\u043c\u0438\u0439 \u043a\u043b\u0456\u0454\u043d\u0442
|
||||
loginRequesterNotEnabledMessage=\u041a\u043b\u0456\u0454\u043d\u0442 \u0432\u0456\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439
|
||||
bearerOnlyMessage=\u0417\u0430\u0441\u0442\u043e\u0441\u0443\u043d\u043a\u0430\u043c, \u044f\u043a\u0456 \u043f\u0440\u0430\u0446\u044e\u044e\u0442\u044c \u043b\u0438\u0448\u0435 \u0437 \u043d\u043e\u0441\u0456\u0454\u043c, \u0437\u0430\u0431\u043e\u0440\u043e\u043d\u0435\u043d\u043e \u0456\u043d\u0456\u0446\u0456\u044e\u0432\u0430\u0442\u0438 \u0432\u0445\u0456\u0434 \u0443 \u0431\u0440\u0430\u0443\u0437\u0435\u0440
|
||||
standardFlowDisabledMessage=\u041a\u043b\u0456\u0454\u043d\u0442\u0443 \u043d\u0435 \u0434\u043e\u0437\u0432\u043e\u043b\u0435\u043d\u043e \u0456\u043d\u0456\u0446\u0456\u044e\u0432\u0430\u0442\u0438 \u0432\u0445\u0456\u0434 \u0443 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u0456\u0437 \u0432\u043a\u0430\u0437\u0430\u043d\u0438\u043c response_type. Standard flow \u0432\u0438\u043c\u043a\u043d\u0435\u043d\u043e \u0434\u043b\u044f \u043a\u043b\u0456\u0454\u043d\u0442\u0430.
|
||||
implicitFlowDisabledMessage=\u041a\u043b\u0456\u0454\u043d\u0442\u0443 \u043d\u0435 \u0434\u043e\u0437\u0432\u043e\u043b\u0435\u043d\u043e \u0456\u043d\u0456\u0446\u0456\u044e\u0432\u0430\u0442\u0438 \u0432\u0445\u0456\u0434 \u0443 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u0456\u0437 \u0432\u043a\u0430\u0437\u0430\u043d\u0438\u043c response_type. Implicit flow \u0432\u0438\u043c\u043a\u043d\u0435\u043d\u043e \u0434\u043b\u044f \u043a\u043b\u0456\u0454\u043d\u0442\u0430.
|
||||
invalidRedirectUriMessage=\u041d\u0435\u0432\u0456\u0440\u043d\u0438\u0439 uri \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044f
|
||||
unsupportedNameIdFormatMessage=NameIDFormat \u043d\u0435 \u043f\u0456\u0434\u0442\u0440\u0438\u043c\u0443\u0454\u0442\u044c\u0441\u044f
|
||||
invalidRequesterMessage=\u041d\u0435\u0432\u0456\u0440\u043d\u0438\u0439 \u043a\u043b\u0456\u0454\u043d\u0442
|
||||
registrationNotAllowedMessage=\u0420\u0435\u0454\u0441\u0442\u0440\u0430\u0446\u0456\u044f \u043d\u0435 \u0434\u043e\u0437\u0432\u043e\u043b\u0435\u043d\u0430
|
||||
resetCredentialNotAllowedMessage=\u0421\u043a\u0438\u043d\u0443\u0442\u0438 \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u0456 \u0434\u0430\u043d\u0456 \u0437\u0430\u0431\u043e\u0440\u043e\u043d\u0435\u043d\u043e
|
||||
permissionNotApprovedMessage=\u0414\u043e\u0437\u0432\u0456\u043b \u043d\u0435 \u0441\u0445\u0432\u0430\u043b\u0435\u043d\u043e.
|
||||
noRelayStateInResponseMessage=\u041d\u0435\u043c\u0430\u0454 \u0441\u0442\u0430\u043d\u0443 \u0440\u0435\u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0456\u0457 \u0443 \u0432\u0456\u0434\u043f\u043e\u0432\u0456\u0434\u0456 \u0432\u0456\u0434 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430 \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u0438\u0445 \u0437\u0430\u043f\u0438\u0441\u0456\u0432.
|
||||
insufficientPermissionMessage=\u041d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043d\u044c\u043e \u0434\u043e\u0437\u0432\u043e\u043b\u0456\u0432 \u0434\u043b\u044f \u0437\u0432''\u044f\u0437\u0443\u0432\u0430\u043d\u043d\u044f \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u0438\u0445 \u0437\u0430\u043f\u0438\u0441\u0456\u0432.
|
||||
couldNotProceedWithAuthenticationRequestMessage=\u041d\u0435 \u0432\u0434\u0430\u043b\u043e\u0441\u044f \u043f\u0440\u043e\u0434\u043e\u0432\u0436\u0438\u0442\u0438 \u0437\u0430\u043f\u0438\u0442 \u0430\u0432\u0442\u0435\u043d\u0442\u0438\u0444\u0456\u043a\u0430\u0446\u0456\u0457 \u0434\u043e \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430 \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u0438\u0445 \u0437\u0430\u043f\u0438\u0441\u0456\u0432.
|
||||
couldNotObtainTokenMessage=\u041d\u0435 \u0432\u0434\u0430\u043b\u043e\u0441\u044f \u043e\u0442\u0440\u0438\u043c\u0430\u0442\u0438 \u0442\u043e\u043a\u0435\u043d \u0432\u0456\u0434 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430 \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u0438\u0445 \u0437\u0430\u043f\u0438\u0441\u0456\u0432.
|
||||
unexpectedErrorRetrievingTokenMessage=\u041d\u0435\u043e\u0447\u0456\u043a\u0443\u0432\u0430\u043d\u0430 \u043f\u043e\u043c\u0438\u043b\u043a\u0430 \u043f\u0456\u0434 \u0447\u0430\u0441 \u043e\u0442\u0440\u0438\u043c\u0430\u043d\u043d\u044f \u0442\u043e\u043a\u0435\u043d\u0443 \u0432\u0456\u0434 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430 \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u0438\u0445 \u0437\u0430\u043f\u0438\u0441\u0456\u0432.
|
||||
unexpectedErrorHandlingResponseMessage=\u041d\u0435\u043e\u0447\u0456\u043a\u0443\u0432\u0430\u043d\u0430 \u043f\u043e\u043c\u0438\u043b\u043a\u0430 \u043f\u0456\u0434 \u0447\u0430\u0441 \u043e\u0431\u0440\u043e\u0431\u043a\u0438 \u0432\u0456\u0434\u043f\u043e\u0432\u0456\u0434\u0456 \u0432\u0456\u0434 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430 \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u0438\u0445 \u0437\u0430\u043f\u0438\u0441\u0456\u0432
|
||||
identityProviderAuthenticationFailedMessage=\u041f\u043e\u043c\u0438\u043b\u043a\u0430 \u0430\u0432\u0442\u0435\u043d\u0442\u0438\u0444\u0456\u043a\u0430\u0446\u0456\u0457. \u041d\u0435 \u0432\u0434\u0430\u043b\u043e\u0441\u044f \u0430\u0432\u0442\u0435\u043d\u0442\u0438\u0444\u0456\u043a\u0443\u0432\u0430\u0442\u0438\u0441\u044f \u0437\u0430 \u0434\u043e\u043f\u043e\u043c\u043e\u0433\u043e\u044e \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430 \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u0438\u0445 \u0437\u0430\u043f\u0438\u0441\u0456\u0432.
|
||||
couldNotSendAuthenticationRequestMessage=\u041d\u0435 \u0432\u0434\u0430\u043b\u043e\u0441\u044f \u043d\u0430\u0434\u0456\u0441\u043b\u0430\u0442\u0438 \u0437\u0430\u043f\u0438\u0442 \u0430\u0432\u0442\u0435\u043d\u0442\u0438\u0444\u0456\u043a\u0430\u0446\u0456\u0457 \u0434\u043e \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430 \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u0438\u0445 \u0437\u0430\u043f\u0438\u0441\u0456\u0432.
|
||||
unexpectedErrorHandlingRequestMessage=\u041d\u0435\u043e\u0447\u0456\u043a\u0443\u0432\u0430\u043d\u0430 \u043f\u043e\u043c\u0438\u043b\u043a\u0430 \u043f\u0456\u0434 \u0447\u0430\u0441 \u043e\u0431\u0440\u043e\u0431\u043a\u0438 \u0437\u0430\u043f\u0438\u0442\u0443 \u0430\u0432\u0442\u0435\u043d\u0442\u0438\u0444\u0456\u043a\u0430\u0446\u0456\u0457 \u0434\u043e \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430 \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u0438\u0445 \u0437\u0430\u043f\u0438\u0441\u0456\u0432.
|
||||
invalidAccessCodeMessage=\u041d\u0435\u0432\u0456\u0440\u043d\u0438\u0439 \u043a\u043e\u0434 \u0434\u043e\u0441\u0442\u0443\u043f\u0443.
|
||||
sessionNotActiveMessage=\u0421\u0435\u0441\u0456\u044f \u043d\u0435\u0430\u043a\u0442\u0438\u0432\u043d\u0430.
|
||||
invalidCodeMessage=\u0421\u0442\u0430\u043b\u0430\u0441\u044f \u043f\u043e\u043c\u0438\u043b\u043a\u0430, \u0431\u0443\u0434\u044c \u043b\u0430\u0441\u043a\u0430, \u0443\u0432\u0456\u0439\u0434\u0456\u0442\u044c \u0437\u043d\u043e\u0432\u0443 \u0447\u0435\u0440\u0435\u0437 \u0432\u0430\u0448 \u0437\u0430\u0441\u0442\u043e\u0441\u0443\u043d\u043e\u043a.
|
||||
cookieNotFoundMessage=\u0424\u0430\u0439\u043b cookie \u043d\u0435 \u0437\u043d\u0430\u0439\u0434\u0435\u043d\u043e. \u041f\u0435\u0440\u0435\u043a\u043e\u043d\u0430\u0439\u0442\u0435\u0441\u044f, \u0449\u043e \u0444\u0430\u0439\u043b\u0438 cookie \u0443\u0432\u0456\u043c\u043a\u043d\u0435\u043d\u043e \u0443 \u0432\u0430\u0448\u043e\u043c\u0443 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0456.
|
||||
insufficientLevelOfAuthentication=\u0417\u0430\u043f\u0438\u0442\u0430\u043d\u0438\u0439 \u0440\u0456\u0432\u0435\u043d\u044c \u0430\u0432\u0442\u0435\u043d\u0442\u0438\u0444\u0456\u043a\u0430\u0446\u0456\u0457 \u043d\u0435 \u0431\u0443\u0432 \u0437\u0430\u0434\u043e\u0432\u043e\u043b\u0435\u043d\u0438\u0439.
|
||||
identityProviderUnexpectedErrorMessage=\u041d\u0435\u043e\u0447\u0456\u043a\u0443\u0432\u0430\u043d\u0430 \u043f\u043e\u043c\u0438\u043b\u043a\u0430 \u043f\u0456\u0434 \u0447\u0430\u0441 \u0430\u0432\u0442\u0435\u043d\u0442\u0438\u0444\u0456\u043a\u0430\u0446\u0456\u0457 \u0437\u0430 \u0434\u043e\u043f\u043e\u043c\u043e\u0433\u043e\u044e \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430 \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u0438\u0445 \u0437\u0430\u043f\u0438\u0441\u0456\u0432.
|
||||
identityProviderMissingStateMessage=\u0412\u0456\u0434\u0441\u0443\u0442\u043d\u0456\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u0441\u0442\u0430\u043d\u0443 \u0443 \u0432\u0456\u0434\u043f\u043e\u0432\u0456\u0434\u0456 \u0432\u0456\u0434 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430 \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u0438\u0445 \u0437\u0430\u043f\u0438\u0441\u0456\u0432.
|
||||
identityProviderMissingCodeOrErrorMessage=\u0412\u0456\u0434\u0441\u0443\u0442\u043d\u0456\u0439 \u043a\u043e\u0434 \u0430\u0431\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043f\u043e\u043c\u0438\u043b\u043a\u0438 \u0443 \u0432\u0456\u0434\u043f\u043e\u0432\u0456\u0434\u0456 \u0432\u0456\u0434 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430 \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u0438\u0445 \u0437\u0430\u043f\u0438\u0441\u0456\u0432.
|
||||
identityProviderInvalidResponseMessage=\u041d\u0435\u0432\u0456\u0440\u043d\u0430 \u0432\u0456\u0434\u043f\u043e\u0432\u0456\u0434\u044c \u0432\u0456\u0434 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430 \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u0438\u0445 \u0437\u0430\u043f\u0438\u0441\u0456\u0432.
|
||||
identityProviderInvalidSignatureMessage=\u041d\u0435\u0432\u0456\u0440\u043d\u0438\u0439 \u043f\u0456\u0434\u043f\u0438\u0441 \u0443 \u0432\u0456\u0434\u043f\u043e\u0432\u0456\u0434\u0456 \u0432\u0456\u0434 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430 \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u0438\u0445 \u0437\u0430\u043f\u0438\u0441\u0456\u0432.
|
||||
identityProviderNotFoundMessage=\u041d\u0435 \u0432\u0434\u0430\u043b\u043e\u0441\u044f \u0437\u043d\u0430\u0439\u0442\u0438 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430 \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u0438\u0445 \u0437\u0430\u043f\u0438\u0441\u0456\u0432.
|
||||
identityProviderLinkSuccess=\u0412\u0438 \u0443\u0441\u043f\u0456\u0448\u043d\u043e \u043f\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u043b\u0438 \u0441\u0432\u043e\u044e \u0430\u0434\u0440\u0435\u0441\u0443 \u0435\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0457 \u043f\u043e\u0448\u0442\u0438. \u0411\u0443\u0434\u044c \u043b\u0430\u0441\u043a\u0430, \u043f\u043e\u0432\u0435\u0440\u043d\u0456\u0442\u044c\u0441\u044f \u0434\u043e \u0441\u0432\u043e\u0433\u043e \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430 \u0442\u0430 \u043f\u0440\u043e\u0434\u043e\u0432\u0436\u0442\u0435 \u0432\u0445\u0456\u0434.
|
||||
staleCodeMessage=\u0426\u044f \u0441\u0442\u043e\u0440\u0456\u043d\u043a\u0430 \u0431\u0456\u043b\u044c\u0448\u0435 \u043d\u0435 \u0434\u0456\u0439\u0441\u043d\u0430, \u0431\u0443\u0434\u044c \u043b\u0430\u0441\u043a\u0430, \u043f\u043e\u0432\u0435\u0440\u043d\u0456\u0442\u044c\u0441\u044f \u0434\u043e \u0441\u0432\u043e\u0433\u043e \u0437\u0430\u0441\u0442\u043e\u0441\u0443\u043d\u043a\u0443 \u0442\u0430 \u0443\u0432\u0456\u0439\u0434\u0456\u0442\u044c \u0437\u043d\u043e\u0432\u0443
|
||||
realmSupportsNoCredentialsMessage=Realm \u043d\u0435 \u043f\u0456\u0434\u0442\u0440\u0438\u043c\u0443\u0454 \u0436\u043e\u0434\u043d\u043e\u0433\u043e \u0442\u0438\u043f\u0443 \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u0438\u0445 \u0434\u0430\u043d\u0438\u0445.
|
||||
credentialSetupRequired=\u041d\u0435 \u0432\u0434\u0430\u0454\u0442\u044c\u0441\u044f \u0443\u0432\u0456\u0439\u0442\u0438, \u043f\u043e\u0442\u0440\u0456\u0431\u043d\u0456 \u043d\u0430\u043b\u0430\u0448\u0442\u0443\u0432\u0430\u043d\u043d\u044f \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u0438\u0445 \u0434\u0430\u043d\u0438\u0445.
|
||||
identityProviderNotUniqueMessage=Realm \u043f\u0456\u0434\u0442\u0440\u0438\u043c\u0443\u0454 \u043a\u0456\u043b\u044c\u043a\u0430 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430 \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u0438\u0445 \u0437\u0430\u043f\u0438\u0441\u0456\u0432. \u041d\u0435 \u0432\u0434\u0430\u043b\u043e\u0441\u044f \u0432\u0438\u0437\u043d\u0430\u0447\u0438\u0442\u0438, \u044f\u043a\u043e\u0433\u043e \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430 \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u0438\u0445 \u0437\u0430\u043f\u0438\u0441\u0456\u0432 \u0441\u043b\u0456\u0434 \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u043e\u0432\u0443\u0432\u0430\u0442\u0438 \u0434\u043b\u044f \u0430\u0432\u0442\u0435\u043d\u0442\u0438\u0444\u0456\u043a\u0430\u0446\u0456\u0457.
|
||||
emailVerifiedMessage=\u0412\u0430\u0448\u0443 \u0430\u0434\u0440\u0435\u0441\u0443 \u0435\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0457 \u043f\u043e\u0448\u0442\u0438 \u0431\u0443\u043b\u043e \u043f\u0435\u0440\u0435\u0432\u0456\u0440\u0435\u043d\u043e.
|
||||
emailVerifiedAlreadyMessage=\u0412\u0430\u0448\u0443 \u0430\u0434\u0440\u0435\u0441\u0443 \u0435\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0457 \u043f\u043e\u0448\u0442\u0438 \u0432\u0436\u0435 \u043f\u0435\u0440\u0435\u0432\u0456\u0440\u0435\u043d\u043e.
|
||||
staleEmailVerificationLink=\u041f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f, \u043d\u0430 \u044f\u043a\u0435 \u0412\u0438 \u043d\u0430\u0442\u0438\u0441\u043d\u0443\u043b\u0438, \u0454 \u0437\u0430\u0441\u0442\u0430\u0440\u0456\u043b\u0438\u043c \u0456 \u0431\u0456\u043b\u044c\u0448\u0435 \u043d\u0435 \u043f\u0440\u0430\u0446\u044e\u0454. \u041c\u043e\u0436\u043b\u0438\u0432\u043e, \u0412\u0438 \u0432\u0436\u0435 \u043f\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u043b\u0438 \u0441\u0432\u043e\u044e \u0435\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u0443 \u0430\u0434\u0440\u0435\u0441\u0443.
|
||||
identityProviderAlreadyLinkedMessage=\u041e\u0431\u043b\u0456\u043a\u043e\u0432\u0438\u0439 \u0437\u0430\u043f\u0438\u0441, \u043f\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u0438\u0439 {0}, \u0432\u0436\u0435 \u0437\u0432''\u044f\u0437\u0430\u043d\u0438\u0439 \u0437 \u0456\u043d\u0448\u0438\u043c \u043a\u043e\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0435\u043c.
|
||||
confirmAccountLinking=\u041f\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0438 \u0437\u0432''\u044f\u0437\u0443\u0432\u0430\u043d\u043d\u044f \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u043e\u0433\u043e \u0437\u0430\u043f\u0438\u0441\u0443 {0} \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430 \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u0438\u0445 \u0437\u0430\u043f\u0438\u0441\u0456\u0432 {1} \u0437 \u0432\u0430\u0448\u0438\u043c \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u0438\u043c \u0437\u0430\u043f\u0438\u0441\u043e\u043c.
|
||||
confirmEmailAddressVerification=\u041f\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0438 \u0430\u0434\u0440\u0435\u0441\u0443 \u0435\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0457 \u043f\u043e\u0448\u0442\u0438 {0}.
|
||||
confirmExecutionOfActions=\u0412\u0438\u043a\u043e\u043d\u0430\u0439\u0442\u0435 \u043d\u0430\u0441\u0442\u0443\u043f\u043d\u0456 \u0434\u0456\u0457
|
||||
backToApplication=« \u041d\u0430\u0437\u0430\u0434 \u0434\u043e \u0437\u0430\u0441\u0442\u043e\u0441\u0443\u043d\u043a\u0443
|
||||
missingParameterMessage=\u0412\u0456\u0434\u0441\u0443\u0442\u043d\u0456 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0438\: {0}
|
||||
clientNotFoundMessage=\u041a\u043b\u0456\u0454\u043d\u0442\u0430 \u043d\u0435 \u0437\u043d\u0430\u0439\u0434\u0435\u043d\u043e.
|
||||
clientDisabledMessage=\u041a\u043b\u0456\u0454\u043d\u0442\u0430 \u0432\u0438\u043c\u043a\u043d\u0435\u043d\u043e.
|
||||
invalidParameterMessage=\u041d\u0435\u0432\u0456\u0440\u043d\u0438\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\: {0}
|
||||
alreadyLoggedIn=\u0412\u0438 \u0432\u0436\u0435 \u0432\u0432\u0456\u0439\u0448\u043b\u0438 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0443.
|
||||
differentUserAuthenticated=\u0412\u0438 \u0432\u0436\u0435 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0456\u043a\u043e\u0432\u0430\u043d\u0456 \u044f\u043a \u0456\u043d\u0448\u0438\u0439 \u043a\u043e\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447 ''{0}'' \u0443 \u0446\u0456\u0439 \u0441\u0435\u0441\u0456\u0457. \u0421\u043f\u043e\u0447\u0430\u0442\u043a\u0443 \u0432\u0438\u0439\u0434\u0456\u0442\u044c.
|
||||
brokerLinkingSessionExpired=\u0417\u0430\u043f\u0438\u0442\u0430\u043d\u043e \u0437\u0432''\u044f\u0437\u0443\u0432\u0430\u043d\u043d\u044f \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u043e\u0433\u043e \u0437\u0430\u043f\u0438\u0441\u0443 \u0431\u0440\u043e\u043a\u0435\u0440\u0430, \u0430\u043b\u0435 \u043f\u043e\u0442\u043e\u0447\u043d\u0430 \u0441\u0435\u0441\u0456\u044f \u0431\u0456\u043b\u044c\u0448\u0435 \u043d\u0435\u0434\u0456\u0439\u0441\u043d\u0430.
|
||||
proceedWithAction=» \u041d\u0430\u0442\u0438\u0441\u043d\u0456\u0442\u044c \u0442\u0443\u0442, \u0449\u043e\u0431 \u043f\u0440\u043e\u0434\u043e\u0432\u0436\u0438\u0442\u0438
|
||||
acrNotFulfilled=\u0412\u0438\u043c\u043e\u0433\u0438 \u0430\u0432\u0442\u0435\u043d\u0442\u0438\u0444\u0456\u043a\u0430\u0446\u0456\u0457 \u043d\u0435 \u0432\u0438\u043a\u043e\u043d\u0430\u043d\u043e
|
||||
requiredAction.CONFIGURE_TOTP=\u041d\u0430\u043b\u0430\u0448\u0442\u0443\u0432\u0430\u0442\u0438 OTP
|
||||
requiredAction.TERMS_AND_CONDITIONS=\u041f\u043e\u043b\u043e\u0436\u0435\u043d\u043d\u044f \u0442\u0430 \u0443\u043c\u043e\u0432\u0438
|
||||
requiredAction.UPDATE_PASSWORD=\u041e\u043d\u043e\u0432\u0438\u0442\u0438 \u043f\u0430\u0440\u043e\u043b\u044c
|
||||
requiredAction.UPDATE_PROFILE=\u041e\u043d\u043e\u0432\u0438\u0442\u0438 \u043f\u0440\u043e\u0444\u0456\u043b\u044c
|
||||
requiredAction.VERIFY_EMAIL=\u041f\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0438 \u0430\u0434\u0440\u0435\u0441\u0443 \u0435\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0457 \u043f\u043e\u0448\u0442\u0438
|
||||
requiredAction.CONFIGURE_RECOVERY_AUTHN_CODES=\u0413\u0435\u043d\u0435\u0440\u0443\u0432\u0430\u0442\u0438 \u043a\u043e\u0434\u0438 \u0432\u0456\u0434\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044f
|
||||
requiredAction.webauthn-register-passwordless=\u0420\u0435\u0454\u0441\u0442\u0440\u0430\u0446\u0456\u044f Webauthn \u0431\u0435\u0437 \u043f\u0430\u0440\u043e\u043b\u044f
|
||||
invalidTokenRequiredActions=\u041d\u0435\u043e\u0431\u0445\u0456\u0434\u043d\u0456 \u0434\u0456\u0457, \u044f\u043a\u0456 \u043c\u0456\u0441\u0442\u044f\u0442\u044c\u0441\u044f \u0432 \u043f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u0456, \u043d\u0435\u0434\u0456\u0439\u0441\u043d\u0456
|
||||
doX509Login=\u0412\u0438 \u0443\u0432\u0456\u0439\u0434\u0435\u0442\u0435 \u044f\u043a\:
|
||||
clientCertificate=\u0441\u0435\u0440\u0442\u0438\u0444\u0456\u043a\u0430\u0442 \u043a\u043b\u0456\u0454\u043d\u0442\u0430 X509\:
|
||||
noCertificate=[\u041d\u0435\u043c\u0430\u0454 \u0441\u0435\u0440\u0442\u0438\u0444\u0456\u043a\u0430\u0442\u0430]
|
||||
pageNotFound=\u0421\u0442\u043e\u0440\u0456\u043d\u043a\u0430 \u043d\u0435 \u0437\u043d\u0430\u0439\u0434\u0435\u043d\u0430
|
||||
internalServerError=\u0421\u0442\u0430\u043b\u0430\u0441\u044f \u0432\u043d\u0443\u0442\u0440\u0456\u0448\u043d\u044f \u043f\u043e\u043c\u0438\u043b\u043a\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0430
|
||||
console-username=\u0406\u043c''\u044f \u043a\u043e\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430\:
|
||||
console-password=\u041f\u0430\u0440\u043e\u043b\u044c\:
|
||||
console-otp=\u041e\u0434\u043d\u043e\u0440\u0430\u0437\u043e\u0432\u0438\u0439 \u043f\u0430\u0440\u043e\u043b\u044c\:
|
||||
console-new-password=\u041d\u043e\u0432\u0438\u0439 \u043f\u0430\u0440\u043e\u043b\u044c\:
|
||||
console-confirm-password=\u041f\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0438 \u043f\u0430\u0440\u043e\u043b\u044c\:
|
||||
console-update-password=\u041f\u043e\u0442\u0440\u0456\u0431\u043d\u043e \u043e\u043d\u043e\u0432\u0438\u0442\u0438 \u0432\u0430\u0448 \u043f\u0430\u0440\u043e\u043b\u044c.
|
||||
console-verify-email=\u0412\u0430\u043c \u043f\u043e\u0442\u0440\u0456\u0431\u043d\u043e \u043f\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0438 \u0441\u0432\u043e\u044e \u0430\u0434\u0440\u0435\u0441\u0443 \u0435\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0457 \u043f\u043e\u0448\u0442\u0438. \u041c\u0438 \u043d\u0430\u0434\u0456\u0441\u043b\u0430\u043b\u0438 \u0435\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u0438\u0439 \u043b\u0438\u0441\u0442 \u043d\u0430 \u0430\u0434\u0440\u0435\u0441\u0443 {0}, \u044f\u043a\u0438\u0439 \u043c\u0456\u0441\u0442\u0438\u0442\u044c \u043a\u043e\u0434 \u043f\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u0436\u0435\u043d\u043d\u044f. \u0412\u0432\u0435\u0434\u0456\u0442\u044c \u0446\u0435\u0439 \u043a\u043e\u0434 \u0443 \u043f\u043e\u043b\u0435 \u043d\u0438\u0436\u0447\u0435.
|
||||
console-email-code=\u041a\u043e\u0434 \u0437 \u0435\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0457 \u043f\u043e\u0448\u0442\u0438\:
|
||||
console-accept-terms=\u041f\u0440\u0438\u0439\u043d\u044f\u0442\u0438 \u0443\u043c\u043e\u0432\u0438? [y/n]\:
|
||||
console-accept=y
|
||||
openshift.scope.user_info=\u0406\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0456\u044f \u043f\u0440\u043e \u043a\u043e\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430
|
||||
openshift.scope.user_check-access=\u0406\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0456\u044f \u043f\u0440\u043e \u0434\u043e\u0441\u0442\u0443\u043f \u043a\u043e\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430
|
||||
openshift.scope.user_full=\u041f\u043e\u0432\u043d\u0438\u0439 \u0434\u043e\u0441\u0442\u0443\u043f
|
||||
openshift.scope.list-projects=\u0421\u043f\u0438\u0441\u043e\u043a \u043f\u0440\u043e\u0435\u043a\u0442\u0456\u0432
|
||||
saml.post-form.title=\u041f\u0435\u0440\u0435\u0430\u0434\u0440\u0435\u0441\u0430\u0446\u0456\u044f \u0430\u0432\u0442\u0435\u043d\u0442\u0438\u0444\u0456\u043a\u0430\u0446\u0456\u0457
|
||||
saml.post-form.message=\u041f\u0435\u0440\u0435\u0430\u0434\u0440\u0435\u0441\u0430\u0446\u0456\u044f, \u0431\u0443\u0434\u044c \u043b\u0430\u0441\u043a\u0430, \u0437\u0430\u0447\u0435\u043a\u0430\u0439\u0442\u0435.
|
||||
saml.post-form.js-disabled=JavaScript \u0432\u0438\u043c\u043a\u043d\u0435\u043d\u043e. \u041c\u0438 \u043d\u0430\u043f\u043e\u043b\u0435\u0433\u043b\u0438\u0432\u043e \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0454\u043c\u043e \u0432\u0432\u0456\u043c\u043a\u043d\u0443\u0442\u0438 \u0439\u043e\u0433\u043e. \u0429\u043e\u0431 \u043f\u0440\u043e\u0434\u043e\u0432\u0436\u0438\u0442\u0438, \u043d\u0430\u0442\u0438\u0441\u043d\u0456\u0442\u044c \u043a\u043d\u043e\u043f\u043a\u0443 \u043d\u0438\u0436\u0447\u0435.
|
||||
saml.artifactResolutionServiceInvalidResponse=\u041d\u0435 \u0432\u0434\u0430\u0454\u0442\u044c\u0441\u044f \u0432\u0438\u0440\u0456\u0448\u0438\u0442\u0438 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442.
|
||||
otp-display-name=\u0417\u0430\u0441\u0442\u043e\u0441\u0443\u043d\u043e\u043a \u0430\u0432\u0442\u0435\u043d\u0442\u0438\u0444\u0456\u043a\u0430\u0446\u0456\u0457
|
||||
otp-help-text=\u0412\u0432\u0435\u0434\u0456\u0442\u044c \u043a\u043e\u0434 \u043f\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u0436\u0435\u043d\u043d\u044f \u0437 \u0437\u0430\u0441\u0442\u043e\u0441\u0443\u043d\u043a\u0443 \u0430\u0432\u0442\u0435\u043d\u0442\u0438\u0444\u0456\u043a\u0430\u0446\u0456\u0457.
|
||||
otp-reset-description=\u042f\u043a\u0443 \u043a\u043e\u043d\u0444\u0456\u0433\u0443\u0440\u0430\u0446\u0456\u044e OTP \u0441\u043b\u0456\u0434 \u0432\u0438\u0434\u0430\u043b\u0438\u0442\u0438?
|
||||
password-display-name=\u041f\u0430\u0440\u043e\u043b\u044c
|
||||
password-help-text=\u0423\u0432\u0456\u0439\u0434\u0456\u0442\u044c, \u0432\u0432\u0456\u0432\u0448\u0438 \u0441\u0432\u0456\u0439 \u043f\u0430\u0440\u043e\u043b\u044c.
|
||||
auth-username-form-display-name=\u0406\u043c''\u044f \u043a\u043e\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430
|
||||
auth-username-form-help-text=\u041f\u043e\u0447\u043d\u0456\u0442\u044c \u0432\u0445\u0456\u0434, \u0432\u0432\u0456\u0432\u0448\u0438 \u0441\u0432\u043e\u0454 \u0456\u043c''\u044f \u043a\u043e\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430
|
||||
auth-username-password-form-display-name=\u0406\u043c''\u044f \u043a\u043e\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430 \u0442\u0430 \u043f\u0430\u0440\u043e\u043b\u044c
|
||||
auth-username-password-form-help-text=\u0423\u0432\u0456\u0439\u0434\u0456\u0442\u044c, \u0432\u0432\u0456\u0432\u0448\u0438 \u0441\u0432\u043e\u0454 \u0456\u043c''\u044f \u043a\u043e\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430 \u0442\u0430 \u043f\u0430\u0440\u043e\u043b\u044c.
|
||||
auth-recovery-authn-code-form-display-name=\u041a\u043e\u0434 \u0432\u0456\u0434\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044f \u0430\u0432\u0442\u0435\u043d\u0442\u0438\u0444\u0456\u043a\u0430\u0446\u0456\u0457
|
||||
auth-recovery-authn-code-form-help-text=\u0412\u0432\u0435\u0434\u0456\u0442\u044c \u043a\u043e\u0434 \u0432\u0456\u0434\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044f \u0430\u0432\u0442\u0435\u043d\u0442\u0438\u0444\u0456\u043a\u0430\u0446\u0456\u0457 \u0437 \u043f\u043e\u043f\u0435\u0440\u0435\u0434\u043d\u044c\u043e \u0441\u0442\u0432\u043e\u0440\u0435\u043d\u043e\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0443.
|
||||
auth-recovery-code-info-message=\u0412\u0432\u0435\u0434\u0456\u0442\u044c \u043a\u043e\u0434 \u0432\u0456\u0434\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044f.
|
||||
auth-recovery-code-prompt=\u041a\u043e\u0434 \u0432\u0456\u0434\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044f \#{0}
|
||||
auth-recovery-code-header=\u0423\u0432\u0456\u0439\u0434\u0456\u0442\u044c \u0437\u0430 \u0434\u043e\u043f\u043e\u043c\u043e\u0433\u043e\u044e \u043a\u043e\u0434\u0443 \u0432\u0456\u0434\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044f \u0430\u0432\u0442\u0435\u043d\u0442\u0438\u0444\u0456\u043a\u0430\u0446\u0456\u0457
|
||||
recovery-codes-error-invalid=\u041d\u0435\u0434\u0456\u0439\u0441\u043d\u0438\u0439 \u043a\u043e\u0434 \u0432\u0456\u0434\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044f \u0430\u0432\u0442\u0435\u043d\u0442\u0438\u0444\u0456\u043a\u0430\u0446\u0456\u0457
|
||||
recovery-code-config-header=\u041a\u043e\u0434\u0438 \u0432\u0456\u0434\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044f \u0430\u0432\u0442\u0435\u043d\u0442\u0438\u0444\u0456\u043a\u0430\u0446\u0456\u0457
|
||||
recovery-code-config-warning-title=\u041a\u043e\u0434\u0438 \u0432\u0456\u0434\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044f \u0431\u0456\u043b\u044c\u0448\u0435 \u043d\u0435 \u043c\u043e\u0436\u043b\u0438\u0432\u043e \u0431\u0443\u0434\u0435 \u043f\u0435\u0440\u0435\u0433\u043b\u044f\u043d\u0443\u0442\u0438 \u043f\u0456\u0441\u043b\u044f \u0432\u0438\u0445\u043e\u0434\u0443 \u0437 \u0446\u0456\u0454\u0457 \u0441\u0442\u043e\u0440\u0456\u043d\u043a\u0438
|
||||
recovery-code-config-warning-message=\u041e\u0431\u043e\u0432''\u044f\u0437\u043a\u043e\u0432\u043e \u0440\u043e\u0437\u0434\u0440\u0443\u043a\u0443\u0439\u0442\u0435, \u0437\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0442\u0435 \u0430\u0431\u043e \u0441\u043a\u043e\u043f\u0456\u044e\u0439\u0442\u0435 \u0457\u0445 \u0434\u043e \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u0430 \u043f\u0430\u0440\u043e\u043b\u0456\u0432 \u0456 \u0437\u0431\u0435\u0440\u0435\u0436\u0456\u0442\u044c. \u0421\u043a\u0430\u0441\u0443\u0432\u0430\u043d\u043d\u044f \u0446\u044c\u043e\u0433\u043e \u043d\u0430\u043b\u0430\u0448\u0442\u0443\u0432\u0430\u043d\u043d\u044f \u043f\u0440\u0438\u0437\u0432\u0435\u0434\u0435 \u0434\u043e \u0432\u0438\u0434\u0430\u043b\u0435\u043d\u043d\u044f \u0446\u0438\u0445 \u043a\u043e\u0434\u0456\u0432 \u0432\u0456\u0434\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044f \u0437 \u0432\u0430\u0448\u043e\u0433\u043e \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u043e\u0433\u043e \u0437\u0430\u043f\u0438\u0441\u0443.
|
||||
recovery-codes-print=\u0414\u0440\u0443\u043a
|
||||
recovery-codes-download=\u0417\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0438\u0442\u0438
|
||||
recovery-codes-copy=\u041a\u043e\u043f\u0456\u044e\u0432\u0430\u0442\u0438
|
||||
recovery-codes-copied=\u0421\u043a\u043e\u043f\u0456\u0439\u043e\u0432\u0430\u043d\u043e
|
||||
recovery-codes-confirmation-message=\u042f \u0437\u0431\u0435\u0440\u0456\u0433 \u0446\u0456 \u043a\u043e\u0434\u0438 \u0432 \u0431\u0435\u0437\u043f\u0435\u0447\u043d\u043e\u043c\u0443 \u043c\u0456\u0441\u0446\u0456
|
||||
recovery-codes-action-complete=\u0417\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u0438 \u043d\u0430\u043b\u0430\u0448\u0442\u0443\u0432\u0430\u043d\u043d\u044f
|
||||
recovery-codes-action-cancel=\u0421\u043a\u0430\u0441\u0443\u0432\u0430\u0442\u0438 \u043d\u0430\u043b\u0430\u0448\u0442\u0443\u0432\u0430\u043d\u043d\u044f
|
||||
recovery-codes-download-file-header=\u0417\u0431\u0435\u0440\u0456\u0433\u0430\u0439\u0442\u0435 \u0446\u0456 \u043a\u043e\u0434\u0438 \u0432\u0456\u0434\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044f \u0432 \u0431\u0435\u0437\u043f\u0435\u0447\u043d\u043e\u043c\u0443 \u043c\u0456\u0441\u0446\u0456.
|
||||
recovery-codes-download-file-description=\u041a\u043e\u0434\u0438 \u0432\u0456\u0434\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044f \u2014 \u0446\u0435 \u043e\u0434\u043d\u043e\u0440\u0430\u0437\u043e\u0432\u0456 \u043f\u0430\u0440\u043e\u043b\u0456, \u044f\u043a\u0456 \u0434\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442\u044c \u0412\u0430\u043c \u0443\u0432\u0456\u0439\u0442\u0438 \u0434\u043e \u0441\u0432\u043e\u0433\u043e \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u043e\u0433\u043e \u0437\u0430\u043f\u0438\u0441\u0443, \u044f\u043a\u0449\u043e \u0443 \u0412\u0430\u0441 \u043d\u0435\u043c\u0430\u0454 \u0434\u043e\u0441\u0442\u0443\u043f\u0443 \u0434\u043e \u0430\u0432\u0442\u0435\u043d\u0442\u0438\u0444\u0456\u043a\u0430\u0442\u043e\u0440\u0430.
|
||||
recovery-codes-download-file-date=\u0426\u0456 \u043a\u043e\u0434\u0438 \u0431\u0443\u043b\u0438 \u0437\u0433\u0435\u043d\u0435\u0440\u043e\u0432\u0430\u043d\u0456
|
||||
recovery-codes-label-default=\u041a\u043e\u0434\u0438 \u0432\u0456\u0434\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044f
|
||||
webauthn-display-name=\u041a\u043b\u044e\u0447 \u0431\u0435\u0437\u043f\u0435\u043a\u0438
|
||||
webauthn-help-text=\u0412\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u043e\u0432\u0443\u0439\u0442\u0435 \u0441\u0432\u0456\u0439 \u043a\u043b\u044e\u0447 \u0431\u0435\u0437\u043f\u0435\u043a\u0438 \u0434\u043b\u044f \u0432\u0445\u043e\u0434\u0443.
|
||||
webauthn-passwordless-display-name=\u041a\u043b\u044e\u0447 \u0431\u0435\u0437\u043f\u0435\u043a\u0438
|
||||
webauthn-passwordless-help-text=\u0412\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u043e\u0432\u0443\u0439\u0442\u0435 \u0441\u0432\u0456\u0439 \u043a\u043b\u044e\u0447 \u0431\u0435\u0437\u043f\u0435\u043a\u0438 \u0434\u043b\u044f \u0432\u0445\u043e\u0434\u0443 \u0431\u0435\u0437 \u043f\u0430\u0440\u043e\u043b\u044f.
|
||||
webauthn-login-title=\u041a\u043b\u044e\u0447 \u0431\u0435\u0437\u043f\u0435\u043a\u0438 \u0434\u043b\u044f \u0432\u0445\u043e\u0434\u0443
|
||||
webauthn-registration-title=\u0420\u0435\u0454\u0441\u0442\u0440\u0430\u0446\u0456\u044f \u043a\u043b\u044e\u0447\u0430 \u0431\u0435\u0437\u043f\u0435\u043a\u0438
|
||||
webauthn-available-authenticators=\u0414\u043e\u0441\u0442\u0443\u043f\u043d\u0456 \u043a\u043b\u044e\u0447\u0456 \u0431\u0435\u0437\u043f\u0435\u043a\u0438
|
||||
webauthn-unsupported-browser-text=WebAuthn \u043d\u0435 \u043f\u0456\u0434\u0442\u0440\u0438\u043c\u0443\u0454\u0442\u044c\u0441\u044f \u0446\u0438\u043c \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043e\u043c. \u0421\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0456\u043d\u0448\u0438\u0439 \u0430\u0431\u043e \u0437\u0432\u0435\u0440\u043d\u0456\u0442\u044c\u0441\u044f \u0434\u043e \u0430\u0434\u043c\u0456\u043d\u0456\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430.
|
||||
webauthn-doAuthenticate=\u0423\u0432\u0456\u0439\u0442\u0438 \u0437\u0430 \u0434\u043e\u043f\u043e\u043c\u043e\u0433\u043e\u044e \u043a\u043b\u044e\u0447\u0430 \u0431\u0435\u0437\u043f\u0435\u043a\u0438
|
||||
webauthn-createdAt-label=\u0421\u0442\u0432\u043e\u0440\u0435\u043d\u043e
|
||||
webauthn-error-title=\u041f\u043e\u043c\u0438\u043b\u043a\u0430 \u043a\u043b\u044e\u0447\u0430 \u0431\u0435\u0437\u043f\u0435\u043a\u0438
|
||||
webauthn-error-registration=\u041d\u0435 \u0432\u0434\u0430\u043b\u043e\u0441\u044f \u0437\u0430\u0440\u0435\u0454\u0441\u0442\u0440\u0443\u0432\u0430\u0442\u0438 \u0432\u0430\u0448 \u043a\u043b\u044e\u0447 \u0431\u0435\u0437\u043f\u0435\u043a\u0438.<br/> {0}
|
||||
webauthn-error-api-get=\u041f\u043e\u043c\u0438\u043b\u043a\u0430 \u0430\u0432\u0442\u0435\u043d\u0442\u0438\u0444\u0456\u043a\u0430\u0446\u0456\u0457 \u0437\u0430 \u0434\u043e\u043f\u043e\u043c\u043e\u0433\u043e\u044e \u043a\u043b\u044e\u0447\u0430 \u0431\u0435\u0437\u043f\u0435\u043a\u0438.<br/> {0}
|
||||
webauthn-error-different-user=\u041f\u0435\u0440\u0448\u0438\u0439 \u0430\u0432\u0442\u0435\u043d\u0442\u0438\u0444\u0456\u043a\u043e\u0432\u0430\u043d\u0438\u0439 \u043a\u043e\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447 \u043d\u0435 \u0454 \u0442\u0438\u043c, \u0445\u0442\u043e \u0430\u0432\u0442\u0435\u043d\u0442\u0438\u0444\u0456\u043a\u043e\u0432\u0430\u043d\u0438\u0439 \u043a\u043b\u044e\u0447\u0435\u043c \u0431\u0435\u0437\u043f\u0435\u043a\u0438.
|
||||
webauthn-error-auth-verification=\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0430\u0432\u0442\u0435\u043d\u0442\u0438\u0444\u0456\u043a\u0430\u0446\u0456\u0457 \u043a\u043b\u044e\u0447\u0430 \u0431\u0435\u0437\u043f\u0435\u043a\u0438 \u043d\u0435\u0432\u0456\u0440\u043d\u0438\u0439.<br/> {0}
|
||||
webauthn-error-register-verification=\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0440\u0435\u0454\u0441\u0442\u0440\u0430\u0446\u0456\u0457 \u043a\u043b\u044e\u0447\u0430 \u0431\u0435\u0437\u043f\u0435\u043a\u0438 \u043d\u0435\u0432\u0456\u0440\u043d\u0438\u0439.<br/> {0}
|
||||
webauthn-error-user-not-found=\u041d\u0435\u0432\u0456\u0434\u043e\u043c\u0438\u0439 \u043a\u043e\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447 \u0430\u0432\u0442\u0435\u043d\u0442\u0438\u0444\u0456\u043a\u043e\u0432\u0430\u043d\u0438\u0439 \u0437\u0430 \u0434\u043e\u043f\u043e\u043c\u043e\u0433\u043e\u044e \u043a\u043b\u044e\u0447\u0430 \u0431\u0435\u0437\u043f\u0435\u043a\u0438.
|
||||
identity-provider-redirector=\u041f\u0456\u0434\u043a\u043b\u044e\u0447\u0456\u0442\u044c\u0441\u044f \u0434\u043e \u0456\u043d\u0448\u043e\u0433\u043e \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430 \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u0438\u0445 \u0437\u0430\u043f\u0438\u0441\u0456\u0432
|
||||
identity-provider-login-label=\u0410\u0431\u043e \u0443\u0432\u0456\u0439\u0434\u0456\u0442\u044c \u0437\u0430 \u0434\u043e\u043f\u043e\u043c\u043e\u0433\u043e\u044e
|
||||
idp-email-verification-display-name=\u041f\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u0436\u0435\u043d\u043d\u044f \u0435\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0457 \u043f\u043e\u0448\u0442\u0438
|
||||
idp-email-verification-help-text=\u041f\u0456\u0434\u0432''\u044f\u0436\u0456\u0442\u044c \u0441\u0432\u0456\u0439 \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u0438\u0439 \u0437\u0430\u043f\u0438\u0441, \u043f\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0432\u0448\u0438 \u0441\u0432\u043e\u044e \u0435\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u0443 \u0430\u0434\u0440\u0435\u0441\u0443.
|
||||
idp-username-password-form-display-name=\u0406\u043c''\u044f \u043a\u043e\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430 \u0442\u0430 \u043f\u0430\u0440\u043e\u043b\u044c
|
||||
idp-username-password-form-help-text=\u041f\u0456\u0434\u0432''\u044f\u0436\u0456\u0442\u044c \u0441\u0432\u0456\u0439 \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u0438\u0439 \u0437\u0430\u043f\u0438\u0441, \u0443\u0432\u0456\u0439\u0448\u043e\u0432\u0448\u0438 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0443.
|
||||
finalDeletionConfirmation=\u042f\u043a\u0449\u043e \u0432\u0438 \u0432\u0438\u0434\u0430\u043b\u0438\u0442\u0435 \u0441\u0432\u0456\u0439 \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u0438\u0439 \u0437\u0430\u043f\u0438\u0441, \u0439\u043e\u0433\u043e \u043d\u0435\u043c\u043e\u0436\u043b\u0438\u0432\u043e \u0431\u0443\u0434\u0435 \u0432\u0456\u0434\u043d\u043e\u0432\u0438\u0442\u0438. \u0429\u043e\u0431 \u0437\u0431\u0435\u0440\u0435\u0433\u0442\u0438 \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u0438\u0439 \u0437\u0430\u043f\u0438\u0441, \u043d\u0430\u0442\u0438\u0441\u043d\u0456\u0442\u044c \u00ab\u0421\u043a\u0430\u0441\u0443\u0432\u0430\u0442\u0438\u00bb.
|
||||
irreversibleAction=\u0426\u044f \u0434\u0456\u044f \u043d\u0435\u0437\u0432\u043e\u0440\u043e\u0442\u043d\u0430
|
||||
deleteAccountConfirm=\u0412\u0438\u0434\u0430\u043b\u0438\u0442\u0438 \u043f\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u0436\u0435\u043d\u043d\u044f \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u043e\u0433\u043e \u0437\u0430\u043f\u0438\u0441\u0443
|
||||
deletingImplies=\u0412\u0438\u0434\u0430\u043b\u0435\u043d\u043d\u044f \u0412\u0430\u0448\u043e\u0433\u043e \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u043e\u0433\u043e \u0437\u0430\u043f\u0438\u0441\u0443 \u043f\u0435\u0440\u0435\u0434\u0431\u0430\u0447\u0430\u0454\:
|
||||
errasingData=\u0412\u0438\u0434\u0430\u043b\u0435\u043d\u043d\u044f \u0443\u0441\u0456\u0445 \u0412\u0430\u0448\u0438\u0445 \u0434\u0430\u043d\u0438\u0445
|
||||
loggingOutImmediately=\u041d\u0435\u0433\u0430\u0439\u043d\u0438\u0439 \u0432\u0438\u0445\u0456\u0434 \u0456\u0437 \u0441\u0438\u0441\u0442\u0435\u043c\u0438
|
||||
accountUnusable=\u0411\u0443\u0434\u044c-\u044f\u043a\u0435 \u043f\u043e\u0434\u0430\u043b\u044c\u0448\u0435 \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u0430\u043d\u043d\u044f \u0437\u0430\u0441\u0442\u043e\u0441\u0443\u043d\u043a\u0443 \u0431\u0443\u0434\u0435 \u043d\u0435\u043c\u043e\u0436\u043b\u0438\u0432\u0438\u043c \u0437 \u0446\u0438\u043c \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u0438\u043c \u0437\u0430\u043f\u0438\u0441\u043e\u043c
|
||||
userDeletedSuccessfully=\u041a\u043e\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430 \u0443\u0441\u043f\u0456\u0448\u043d\u043e \u0432\u0438\u0434\u0430\u043b\u0435\u043d\u043e
|
||||
access-denied=\u0423 \u0434\u043e\u0441\u0442\u0443\u043f\u0456 \u0432\u0456\u0434\u043c\u043e\u0432\u043b\u0435\u043d\u043e
|
||||
access-denied-when-idp-auth=\u0423 \u0434\u043e\u0441\u0442\u0443\u043f\u0456 \u0432\u0456\u0434\u043c\u043e\u0432\u043b\u0435\u043d\u043e \u043f\u0456\u0434 \u0447\u0430\u0441 \u0430\u0432\u0442\u0435\u043d\u0442\u0438\u0444\u0456\u043a\u0430\u0446\u0456\u0457 \u0437\u0430 \u0434\u043e\u043f\u043e\u043c\u043e\u0433\u043e\u044e {0}
|
||||
frontchannel-logout.title=\u0412\u0438\u0445\u0456\u0434
|
||||
frontchannel-logout.message=\u0412\u0438 \u0432\u0438\u0445\u043e\u0434\u0438\u0442\u0435 \u0437 \u043d\u0430\u0441\u0442\u0443\u043f\u043d\u0438\u0445 \u0437\u0430\u0441\u0442\u043e\u0441\u0443\u043d\u043a\u0456\u0432
|
||||
logoutConfirmTitle=\u0412\u0438\u0445\u0456\u0434
|
||||
logoutConfirmHeader=\u0412\u0438 \u0431\u0430\u0436\u0430\u0454\u0442\u0435 \u0432\u0438\u0439\u0442\u0438?
|
||||
doLogout=\u0412\u0438\u0439\u0442\u0438
|
||||
readOnlyUsernameMessage=\u0412\u0438 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u043e\u043d\u043e\u0432\u0438\u0442\u0438 \u0441\u0432\u043e\u0454 \u0456\u043c''\u044f \u043a\u043e\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430, \u043e\u0441\u043a\u0456\u043b\u044c\u043a\u0438 \u0432\u043e\u043d\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0435 \u043b\u0438\u0448\u0435 \u0434\u043b\u044f \u0447\u0438\u0442\u0430\u043d\u043d\u044f.
|
||||
shouldBeEqual={0} \u043f\u043e\u0432\u0438\u043d\u043d\u043e \u0431\u0443\u0442\u0438 \u0440\u0456\u0432\u043d\u0438\u043c {1}
|
||||
shouldBeDifferent={0} \u043f\u043e\u0432\u0438\u043d\u043d\u043e \u0432\u0456\u0434\u0440\u0456\u0437\u043d\u044f\u0442\u0438\u0441\u044f \u0432\u0456\u0434 {1}
|
||||
shouldMatchPattern=\u0428\u0430\u0431\u043b\u043e\u043d \u043f\u043e\u0432\u0438\u043d\u0435\u043d \u0432\u0456\u0434\u043f\u043e\u0432\u0456\u0434\u0430\u0442\u0438\: `/{0}/`
|
||||
mustBeAnInteger=\u041f\u043e\u0432\u0438\u043d\u043d\u043e \u0431\u0443\u0442\u0438 \u0446\u0456\u043b\u0438\u043c \u0447\u0438\u0441\u043b\u043e\u043c
|
||||
notAValidOption=\u041d\u0435 \u0454 \u0434\u0456\u0439\u0441\u043d\u043e\u044e \u043e\u043f\u0446\u0456\u0454\u044e
|
||||
selectAnOption=\u0412\u0438\u0431\u0435\u0440\u0456\u0442\u044c \u043e\u043f\u0446\u0456\u044e
|
||||
remove=\u0412\u0438\u0434\u0430\u043b\u0438\u0442\u0438
|
||||
addValue=\u0414\u043e\u0434\u0430\u0442\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044f
|
||||
languages=\u041c\u043e\u0432\u0438
|
@ -0,0 +1,445 @@
|
||||
|
||||
doLogIn=\u767b\u5f55
|
||||
doRegister=\u6ce8\u518c
|
||||
doRegisterSecurityKey=\u6ce8\u518c
|
||||
doCancel=\u53d6\u6d88
|
||||
doSubmit=\u63d0\u4ea4
|
||||
doBack=\u8fd4\u56de
|
||||
doYes=\u662f
|
||||
doNo=\u5426
|
||||
doContinue=\u7ee7\u7eed
|
||||
doIgnore=\u5ffd\u7565
|
||||
doAccept=\u63a5\u53d7
|
||||
doDecline=\u62d2\u7edd
|
||||
doForgotPassword=\u5fd8\u8bb0\u5bc6\u7801?
|
||||
doClickHere=\u70b9\u51fb\u8fd9\u91cc
|
||||
doImpersonate=\u6a21\u62df
|
||||
doTryAgain=\u91cd\u8bd5
|
||||
doTryAnotherWay=\u5c1d\u8bd5\u5176\u4ed6\u65b9\u6cd5
|
||||
doConfirmDelete=\u786e\u8ba4\u5220\u9664
|
||||
errorDeletingAccount=\u5220\u9664\u8d26\u6237\u65f6\u9047\u5230\u9519\u8bef
|
||||
deletingAccountForbidden=\u60a8\u6ca1\u6709\u6743\u9650\u5220\u9664\u60a8\u7684\u8d26\u6237\uff0c\u8bf7\u8054\u7cfb\u7ba1\u7406\u5458\u3002
|
||||
kerberosNotConfigured=Kerberos \u6ca1\u6709\u914d\u7f6e
|
||||
kerberosNotConfiguredTitle=Kerberos \u6ca1\u6709\u914d\u7f6e
|
||||
bypassKerberosDetail=\u60a8\u6ca1\u6709\u901a\u8fc7 Kerberos \u767b\u5f55 \u6216\u8005\u60a8\u7684\u6d4f\u89c8\u5668\u6ca1\u6709\u8bbe\u7f6e Kerberos \u767b\u5f55. \u8bf7\u70b9\u51fb\u7ee7\u7eed\u901a\u8fc7\u5176\u4ed6\u9014\u5f84\u767b\u5f55\u3002
|
||||
kerberosNotSetUp=Kerberos \u6ca1\u6709\u914d\u7f6e\uff0c\u60a8\u65e0\u6cd5\u767b\u5f55\u3002
|
||||
registerTitle=\u6ce8\u518c
|
||||
loginAccountTitle=\u767b\u5f55\u5230\u60a8\u7684\u8d26\u6237
|
||||
loginTitle=\u767b\u5f55\u5230 {0}
|
||||
loginTitleHtml={0}
|
||||
impersonateTitle={0} \u6a21\u62df\u7528\u6237
|
||||
impersonateTitleHtml=<strong>{0}</strong>\u6a21\u62df\u7528\u6237
|
||||
realmChoice=\u57df
|
||||
unknownUser=\u672a\u77e5\u7528\u6237
|
||||
loginTotpTitle=\u914d\u7f6e\u9a8c\u8bc1\u5668
|
||||
loginProfileTitle=\u66f4\u65b0\u8d26\u6237\u4fe1\u606f
|
||||
loginIdpReviewProfileTitle=\u66f4\u65b0\u8d26\u6237\u4fe1\u606f
|
||||
loginTimeout=\u60a8\u7684\u767b\u5f55\u5df2\u8d85\u65f6\uff0c\u8bf7\u91cd\u65b0\u5f00\u59cb\u767b\u5f55\u3002
|
||||
reauthenticate=\u8bf7\u91cd\u65b0\u6388\u6743\u4ee5\u7ee7\u7eed
|
||||
oauthGrantTitle=\u6388\u6743\u7ed9 {0}
|
||||
oauthGrantTitleHtml={0}
|
||||
oauthGrantInformation=\u901a\u8fc7\u4e86\u89e3 {0} \u5c06\u5982\u4f55\u5904\u7406\u60a8\u7684\u6570\u636e\uff0c\u786e\u4fdd\u60a8\u4fe1\u4efb {0} \u3002
|
||||
oauthGrantReview=\u60a8\u53ef\u4ee5\u5ba1\u9605
|
||||
oauthGrantTos=\u670d\u52a1\u6761\u6b3e\u3002
|
||||
oauthGrantPolicy=\u9690\u79c1\u653f\u7b56\u3002
|
||||
errorTitle=\u5f88\u62b1\u6b49...
|
||||
errorTitleHtml=\u6211\u4eec<strong>\u5f88\u62b1\u6b49</strong> ...
|
||||
emailVerifyTitle=\u9a8c\u8bc1\u7535\u5b50\u90ae\u7bb1\u5730\u5740
|
||||
emailForgotTitle=\u5fd8\u8bb0\u5bc6\u7801\u4e86\u5417?
|
||||
updateEmailTitle=\u66f4\u65b0\u70b9\u5728\u90ae\u7bb1
|
||||
emailUpdateConfirmationSentTitle=\u5df2\u53d1\u9001\u786e\u8ba4\u90ae\u4ef6\u3002
|
||||
emailUpdateConfirmationSent=\u5df2\u5411 {0} \u53d1\u9001\u4e86\u4e00\u5c01\u786e\u8ba4\u90ae\u4ef6. \u8bf7\u6309\u7167\u524d\u9762\u7684\u6307\u793a\u6765\u66f4\u65b0\u7535\u5b50\u90ae\u7bb1\u3002
|
||||
emailUpdatedTitle=\u7535\u5b50\u90ae\u7bb1\u5df2\u66f4\u65b0\u3002
|
||||
emailUpdated=\u60a8\u7684\u8d26\u6237\u7684\u7535\u5b50\u90ae\u7bb1\u5df2\u7ecf\u6210\u529f\u66f4\u65b0\u4e3a {0}.
|
||||
updatePasswordTitle=\u66f4\u65b0\u5bc6\u7801
|
||||
codeSuccessTitle=\u6210\u529f\u4ee3\u7801
|
||||
codeErrorTitle=\u9519\u8bef\u4ee3\u7801\: {0}
|
||||
displayUnsupported=\u4e0d\u652f\u6301\u8bf7\u6c42\u7684\u663e\u793a\u7c7b\u578b
|
||||
browserRequired=\u9700\u8981\u6d4f\u89c8\u5668\u6765\u767b\u5f55
|
||||
browserContinue=\u9700\u8981\u6d4f\u89c8\u5668\u6765\u5b8c\u6210\u767b\u5f55
|
||||
browserContinuePrompt=\u6253\u5f00\u6d4f\u89c8\u5668\u4ee5\u7ee7\u7eed\uff1f [y/n]\:
|
||||
browserContinueAnswer=y
|
||||
usb=USB
|
||||
nfc=NFC
|
||||
bluetooth=\u84dd\u7259
|
||||
internal=\u5185\u90e8
|
||||
unknown=\u672a\u77e5
|
||||
termsTitle=\u6761\u6b3e
|
||||
termsText=
|
||||
termsPlainText=\u9700\u8981\u786e\u5b9a\u7684\u6761\u6b3e\u3002
|
||||
termsAcceptanceRequired=\u60a8\u5fc5\u987b\u540c\u610f\u6211\u4eec\u7684\u7684\u670d\u52a1\u6761\u6b3e\u3002
|
||||
acceptTerms=\u6211\u540c\u610f\u670d\u52a1\u6761\u6b3e
|
||||
recaptchaFailed=\u65e0\u6548\u7684\u9a8c\u8bc1\u7801
|
||||
recaptchaNotConfigured=\u9700\u8981\u9a8c\u8bc1\u7801\uff0c\u4f46\u662f\u6ca1\u6709\u914d\u7f6e
|
||||
consentDenied=\u8bb8\u53ef\u88ab\u62d2\u7edd\u3002
|
||||
noAccount=\u65b0\u7528\u6237?
|
||||
username=\u7528\u6237\u540d
|
||||
usernameOrEmail=\u7528\u6237\u540d \u6216 \u7535\u5b50\u90ae\u7bb1\u5730\u5740
|
||||
firstName=\u540d
|
||||
givenName=\u59d3
|
||||
fullName=\u5168\u540d
|
||||
lastName=\u59d3
|
||||
familyName=\u59d3
|
||||
email=Email
|
||||
password=\u5bc6\u7801
|
||||
passwordConfirm=\u786e\u8ba4\u5bc6\u7801
|
||||
passwordNew=\u65b0\u5bc6\u7801
|
||||
passwordNewConfirm=\u786e\u8ba4\u65b0\u5bc6\u7801
|
||||
hidePassword=\u9690\u85cf\u5bc6\u7801
|
||||
showPassword=\u663e\u793a\u5bc6\u7801
|
||||
rememberMe=\u8bb0\u4f4f\u6211
|
||||
authenticatorCode=\u4e00\u6b21\u6027\u9a8c\u8bc1\u7801
|
||||
address=\u5730\u5740
|
||||
street=\u8857\u9053
|
||||
locality=\u5e02
|
||||
region=\u7701\uff0c\u81ea\u6cbb\u533a\uff0c\u76f4\u8f96\u5e02
|
||||
postal_code=\u90ae\u653f\u7f16\u7801
|
||||
country=\u56fd\u5bb6
|
||||
emailVerified=\u5df2\u9a8c\u8bc1\u7535\u5b50\u90ae\u4ef6
|
||||
website=\u7f51\u5740
|
||||
phoneNumber=\u7535\u8bdd\u53f7\u7801
|
||||
phoneNumberVerified=\u5df2\u9a8c\u8bc1\u7535\u8bdd\u53f7\u7801
|
||||
gender=\u6027\u522b
|
||||
birthday=\u751f\u65e5
|
||||
zoneinfo=\u65f6\u533a
|
||||
gssDelegationCredential=GSS Delegation Credential
|
||||
logoutOtherSessions=\u4ece\u5176\u4ed6\u8bbe\u5907\u4e2d\u767b\u51fa
|
||||
profileScopeConsentText=\u7528\u6237\u8d44\u6599
|
||||
emailScopeConsentText=\u7535\u5b50\u90ae\u7bb1\u5730\u5740
|
||||
addressScopeConsentText=\u5730\u5740
|
||||
phoneScopeConsentText=\u7535\u8bdd\u53f7\u7801
|
||||
offlineAccessScopeConsentText=\u79bb\u7ebf\u8bbf\u95ee
|
||||
samlRoleListScopeConsentText=\u6211\u7684\u89d2\u8272
|
||||
rolesScopeConsentText=\u7528\u6237\u89d2\u8272
|
||||
restartLoginTooltip=\u91cd\u65b0\u5f00\u59cb\u767b\u5f55
|
||||
loginTotpIntro=\u60a8\u9700\u8981\u8bbe\u7f6e\u4e00\u4e2a\u4e00\u6b21\u6027\u5bc6\u7801\u751f\u6210\u5668\u6765\u8bbf\u95ee\u60a8\u7684\u8d26\u6237
|
||||
loginTotpStep1=\u5728\u60a8\u7684\u79fb\u52a8\u8bbe\u5907\u4e2d\u5b89\u88c5\u4ee5\u4e0b\u4efb\u610f\u4e00\u4e2a\u5e94\u7528\uff1a
|
||||
loginTotpStep2=\u6253\u5f00\u8be5\u5e94\u7528\u6765\u626b\u63cf\u6761\u7801
|
||||
loginTotpStep3=\u8f93\u5165\u8be5\u5e94\u7528\u63d0\u4f9b\u7684\u4e00\u6b21\u6027\u4ee3\u7801\u5e76\u70b9\u51fb\u63d0\u4ea4\u6765\u5b8c\u6210\u914d\u7f6e\u3002
|
||||
loginTotpStep3DeviceName=\u8bf7\u63d0\u4f9b\u4e00\u4e2a\u8bbe\u5907\u540d\u79f0\u4ee5\u65b9\u4fbf\u7ba1\u7406\u60a8\u7684OTP\u8bbe\u5907
|
||||
loginTotpManualStep2=\u6253\u5f00\u5e94\u7528\u5e76\u8f93\u5165\u5bc6\u94a5\uff1a
|
||||
loginTotpManualStep3=\u5982\u679c\u5e94\u7528\u7a0b\u5e8f\u5141\u8bb8\u8bbe\u7f6e\uff0c\u8bf7\u4f7f\u7528\u4ee5\u4e0b\u914d\u7f6e\u503c\uff1a
|
||||
loginTotpUnableToScan=\u65e0\u6cd5\u626b\u63cf\uff1f
|
||||
loginTotpScanBarcode=\u626b\u63cf\u6761\u7801\uff1f
|
||||
loginCredential=\u51ed\u8bc1
|
||||
loginOtpOneTime=\u4e00\u6b21\u6027\u4ee3\u7801
|
||||
loginTotpType=\u7c7b\u578b
|
||||
loginTotpAlgorithm=\u7b97\u6cd5
|
||||
loginTotpDigits=\u4f4d\u6570
|
||||
loginTotpInterval=\u95f4\u9694
|
||||
loginTotpCounter=\u8ba1\u6570
|
||||
loginTotpDeviceName=\u8bbe\u5907\u540d\u79f0
|
||||
loginTotp.totp=\u57fa\u4e8e\u65f6\u95f4
|
||||
loginTotp.hotp=\u7ed9\u4e88\u8ba1\u6570\u5668
|
||||
totpAppFreeOTPName=FreeOTP
|
||||
totpAppGoogleName=Google Authenticator
|
||||
totpAppMicrosoftAuthenticatorName=Microsoft Authenticator
|
||||
loginChooseAuthenticator=\u9009\u62e9\u767b\u5f55\u65b9\u5f0f
|
||||
oauthGrantRequest=\u60a8\u662f\u5426\u6388\u4e88\u8fd9\u4e9b\u8bbf\u95ee\u6743\u9650?
|
||||
inResource=in
|
||||
oauth2DeviceVerificationTitle=\u8bbe\u5907\u767b\u5f55
|
||||
verifyOAuth2DeviceUserCode=\u8f93\u5165\u8bbe\u5907\u63d0\u4f9b\u7684\u4ee3\u7801\uff0c\u7136\u540e\u5355\u51fb\u63d0\u4ea4
|
||||
oauth2DeviceInvalidUserCodeMessage=\u9519\u8bef\u4ee3\u7801\uff0c\u8bf7\u91cd\u8bd5\u3002
|
||||
oauth2DeviceExpiredUserCodeMessage=\u4ee3\u7801\u5df2\u8fc7\u671f\u3002\u8bf7\u8fd4\u56de\u60a8\u7684\u8bbe\u5907\u5e76\u5c1d\u8bd5\u91cd\u65b0\u8fde\u63a5\u3002
|
||||
oauth2DeviceVerificationCompleteHeader=\u8bbe\u5907\u767b\u5f55\u6210\u529f
|
||||
oauth2DeviceVerificationCompleteMessage=\u60a8\u53ef\u4ee5\u5173\u95ed\u6b64\u6d4f\u89c8\u5668\u7a97\u53e3\u5e76\u8fd4\u56de\u60a8\u7684\u8bbe\u5907\u3002
|
||||
oauth2DeviceVerificationFailedHeader=\u8bbe\u5907\u767b\u5f55\u5931\u8d25\u3002
|
||||
oauth2DeviceVerificationFailedMessage=\u60a8\u53ef\u4ee5\u5173\u95ed\u6b64\u6d4f\u89c8\u5668\u7a97\u53e3\uff0c\u7136\u540e\u8fd4\u56de\u5230\u60a8\u7684\u8bbe\u5907\u5e76\u5c1d\u8bd5\u91cd\u65b0\u8fde\u63a5\u3002
|
||||
oauth2DeviceConsentDeniedMessage=\u8fde\u63a5\u8bbe\u5907\u7684\u540c\u610f\u88ab\u62d2\u7edd\u3002
|
||||
oauth2DeviceAuthorizationGrantDisabledMessage=\u4e0d\u5141\u8bb8\u6b64\u5ba2\u6237\u7aef\u542f\u52a8 OAuth 2.0 \u8bbe\u5907\u6388\u6743\u6388\u4e88\u3002\u8be5\u6d41\u7a0b\u5df2\u5bf9\u6b64\u5ba2\u6237\u7aef\u7981\u7528\u3002
|
||||
emailVerifyInstruction1=\u4e00\u5c01\u5305\u542b\u9a8c\u8bc1\u90ae\u7bb1\u5177\u4f53\u6b65\u9aa4\u7684\u90ae\u4ef6\u5df2\u7ecf\u53d1\u9001\u5230\u60a8\u7684\u90ae\u7bb1\u3002
|
||||
emailVerifyInstruction2=\u90ae\u7bb1\u6ca1\u6709\u6536\u5230\u9a8c\u8bc1\u7801?
|
||||
emailVerifyInstruction3=\u91cd\u65b0\u53d1\u9001\u7535\u5b50\u90ae\u4ef6
|
||||
emailLinkIdpTitle=\u94fe\u63a5 {0}
|
||||
emailLinkIdp1=\u4e00\u5c01\u5305\u542b\u94fe\u63a5\u8d26\u6237 {0} \u548c\u8d26\u6237 {1} \u5230\u8d26\u6237 {2} \u7684\u90ae\u4ef6\u5df2\u7ecf\u53d1\u9001\u5230\u60a8\u7684\u90ae\u7bb1\u3002
|
||||
emailLinkIdp2=\u90ae\u7bb1\u6ca1\u6709\u6536\u5230\u9a8c\u8bc1\u7801\u90ae\u4ef6?
|
||||
emailLinkIdp3=\u91cd\u65b0\u53d1\u9001\u7535\u5b50\u90ae\u4ef6
|
||||
emailLinkIdp4=\u5982\u679c\u60a8\u5df2\u7ecf\u5728\u4e0d\u540c\u7684\u6d4f\u89c8\u5668\u4e2d\u9a8c\u8bc1\u4e86\u7535\u5b50\u90ae\u4ef6
|
||||
emailLinkIdp5=\u6765\u7ee7\u7eed.
|
||||
backToLogin=« \u56de\u5230\u767b\u5f55
|
||||
emailInstruction=\u8f93\u5165\u60a8\u7684\u7528\u6237\u540d\u6216\u90ae\u7bb1\uff0c\u6211\u4eec\u4f1a\u53d1\u9001\u4e00\u5c01\u5e26\u6709\u8bbe\u7f6e\u65b0\u5bc6\u7801\u6b65\u9aa4\u7684\u90ae\u4ef6\u5230\u60a8\u7684\u90ae\u7bb1\u3002
|
||||
emailInstructionUsername=\u8f93\u5165\u60a8\u7684\u7528\u6237\u540d\uff0c\u6211\u4eec\u5c06\u5411\u60a8\u53d1\u9001\u5982\u4f55\u521b\u5efa\u65b0\u5bc6\u7801\u7684\u8bf4\u660e\u3002
|
||||
copyCodeInstruction=\u8bf7\u590d\u5236\u8fd9\u6bb5\u9a8c\u8bc1\u7801\u5e76\u7c98\u8d34\u5230\u60a8\u7684\u5e94\u7528\uff1a
|
||||
pageExpiredTitle=\u9875\u9762\u5df2\u8fc7\u671f
|
||||
pageExpiredMsg1=\u91cd\u542f\u767b\u5f55\u6d41\u7a0b
|
||||
pageExpiredMsg2=\u7ee7\u7eed\u767b\u5f55\u6d41\u7a0b
|
||||
personalInfo=\u4e2a\u4eba\u4fe1\u606f\:
|
||||
role_admin=\u7ba1\u7406\u5458
|
||||
role_realm-admin=\u57df\u7ba1\u7406\u5458
|
||||
role_create-realm=\u521b\u5efa\u57df
|
||||
role_create-client=\u521b\u5efa\u5ba2\u6237\u7aef
|
||||
role_view-realm=\u67e5\u770b\u57df
|
||||
role_view-users=\u67e5\u770b\u7528\u6237
|
||||
role_view-applications=\u67e5\u770b\u5e94\u7528
|
||||
role_view-clients=\u67e5\u770b\u5ba2\u6237\u7aef
|
||||
role_view-events=\u67e5\u770b\u65f6\u95f4
|
||||
role_view-identity-providers=\u67e5\u770b\u8eab\u4efd\u63d0\u4f9b\u8005
|
||||
role_manage-realm=\u7ba1\u7406\u57df
|
||||
role_manage-users=\u7ba1\u7406\u7528\u6237
|
||||
role_manage-applications=\u7ba1\u7406\u5e94\u7528
|
||||
role_manage-identity-providers=\u7ba1\u7406\u8eab\u4efd\u63d0\u4f9b\u8005
|
||||
role_manage-clients=\u7ba1\u7406\u5ba2\u6237
|
||||
role_manage-events=\u7ba1\u7406\u4e8b\u4ef6
|
||||
role_view-profile=\u67e5\u770b\u7528\u6237\u4fe1\u606f
|
||||
role_manage-account=\u7ba1\u7406\u8d26\u6237
|
||||
role_manage-account-links=\u7ba1\u7406\u8d26\u6237\u94fe\u63a5
|
||||
role_read-token=\u8bfb\u53d6\u4ee4\u724c
|
||||
role_offline-access=\u79bb\u7ebf\u8bbf\u95ee
|
||||
client_account=\u8d26\u6237
|
||||
client_account-console=\u8d26\u6237\u63a7\u5236\u53f0
|
||||
client_security-admin-console=\u5b89\u5168\u7ba1\u7406\u63a7\u5236\u53f0
|
||||
client_admin-cli=\u7ba1\u7406\u547d\u4ee4\u884c\u5de5\u5177
|
||||
client_realm-management=\u57df\u7ba1\u7406
|
||||
client_broker=\u7ecf\u7eaa\u4eba
|
||||
requiredFields=\u5fc5\u586b\u5b57\u6bb5
|
||||
invalidUserMessage=\u65e0\u6548\u7684\u7528\u6237\u540d\u6216\u5bc6\u7801\u3002
|
||||
invalidUsernameMessage=\u65e0\u6548\u7684\u7528\u6237\u540d\u3002
|
||||
invalidUsernameOrEmailMessage=\u65e0\u6548\u7684\u7528\u6237\u540d\u6216\u7535\u5b50\u90ae\u7bb1\u3002
|
||||
invalidPasswordMessage=\u65e0\u6548\u7684\u5bc6\u7801.
|
||||
invalidEmailMessage=\u65e0\u6548\u7684\u7535\u5b50\u90ae\u4ef6\u5730\u5740
|
||||
accountDisabledMessage=\u8d26\u6237\u5df2\u88ab\u7981\u7528\uff0c\u8bf7\u8054\u7cfb\u60a8\u7684\u7ba1\u7406\u5458\u3002
|
||||
accountTemporarilyDisabledMessage=\u8d26\u6237\u88ab\u4e34\u65f6\u7981\u7528\uff0c\u8bf7\u8054\u7cfb\u7ba1\u7406\u5458\u6216\u7a0d\u540e\u518d\u8bd5\u3002
|
||||
expiredCodeMessage=\u767b\u5f55\u8d85\u65f6\uff0c\u8bf7\u91cd\u65b0\u767b\u5f55\u3002
|
||||
expiredActionMessage=\u64cd\u4f5c\u5df2\u8fc7\u671f\u3002\u8bf7\u767b\u5f55\u540e\u7ee7\u7eed\u3002
|
||||
expiredActionTokenNoSessionMessage=\u64cd\u4f5c\u5df2\u8fc7\u671f\u3002
|
||||
expiredActionTokenSessionExistsMessage=\u64cd\u4f5c\u5df2\u8fc7\u671f\u3002\u8bf7\u91cd\u65b0\u5f00\u59cb\u3002
|
||||
sessionLimitExceeded=\u5df2\u6709\u8fc7\u591a\u4f1a\u8bdd\u3002
|
||||
missingFirstNameMessage=\u8bf7\u8f93\u5165\u540d\u3002
|
||||
missingLastNameMessage=\u8bf7\u8f93\u5165\u59d3\u3002
|
||||
missingEmailMessage=\u8bf7\u8f93\u5165\u7535\u5b50\u90ae\u7bb1.
|
||||
missingUsernameMessage=\u8bf7\u8f93\u5165\u7528\u6237\u540d\u3002
|
||||
missingPasswordMessage=\u8bf7\u8f93\u5165\u5bc6\u7801\u3002
|
||||
missingTotpMessage=\u8bf7\u8f93\u5165\u9a8c\u8bc1\u7801
|
||||
missingTotpDeviceNameMessage=\u8bf7\u6307\u5b9a\u8bbe\u5907\u540d\u79f0\u3002
|
||||
notMatchPasswordMessage=\u5bc6\u7801\u4e0d\u5339\u914d\u3002
|
||||
error-invalid-value=\u65e0\u6548\u503c\u3002
|
||||
error-invalid-blank=\u8bf7\u8f93\u5165\u503c\u3002
|
||||
error-empty=\u8bf7\u8f93\u5165\u503c\u3002
|
||||
error-invalid-length=\u957f\u5ea6\u5fc5\u987b\u5728 {1} \u548c {2} \u4e4b\u95f4\u3002
|
||||
error-invalid-length-too-short=\u6700\u5c0f\u957f\u5ea6\u4e3a {1}\u3002
|
||||
error-invalid-length-too-long=\u6700\u5927\u957f\u5ea6\u4e3a {2}\u3002
|
||||
error-invalid-email=\u65e0\u6548\u7535\u5b50\u90ae\u4ef6\u5730\u5740\u3002
|
||||
error-invalid-number=\u65e0\u6548\u53f7\u7801\u3002
|
||||
error-number-out-of-range=\u53f7\u7801\u5fc5\u987b\u4ecb\u4e8e {1} \u548c {2} \u4e4b\u95f4\u3002
|
||||
error-number-out-of-range-too-small=\u6570\u5b57\u7684\u6700\u5c0f\u503c\u5fc5\u987b\u662f {1}\u3002
|
||||
error-number-out-of-range-too-big=\u6570\u503c\u7684\u6700\u5927\u503c\u5fc5\u987b\u4e3a {2}\u3002
|
||||
error-pattern-no-match=\u65e0\u6548\u503c\u3002
|
||||
error-invalid-uri=\u65e0\u6548 URL\u3002
|
||||
error-invalid-uri-scheme=\u65e0\u6548 URL \u65b9\u6848\u3002
|
||||
error-invalid-uri-fragment=\u65e0\u6548 URL \u7247\u6bb5\u3002
|
||||
error-user-attribute-required=\u8bf7\u6307\u5b9a\u6b64\u5b57\u6bb5\u3002
|
||||
error-invalid-date=\u65e0\u6548\u65e5\u671f\u3002
|
||||
error-user-attribute-read-only=\u6b64\u5b57\u6bb5\u53ea\u8bfb\u3002
|
||||
error-username-invalid-character=\u503c\u5305\u542b\u65e0\u6548\u5b57\u7b26\u3002
|
||||
error-person-name-invalid-character=\u503c\u5305\u542b\u65e0\u6548\u5b57\u7b26\u3002
|
||||
error-reset-otp-missing-id=\u8bf7\u9009\u62e9 OTP \u914d\u7f6e\u3002
|
||||
invalidPasswordExistingMessage=\u65e0\u6548\u7684\u65e7\u5bc6\u7801
|
||||
invalidPasswordBlacklistedMessage=\u65e0\u6548\u5bc6\u7801\uff1a\u8be5\u5bc6\u7801\u5df2\u7ecf\u88ab\u62c9\u9ed1\u3002
|
||||
invalidPasswordConfirmMessage=\u786e\u8ba4\u5bc6\u7801\u4e0d\u76f8\u540c
|
||||
invalidTotpMessage=\u65e0\u6548\u7684\u9a8c\u8bc1\u7801
|
||||
usernameExistsMessage=\u7528\u6237\u540d\u5df2\u88ab\u5360\u7528
|
||||
emailExistsMessage=\u7535\u5b50\u90ae\u4ef6\u5df2\u5b58\u5728\u3002
|
||||
federatedIdentityExistsMessage=\u7528\u6237 {0} {1} \u5df2\u5b58\u5728. \u8bf7\u767b\u5f55\u8d26\u6237\u7ba1\u7406\u754c\u9762\u94fe\u63a5\u8d26\u6237.
|
||||
federatedIdentityUnavailableMessage=\u4f7f\u7528\u8eab\u4efd\u63d0\u4f9b\u8005 {1} \u8fdb\u884c\u8eab\u4efd\u9a8c\u8bc1\u7684\u7528\u6237 {0} \u4e0d\u5b58\u5728\u3002\u8bf7\u8054\u7cfb\u7ba1\u7406\u5458\u3002
|
||||
federatedIdentityUnmatchedEssentialClaimMessage=\u8eab\u4efd\u63d0\u4f9b\u8005\u7b7e\u53d1\u7684 ID \u4ee4\u724c\u4e0e\u914d\u7f6e\u7684\u57fa\u672c\u8981\u6c42\u4e0d\u5339\u914d\u3002\u8bf7\u8054\u7cfb\u7ba1\u7406\u5458\u3002
|
||||
confirmLinkIdpTitle=\u8d26\u6237\u5df2\u5b58\u5728
|
||||
federatedIdentityConfirmLinkMessage=\u7528\u6237{0} {1} \u5df2\u5b58\u5728. \u600e\u4e48\u7ee7\u7eed?
|
||||
federatedIdentityConfirmReauthenticateMessage=\u4ee5 {0} \u767b\u5f55\u6765\u5c06 {1} \u8fde\u63a5\u5230\u60a8\u7684\u8d26\u6237
|
||||
nestedFirstBrokerFlowMessage={0} \u7528\u6237 {1} \u4e0e\u4efb\u4f55\u5df2\u77e5\u7528\u6237\u90fd\u6ca1\u6709\u5173\u8054\u3002
|
||||
confirmLinkIdpReviewProfile=\u5ba1\u67e5\u60a8\u7684\u4fe1\u606f
|
||||
confirmLinkIdpContinue=\u6dfb\u52a0\u5230\u5df2\u77e5\u8d26\u6237
|
||||
configureTotpMessage=\u60a8\u9700\u8981\u8bbe\u7f6e\u79fb\u52a8\u9a8c\u8bc1\u7801\u6765\u6fc0\u6d3b\u60a8\u7684\u8d26\u6237\u3002
|
||||
configureBackupCodesMessage=\u60a8\u9700\u8981\u8bbe\u7f6e\u5907\u4efd\u4ee3\u7801\u6765\u6fc0\u6d3b\u60a8\u7684\u8d26\u6237\u3002
|
||||
updateProfileMessage=\u60a8\u9700\u8981\u66f4\u65b0\u60a8\u7684\u7528\u6237\u8d44\u6599\u6765\u6fc0\u6d3b\u60a8\u7684\u8d26\u6237\u3002
|
||||
updatePasswordMessage=\u60a8\u9700\u8981\u66f4\u65b0\u60a8\u7684\u5bc6\u7801\u6765\u6fc0\u6d3b\u60a8\u7684\u8d26\u6237\u3002
|
||||
updateEmailMessage=\u60a8\u9700\u8981\u66f4\u65b0\u60a8\u7684\u7535\u5b50\u90ae\u7bb1\u5730\u5740\u6765\u6fc0\u6d3b\u60a8\u7684\u8d26\u6237\u3002
|
||||
resetPasswordMessage=\u60a8\u9700\u8981\u4fee\u6539\u60a8\u7684\u5bc6\u7801\u3002
|
||||
verifyEmailMessage=\u60a8\u9700\u8981\u9a8c\u8bc1\u60a8\u7684\u7535\u5b50\u90ae\u7bb1\u6765\u6fc0\u6d3b\u60a8\u7684\u8d26\u6237
|
||||
linkIdpMessage=\u60a8\u9700\u8981\u9a8c\u8bc1\u60a8\u7684\u7535\u5b50\u90ae\u7bb1\u6765\u8fde\u63a5\u5230\u8d26\u6237{0}.
|
||||
emailSentMessage=\u60a8\u5f88\u5feb\u4f1a\u6536\u5230\u4e00\u5c01\u5173\u4e8e\u63a5\u4e0b\u6765\u64cd\u4f5c\u7684\u90ae\u4ef6\u3002
|
||||
emailSendErrorMessage=\u65e0\u6cd5\u53d1\u9001\u90ae\u4ef6\uff0c\u8bf7\u7a0d\u540e\u518d\u8bd5
|
||||
accountUpdatedMessage=\u60a8\u7684\u8d26\u6237\u5df2\u7ecf\u66f4\u65b0\u3002
|
||||
accountPasswordUpdatedMessage=\u60a8\u7684\u5bc6\u7801\u5df2\u7ecf\u88ab\u66f4\u65b0\u3002
|
||||
delegationCompleteHeader=\u767b\u5f55\u6210\u529f
|
||||
delegationCompleteMessage=\u60a8\u53ef\u4ee5\u5173\u95ed\u6d4f\u89c8\u5668\u7a97\u53e3\uff0c\u8fd4\u56de\u63a7\u5236\u53f0\u5e94\u7528\u7a0b\u5e8f\u3002
|
||||
delegationFailedHeader=\u767b\u5f55\u5931\u8d25
|
||||
delegationFailedMessage=\u60a8\u53ef\u4ee5\u5173\u95ed\u6b64\u6d4f\u89c8\u5668\u7a97\u53e3\uff0c\u8fd4\u56de\u63a7\u5236\u53f0\u5e94\u7528\u7a0b\u5e8f\u5e76\u5c1d\u8bd5\u91cd\u65b0\u767b\u5f55\u3002
|
||||
noAccessMessage=\u65e0\u6743\u9650
|
||||
invalidPasswordMinLengthMessage=\u65e0\u6548\u7684\u5bc6\u7801\uff1a\u6700\u77ed\u957f\u5ea6 {0}.
|
||||
invalidPasswordMaxLengthMessage=\u65e0\u6548\u7684\u5bc6\u7801\uff1a\u6700\u5927\u957f\u5ea6 {0}.
|
||||
invalidPasswordMinDigitsMessage=\u65e0\u6548\u7684\u5bc6\u7801\uff1a \u81f3\u5c11\u5305\u542b{0} \u4e2a\u6570\u5b57
|
||||
invalidPasswordMinLowerCaseCharsMessage=\u65e0\u6548\u7684\u5bc6\u7801\uff1a\u81f3\u5c11\u5305\u542b {0} \u5c0f\u5199\u5b57\u6bcd.
|
||||
invalidPasswordMinUpperCaseCharsMessage=\u65e0\u6548\u7684\u5bc6\u7801\uff1a\u81f3\u5c11\u5305\u542b {0} \u5927\u5199\u5b57\u6bcd.
|
||||
invalidPasswordMinSpecialCharsMessage=\u65e0\u6548\u7684\u5bc6\u7801\uff1a\u81f3\u5c11\u5305\u542b {0} \u7279\u6b8a\u5b57\u7b26.
|
||||
invalidPasswordNotUsernameMessage=\u65e0\u6548\u7684\u5bc6\u7801\uff1a \u4e0d\u80fd\u4e0e\u7528\u6237\u540d\u76f8\u540c.
|
||||
invalidPasswordNotEmailMessage=\u65e0\u6548\u7684\u5bc6\u7801\uff1a\u4e0d\u80fd\u4e0e\u7535\u5b50\u90ae\u7bb1\u5730\u5740\u76f8\u540c\u3002
|
||||
invalidPasswordRegexPatternMessage=\u65e0\u6548\u7684\u5bc6\u7801\uff1a \u65e0\u6cd5\u4e0e\u6b63\u5219\u8868\u8fbe\u5f0f\u5339\u914d.
|
||||
invalidPasswordHistoryMessage=\u65e0\u6548\u7684\u5bc6\u7801\uff1a \u4e0d\u80fd\u4e0e\u524d {0} \u4e2a\u65e7\u5bc6\u7801\u76f8\u540c.
|
||||
invalidPasswordGenericMessage=\u65e0\u6548\u7684\u5bc6\u7801\uff1a\u65b0\u5bc6\u7801\u4e0d\u7b26\u5408\u5bc6\u7801\u89c4\u5219\u3002
|
||||
failedToProcessResponseMessage=\u65e0\u6cd5\u5904\u7406\u56de\u590d
|
||||
httpsRequiredMessage=\u9700\u8981HTTPS
|
||||
realmNotEnabledMessage=\u57df\u672a\u542f\u7528
|
||||
invalidRequestMessage=\u975e\u6cd5\u7684\u8bf7\u6c42
|
||||
successLogout=\u60a8\u5df2\u88ab\u767b\u51fa
|
||||
failedLogout=\u65e0\u6cd5\u767b\u51fa
|
||||
unknownLoginRequesterMessage=\u672a\u77e5\u7684\u767b\u5f55\u8bf7\u6c42\u53d1\u8d77\u65b9
|
||||
loginRequesterNotEnabledMessage=\u767b\u5f55\u8bf7\u6c42\u53d1\u8d77\u65b9\u672a\u542f\u7528
|
||||
bearerOnlyMessage=Bearer-only \u7684\u5e94\u7528\u4e0d\u5141\u8bb8\u901a\u8fc7\u6d4f\u89c8\u5668\u767b\u5f55
|
||||
standardFlowDisabledMessage=\u5ba2\u6237\u7aef\u4e0d\u5141\u8bb8\u53d1\u8d77\u6307\u5b9a\u8fd4\u56de\u7c7b\u578b\u7684\u6d4f\u89c8\u5668\u767b\u5f55. \u6b64\u5ba2\u6237\u7aef\u5df2\u7981\u7528\u6807\u51c6\u6d41\u7a0b\u3002
|
||||
implicitFlowDisabledMessage=\u5ba2\u6237\u7aef\u4e0d\u5141\u8bb8\u53d1\u8d77\u6307\u5b9a\u8fd4\u56de\u7c7b\u578b\u7684\u6d4f\u89c8\u5668\u767b\u5f55. \u6b64\u5ba2\u6237\u7aef\u5df2\u7981\u7528\u9690\u5f0f\u6d41\u7a0b\u3002
|
||||
invalidRedirectUriMessage=\u65e0\u6548\u7684\u8df3\u8f6c\u94fe\u63a5
|
||||
unsupportedNameIdFormatMessage=\u4e0d\u652f\u6301\u7684 NameIDFormat
|
||||
invalidRequesterMessage=\u65e0\u6548\u7684\u53d1\u8d77\u8005
|
||||
registrationNotAllowedMessage=\u4e0d\u5141\u8bb8\u6ce8\u518c
|
||||
resetCredentialNotAllowedMessage=\u4e0d\u5141\u8bb8\u91cd\u7f6e\u51ed\u8bc1
|
||||
permissionNotApprovedMessage=\u8bb8\u53ef\u6ca1\u6709\u6279\u51c6
|
||||
noRelayStateInResponseMessage=\u8eab\u4efd\u63d0\u4f9b\u8005\u6ca1\u6709\u8fd4\u56de\u4e2d\u7ee7\u72b6\u6001\u4fe1\u606f
|
||||
insufficientPermissionMessage=\u6743\u9650\u4e0d\u8db3\u4ee5\u94fe\u63a5\u65b0\u7684\u8eab\u4efd
|
||||
couldNotProceedWithAuthenticationRequestMessage=\u65e0\u6cd5\u4e0e\u8eab\u4efd\u63d0\u4f9b\u8005\u5904\u7406\u8ba4\u8bc1\u8bf7\u6c42
|
||||
couldNotObtainTokenMessage=\u672a\u4ece\u8eab\u4efd\u63d0\u4f9b\u8005\u83b7\u5f97\u4ee4\u724c
|
||||
unexpectedErrorRetrievingTokenMessage=\u4ece\u8eab\u4efd\u63d0\u4f9b\u8005\u83b7\u5f97\u4ee4\u724c\u65f6\u9047\u5230\u672a\u77e5\u9519\u8bef
|
||||
unexpectedErrorHandlingResponseMessage=\u4ece\u8eab\u4efd\u63d0\u4f9b\u8005\u83b7\u5f97\u56de\u590d\u65f6\u9047\u5230\u672a\u77e5\u9519\u8bef
|
||||
identityProviderAuthenticationFailedMessage=\u8ba4\u8bc1\u5931\u8d25\uff0c\u65e0\u6cd5\u901a\u8fc7\u8eab\u4efd\u63d0\u4f9b\u8005\u8ba4\u8bc1
|
||||
couldNotSendAuthenticationRequestMessage=\u65e0\u6cd5\u5411\u8eab\u4efd\u63d0\u4f9b\u65b9\u53d1\u9001\u8ba4\u8bc1\u8bf7\u6c42
|
||||
unexpectedErrorHandlingRequestMessage=\u5728\u5904\u7406\u53d1\u5411\u8ba4\u8bc1\u63d0\u4f9b\u65b9\u7684\u8bf7\u6c42\u65f6\uff0c\u51fa\u73b0\u672a\u77e5\u9519\u8bef\u3002
|
||||
invalidAccessCodeMessage=\u65e0\u6548\u7684\u8bbf\u95ee\u4ee3\u7801
|
||||
sessionNotActiveMessage=\u4f1a\u8bdd\u4e0d\u5728\u6d3b\u52a8\u72b6\u6001
|
||||
invalidCodeMessage=\u53d1\u751f\u9519\u8bef\uff0c\u8bf7\u901a\u8fc7\u5e94\u7528\u7a0b\u5e8f\u91cd\u65b0\u767b\u5f55\u3002
|
||||
cookieNotFoundMessage=\u672a\u627e\u5230 cookie\u3002\u8bf7\u786e\u4fdd\u6d4f\u89c8\u5668\u5df2\u542f\u7528 cookie\u3002
|
||||
insufficientLevelOfAuthentication=\u672a\u6ee1\u8db3\u6240\u8bf7\u6c42\u7684\u8eab\u4efd\u9a8c\u8bc1\u7ea7\u522b\u3002
|
||||
identityProviderUnexpectedErrorMessage=\u4e0e\u8eab\u4efd\u63d0\u4f9b\u7a0b\u5e8f\u8fdb\u884c\u8eab\u4efd\u9a8c\u8bc1\u65f6\u51fa\u73b0\u610f\u5916\u9519\u8bef
|
||||
identityProviderMissingStateMessage=\u8eab\u4efd\u63d0\u4f9b\u7a0b\u5e8f\u7684\u54cd\u5e94\u4e2d\u7f3a\u5c11\u72b6\u6001\u53c2\u6570\u3002
|
||||
identityProviderMissingCodeOrErrorMessage=\u8eab\u4efd\u63d0\u4f9b\u7a0b\u5e8f\u7684\u54cd\u5e94\u4e2d\u7f3a\u5c11\u4ee3\u7801\u6216\u9519\u8bef\u53c2\u6570\u3002
|
||||
identityProviderInvalidResponseMessage=\u8eab\u4efd\u63d0\u4f9b\u7a0b\u5e8f\u7684\u65e0\u6548\u54cd\u5e94\u3002
|
||||
identityProviderInvalidSignatureMessage=\u8eab\u4efd\u63d0\u4f9b\u7a0b\u5e8f\u54cd\u5e94\u4e2d\u7684\u65e0\u6548\u7b7e\u540d\u3002
|
||||
identityProviderNotFoundMessage=\u627e\u4e0d\u5230\u5177\u6709\u6807\u8bc6\u7b26\u7684\u8eab\u4efd\u63d0\u4f9b\u7a0b\u5e8f\u3002
|
||||
identityProviderLinkSuccess=\u60a8\u5df2\u6210\u529f\u9a8c\u8bc1\u7535\u5b50\u90ae\u4ef6\u3002\u8bf7\u56de\u5230\u539f\u6765\u7684\u6d4f\u89c8\u5668\u7ee7\u7eed\u767b\u5f55\u3002
|
||||
staleCodeMessage=\u6b64\u9875\u9762\u5df2\u5931\u6548\uff0c\u8bf7\u8fd4\u56de\u5e94\u7528\u7a0b\u5e8f\u5e76\u91cd\u65b0\u767b\u5f55
|
||||
realmSupportsNoCredentialsMessage=\u57df\u4e0d\u652f\u6301\u4efb\u4f55\u51ed\u8bc1\u7c7b\u578b\u3002
|
||||
credentialSetupRequired=\u65e0\u6cd5\u767b\u5f55\uff0c\u9700\u8981\u8bbe\u7f6e\u51ed\u8bc1\u3002
|
||||
identityProviderNotUniqueMessage=\u8be5\u57df\u652f\u6301\u591a\u4e2a\u8eab\u4efd\u63d0\u4f9b\u7a0b\u5e8f\u3002\u65e0\u6cd5\u786e\u5b9a\u5e94\u4f7f\u7528\u54ea\u4e2a\u8eab\u4efd\u63d0\u4f9b\u7a0b\u5e8f\u8fdb\u884c\u8eab\u4efd\u9a8c\u8bc1\u3002
|
||||
emailVerifiedMessage=\u60a8\u7684\u7535\u5b50\u90ae\u4ef6\u5730\u5740\u5df2\u901a\u8fc7\u9a8c\u8bc1\u3002
|
||||
emailVerifiedAlreadyMessage=\u60a8\u7684\u7535\u5b50\u90ae\u4ef6\u5730\u5740\u5df2\u88ab\u9a8c\u8bc1\u901a\u8fc7\u3002
|
||||
staleEmailVerificationLink=\u60a8\u70b9\u51fb\u7684\u94fe\u63a5\u662f\u65e7\u7684\u8fc7\u671f\u94fe\u63a5\uff0c\u5df2\u7ecf\u4e0d\u518d\u6709\u6548\u3002 \u4e5f\u8bb8\u60a8\u5df2\u7ecf\u9a8c\u8bc1\u4e86\u60a8\u7684\u7535\u5b50\u90ae\u4ef6\u3002
|
||||
identityProviderAlreadyLinkedMessage={0} \u8fd4\u56de\u7684\u8054\u5408\u8eab\u4efd\u5df2\u94fe\u63a5\u5230\u53e6\u4e00\u4e2a\u7528\u6237\u3002
|
||||
confirmAccountLinking=\u786e\u8ba4\u5c06\u8eab\u4efd\u63d0\u4f9b\u8005 {1} \u7684\u8d26\u6237 {0} \u4e0e\u60a8\u7684\u8d26\u6237\u94fe\u63a5\u3002
|
||||
confirmEmailAddressVerification=\u786e\u8ba4\u7535\u5b50\u90ae\u4ef6\u5730\u5740 {0} \u7684\u6709\u6548\u6027\u3002
|
||||
confirmExecutionOfActions=\u6267\u884c\u4ee5\u4e0b\u64cd\u4f5c
|
||||
backToApplication=« \u56de\u5230\u5e94\u7528
|
||||
missingParameterMessage=\u7f3a\u5c11\u53c2\u6570 \: {0}
|
||||
clientNotFoundMessage=\u5ba2\u6237\u7aef\u672a\u627e\u5230
|
||||
clientDisabledMessage=\u5ba2\u6237\u7aef\u5df2\u7981\u7528
|
||||
invalidParameterMessage=\u65e0\u6548\u7684\u53c2\u6570 \: {0}
|
||||
alreadyLoggedIn=\u60a8\u5df2\u7ecf\u767b\u5f55\u3002
|
||||
differentUserAuthenticated=\u60a8\u5df2\u7ecf\u4ee5\u4e0d\u540c\u7528\u6237 ''{0}'' \u7684\u8eab\u4efd\u5728\u6b64\u4f1a\u8bdd\u4e2d\u8fdb\u884c\u4e86\u8eab\u4efd\u9a8c\u8bc1\u3002\u8bf7\u5148\u6ce8\u9500\u3002
|
||||
brokerLinkingSessionExpired=\u5df2\u8bf7\u6c42\u4e0e\u7ecf\u7eaa\u4eba\u5e10\u6237\u94fe\u63a5\uff0c\u4f46\u5f53\u524d\u4f1a\u8bdd\u4e0d\u518d\u6709\u6548\u3002
|
||||
proceedWithAction=» \u70b9\u51fb\u6b64\u5904\u7ee7\u7eed
|
||||
acrNotFulfilled=\u672a\u6ee1\u8db3\u8eab\u4efd\u9a8c\u8bc1\u8981\u6c42
|
||||
requiredAction.CONFIGURE_TOTP=\u914d\u7f6eOTP
|
||||
requiredAction.TERMS_AND_CONDITIONS=\u6761\u6b3e\u548c\u6761\u4ef6
|
||||
requiredAction.UPDATE_PASSWORD=\u66f4\u65b0\u5bc6\u7801
|
||||
requiredAction.UPDATE_PROFILE=\u66f4\u65b0\u4e2a\u4eba\u8d44\u6599
|
||||
requiredAction.VERIFY_EMAIL=\u9a8c\u8bc1\u7535\u5b50\u90ae\u7bb1
|
||||
requiredAction.CONFIGURE_RECOVERY_AUTHN_CODES=\u751f\u6210\u6062\u590d\u4ee3\u7801
|
||||
requiredAction.webauthn-register-passwordless=Webauthn\u6ce8\u518c\u514d\u5bc6\u7801
|
||||
invalidTokenRequiredActions=\u94fe\u63a5\u4e2d\u5305\u542b\u7684\u5fc5\u9700\u64cd\u4f5c\u65e0\u6548
|
||||
doX509Login=\u60a8\u5c06\u88ab\u767b\u5f55\u4e3a\uff1a
|
||||
clientCertificate=X509\u5ba2\u6237\u7aef\u8bc1\u4e66\uff1a
|
||||
noCertificate=[No Certificate]
|
||||
pageNotFound=\u9875\u9762\u672a\u627e\u5230
|
||||
internalServerError=\u53d1\u751f\u5185\u90e8\u670d\u52a1\u5668\u9519\u8bef
|
||||
console-username=\u7528\u6237\u540d\uff1a
|
||||
console-password=\u5bc6\u7801\uff1a
|
||||
console-otp=\u4e00\u6b21\u6027\u5bc6\u7801\uff1a
|
||||
console-new-password=\u65b0\u5bc6\u7801\uff1a
|
||||
console-confirm-password=\u786e\u8ba4\u5bc6\u7801\uff1a
|
||||
console-update-password=\u9700\u8981\u66f4\u65b0\u60a8\u7684\u5bc6\u7801\u3002
|
||||
console-verify-email=\u60a8\u9700\u8981\u9a8c\u8bc1\u60a8\u7684\u7535\u5b50\u90ae\u4ef6\u5730\u5740\u3002\u6211\u4eec\u5df2\u5411 {0} \u53d1\u9001\u4e86\u4e00\u5c01\u5305\u542b\u9a8c\u8bc1\u7801\u7684\u7535\u5b50\u90ae\u4ef6\u3002\u8bf7\u5c06\u6b64\u4ee3\u7801\u8f93\u5165\u4e0b\u9762\u7684\u8f93\u5165\u6846\u4e2d\u3002
|
||||
console-email-code=\u7535\u5b50\u90ae\u4ef6\u9a8c\u8bc1\u7801\uff1a
|
||||
console-accept-terms=\u63a5\u53d7\u6761\u6b3e\uff1f[y/n]\uff1a
|
||||
console-accept=y
|
||||
openshift.scope.user_info=\u7528\u6237\u4fe1\u606f
|
||||
openshift.scope.user_check-access=\u7528\u6237\u8bbf\u95ee\u4fe1\u606f
|
||||
openshift.scope.user_full=\u5b8c\u5168\u8bbf\u95ee
|
||||
openshift.scope.list-projects=\u5217\u51fa\u9879\u76ee
|
||||
saml.post-form.title=\u8eab\u4efd\u9a8c\u8bc1\u91cd\u5b9a\u5411
|
||||
saml.post-form.message=\u91cd\u5b9a\u5411\u4e2d\uff0c\u8bf7\u7a0d\u5019\u3002
|
||||
saml.post-form.js-disabled=JavaScript\u5df2\u88ab\u7981\u7528\u3002\u6211\u4eec\u5f3a\u70c8\u5efa\u8bae\u542f\u7528\u5b83\u3002\u70b9\u51fb\u4e0b\u9762\u7684\u6309\u94ae\u7ee7\u7eed\u3002
|
||||
saml.artifactResolutionServiceInvalidResponse=\u65e0\u6cd5\u89e3\u6790\u6784\u9020\u3002
|
||||
otp-display-name=\u9a8c\u8bc1\u5668\u5e94\u7528\u7a0b\u5e8f
|
||||
otp-help-text=\u4ece\u9a8c\u8bc1\u5668\u5e94\u7528\u8f93\u5165\u9a8c\u8bc1\u7801\u3002
|
||||
otp-reset-description=\u5e94\u5220\u9664\u54ea\u4e2aOTP\u914d\u7f6e\uff1f
|
||||
password-display-name=\u5bc6\u7801
|
||||
password-help-text=\u901a\u8fc7\u8f93\u5165\u5bc6\u7801\u767b\u5f55\u3002
|
||||
auth-username-form-display-name=\u7528\u6237\u540d
|
||||
auth-username-form-help-text=\u8f93\u5165\u7528\u6237\u540d\u4ee5\u5f00\u59cb\u767b\u5f55
|
||||
auth-username-password-form-display-name=\u7528\u6237\u540d\u548c\u5bc6\u7801
|
||||
auth-username-password-form-help-text=\u8f93\u5165\u7528\u6237\u540d\u548c\u5bc6\u7801\u4ee5\u767b\u5f55\u3002
|
||||
auth-recovery-authn-code-form-display-name=\u6062\u590d\u4ee3\u7801
|
||||
auth-recovery-authn-code-form-help-text=\u8f93\u5165\u5148\u524d\u751f\u6210\u7684\u6062\u590d\u4ee3\u7801\u3002
|
||||
auth-recovery-code-info-message=\u8f93\u5165\u6307\u5b9a\u7684\u6062\u590d\u4ee3\u7801\u3002
|
||||
auth-recovery-code-prompt=\u6062\u590d\u4ee3\u7801 \#{0}
|
||||
auth-recovery-code-header=\u4f7f\u7528\u6062\u590d\u4ee3\u7801\u767b\u5f55
|
||||
recovery-codes-error-invalid=\u65e0\u6548\u7684\u4ee3\u7801
|
||||
recovery-code-config-header=\u6062\u590d\u4ee3\u7801
|
||||
recovery-code-config-warning-title=\u79bb\u5f00\u6b64\u9875\u9762\u540e\uff0c\u8fd9\u4e9b\u6062\u590d\u4ee3\u7801\u5c06\u4e0d\u518d\u663e\u793a
|
||||
recovery-code-config-warning-message=\u786e\u4fdd\u6253\u5370\u3001\u4e0b\u8f7d\u6216\u5c06\u5b83\u4eec\u590d\u5236\u5230\u5bc6\u7801\u7ba1\u7406\u5668\uff0c\u5e76\u5c06\u5176\u4fdd\u5b58\u5728\u5b89\u5168\u7684\u5730\u65b9\u3002\u53d6\u6d88\u6b64\u8bbe\u7f6e\u5c06\u4ece\u60a8\u7684\u5e10\u6237\u4e2d\u5220\u9664\u8fd9\u4e9b\u6062\u590d\u4ee3\u7801\u3002
|
||||
recovery-codes-print=\u6253\u5370
|
||||
recovery-codes-download=\u4e0b\u8f7d
|
||||
recovery-codes-copy=\u590d\u5236
|
||||
recovery-codes-copied=\u5df2\u590d\u5236
|
||||
recovery-codes-confirmation-message=\u6211\u5df2\u5c06\u8fd9\u4e9b\u4ee3\u7801\u4fdd\u5b58\u5728\u5b89\u5168\u7684\u5730\u65b9
|
||||
recovery-codes-action-complete=\u5b8c\u6210\u8bbe\u7f6e
|
||||
recovery-codes-action-cancel=\u53d6\u6d88\u8bbe\u7f6e
|
||||
recovery-codes-download-file-header=\u5c06\u8fd9\u4e9b\u6062\u590d\u4ee3\u7801\u4fdd\u5b58\u5728\u5b89\u5168\u7684\u5730\u65b9\u3002
|
||||
recovery-codes-download-file-description=\u6062\u590d\u4ee3\u7801\u662f\u4e00\u6b21\u6027\u9a8c\u8bc1\u7801\uff0c\u5982\u679c\u60a8\u65e0\u6cd5\u8bbf\u95ee\u60a8\u7684\u9a8c\u8bc1\u5668\uff0c\u53ef\u4ee5\u4f7f\u7528\u5b83\u4eec\u767b\u5f55\u5230\u60a8\u7684\u5e10\u6237\u3002
|
||||
recovery-codes-download-file-date=\u8fd9\u4e9b\u4ee3\u7801\u751f\u6210\u4e8e
|
||||
recovery-codes-label-default=\u6062\u590d\u4ee3\u7801
|
||||
webauthn-display-name=\u5b89\u5168\u5bc6\u94a5
|
||||
webauthn-help-text=\u4f7f\u7528\u60a8\u7684\u5b89\u5168\u5bc6\u94a5\u767b\u5f55\u3002
|
||||
webauthn-passwordless-display-name=\u5b89\u5168\u5bc6\u94a5
|
||||
webauthn-passwordless-help-text=\u4f7f\u7528\u60a8\u7684\u5b89\u5168\u5bc6\u94a5\u8fdb\u884c\u65e0\u5bc6\u7801\u767b\u5f55\u3002
|
||||
webauthn-login-title=\u5b89\u5168\u5bc6\u94a5\u767b\u5f55
|
||||
webauthn-registration-title=\u5b89\u5168\u5bc6\u94a5\u6ce8\u518c
|
||||
webauthn-available-authenticators=\u53ef\u7528\u7684\u5b89\u5168\u5bc6\u94a5
|
||||
webauthn-unsupported-browser-text=\u6b64\u6d4f\u89c8\u5668\u4e0d\u652f\u6301 WebAuthn\u3002\u8bf7\u5c1d\u8bd5\u5176\u4ed6\u6d4f\u89c8\u5668\u6216\u8054\u7cfb\u7ba1\u7406\u5458\u3002
|
||||
webauthn-doAuthenticate=\u4f7f\u7528\u5b89\u5168\u5bc6\u94a5\u767b\u5f55
|
||||
webauthn-createdAt-label=\u521b\u5efa\u4e8e
|
||||
webauthn-error-title=\u5b89\u5168\u5bc6\u94a5\u9519\u8bef
|
||||
webauthn-error-registration=\u6ce8\u518c\u60a8\u7684\u5b89\u5168\u5bc6\u94a5\u5931\u8d25\u3002<br/> {0}
|
||||
webauthn-error-api-get=\u901a\u8fc7\u5b89\u5168\u5bc6\u94a5\u8fdb\u884c\u8eab\u4efd\u9a8c\u8bc1\u5931\u8d25\u3002<br/> {0}
|
||||
webauthn-error-different-user=\u9996\u6b21\u7ecf\u8fc7\u8eab\u4efd\u9a8c\u8bc1\u7684\u7528\u6237\u4e0d\u662f\u901a\u8fc7\u5b89\u5168\u5bc6\u94a5\u7ecf\u8fc7\u8eab\u4efd\u9a8c\u8bc1\u7684\u7528\u6237\u3002
|
||||
webauthn-error-auth-verification=\u5b89\u5168\u5bc6\u94a5\u8eab\u4efd\u9a8c\u8bc1\u7ed3\u679c\u65e0\u6548\u3002<br/> {0}
|
||||
webauthn-error-register-verification=\u5b89\u5168\u5bc6\u94a5\u6ce8\u518c\u7ed3\u679c\u65e0\u6548\u3002<br/> {0}
|
||||
webauthn-error-user-not-found=\u901a\u8fc7\u5b89\u5168\u5bc6\u94a5\u8fdb\u884c\u8eab\u4efd\u9a8c\u8bc1\u7684\u7528\u6237\u672a\u77e5\u3002
|
||||
identity-provider-redirector=\u8fde\u63a5\u5230\u53e6\u4e00\u4e2a\u8eab\u4efd\u63d0\u4f9b\u8005
|
||||
identity-provider-login-label=\u6216\u4f7f\u7528\u4ee5\u4e0b\u65b9\u5f0f\u767b\u5f55
|
||||
idp-email-verification-display-name=\u7535\u5b50\u90ae\u4ef6\u9a8c\u8bc1
|
||||
idp-email-verification-help-text=\u901a\u8fc7\u9a8c\u8bc1\u60a8\u7684\u7535\u5b50\u90ae\u4ef6\u6765\u94fe\u63a5\u60a8\u7684\u5e10\u6237\u3002
|
||||
idp-username-password-form-display-name=\u7528\u6237\u540d\u548c\u5bc6\u7801
|
||||
idp-username-password-form-help-text=\u901a\u8fc7\u767b\u5f55\u6765\u94fe\u63a5\u60a8\u7684\u5e10\u6237\u3002
|
||||
finalDeletionConfirmation=\u5982\u679c\u5c06\u60a8\u7684\u5e10\u6237\u5220\u9664\uff0c\u5c06\u65e0\u6cd5\u6062\u590d\u3002\u5982\u679c\u8981\u4fdd\u7559\u60a8\u7684\u5e10\u6237\uff0c\u8bf7\u70b9\u51fb\u53d6\u6d88\u3002
|
||||
irreversibleAction=\u6b64\u64cd\u4f5c\u4e0d\u53ef\u9006\u8f6c
|
||||
deleteAccountConfirm=\u5220\u9664\u5e10\u6237\u786e\u8ba4
|
||||
deletingImplies=\u5220\u9664\u60a8\u7684\u5e10\u6237\u610f\u5473\u7740\uff1a
|
||||
errasingData=\u5220\u9664\u60a8\u7684\u6240\u6709\u6570\u636e
|
||||
loggingOutImmediately=\u7acb\u5373\u5c06\u60a8\u6ce8\u9500
|
||||
accountUnusable=\u6b64\u5e10\u6237\u5c06\u65e0\u6cd5\u518d\u6b21\u4f7f\u7528\u5e94\u7528\u7a0b\u5e8f
|
||||
userDeletedSuccessfully=\u7528\u6237\u5220\u9664\u6210\u529f
|
||||
access-denied=\u8bbf\u95ee\u88ab\u62d2\u7edd
|
||||
access-denied-when-idp-auth=\u4f7f\u7528 {0} \u8fdb\u884c\u8eab\u4efd\u9a8c\u8bc1\u65f6\u88ab\u62d2\u7edd\u8bbf\u95ee
|
||||
frontchannel-logout.title=\u6b63\u5728\u6ce8\u9500
|
||||
frontchannel-logout.message=\u60a8\u6b63\u5728\u4ece\u4ee5\u4e0b\u5e94\u7528\u7a0b\u5e8f\u6ce8\u9500
|
||||
logoutConfirmTitle=\u6ce8\u9500
|
||||
logoutConfirmHeader=\u60a8\u786e\u5b9a\u8981\u6ce8\u9500\u5417\uff1f
|
||||
doLogout=\u6ce8\u9500
|
||||
readOnlyUsernameMessage=\u7531\u4e8e\u7528\u6237\u540d\u662f\u53ea\u8bfb\u7684\uff0c\u60a8\u65e0\u6cd5\u66f4\u65b0\u7528\u6237\u540d\u3002
|
||||
shouldBeEqual={0} \u5e94\u8be5\u7b49\u4e8e {1}
|
||||
shouldBeDifferent={0} \u5e94\u8be5\u4e0d\u540c\u4e8e {1}
|
||||
shouldMatchPattern=\u6a21\u5f0f\u5e94\u5339\u914d\: `/{0}/`
|
||||
mustBeAnInteger=\u5fc5\u987b\u662f\u6574\u6570
|
||||
notAValidOption=\u4e0d\u662f\u6709\u6548\u9009\u9879
|
||||
selectAnOption=\u9009\u62e9\u4e00\u4e2a\u9009\u9879
|
||||
remove=\u79fb\u9664
|
||||
addValue=\u6dfb\u52a0\u503c
|
||||
languages=\u8bed\u8a00
|
@ -0,0 +1,451 @@
|
||||
|
||||
doLogIn=\u767b\u5165
|
||||
doRegister=\u8a3b\u518a
|
||||
doRegisterSecurityKey=\u8a3b\u518a\u5b89\u5168\u6027\u91d1\u9470
|
||||
doCancel=\u53d6\u6d88
|
||||
doSubmit=\u9001\u51fa
|
||||
doBack=\u8fd4\u56de
|
||||
doYes=\u662f
|
||||
doNo=\u5426
|
||||
doContinue=\u7e7c\u7e8c
|
||||
doIgnore=\u5ffd\u7565
|
||||
doAccept=\u540c\u610f
|
||||
doDecline=\u62d2\u7d55
|
||||
doForgotPassword=\u5fd8\u8a18\u5bc6\u78bc\uff1f
|
||||
doClickHere=\u9ede\u64ca\u9019\u88e1
|
||||
doImpersonate=\u6a21\u64ec
|
||||
doTryAgain=\u8acb\u91cd\u8a66
|
||||
doTryAnotherWay=\u4f7f\u7528\u5176\u4ed6\u65b9\u5f0f
|
||||
doConfirmDelete=\u78ba\u8a8d\u522a\u9664
|
||||
errorDeletingAccount=\u522a\u9664\u5e33\u865f\u7684\u904e\u7a0b\u4e2d\u51fa\u932f\u4e86
|
||||
deletingAccountForbidden=\u60a8\u6c92\u6709\u88ab\u5141\u8a31\u80fd\u522a\u9664\u81ea\u5df1\u7684\u5e33\u865f\uff0c\u8acb\u806f\u7d61\u7cfb\u7d71\u7ba1\u7406\u54e1\u3002
|
||||
kerberosNotConfigured=\u5c1a\u672a\u8a2d\u5b9a Kerberos
|
||||
kerberosNotConfiguredTitle=\u5c1a\u672a\u8a2d\u5b9a Kerberos
|
||||
bypassKerberosDetail=\u60a8\u6c92\u6709\u901a\u904e Kerberos \u767b\u5165 \u6216\u8005\u60a8\u7684\u700f\u89bd\u5668\u6c92\u6709\u8a2d\u5b9a Kerberos \u767b\u5165\u3002\u8acb\u9ede\u64ca\u7e7c\u7e8c\u4f7f\u7528\u5176\u4ed6\u65b9\u5f0f\u767b\u5165\u3002
|
||||
kerberosNotSetUp=\u5c1a\u672a\u8a2d\u5b9a Kerberos\uff0c\u60a8\u7121\u6cd5\u767b\u5165
|
||||
registerTitle=\u8a3b\u518a
|
||||
loginAccountTitle=\u767b\u5165\u60a8\u7684\u5e33\u865f
|
||||
loginTitle=\u767b\u5165\u5230 {0}
|
||||
loginTitleHtml={0}
|
||||
impersonateTitle=\u6a21\u64ec\u4f7f\u7528\u8005 {0}
|
||||
impersonateTitleHtml=\u6a21\u64ec\u4f7f\u7528\u8005 <strong>{0}</strong>
|
||||
realmChoice=Realm
|
||||
unknownUser=\u672a\u77e5\u4f7f\u7528\u8005
|
||||
loginTotpTitle=\u8a2d\u5b9a OTP \u9a57\u8b49\u5668
|
||||
loginProfileTitle=\u66f4\u65b0\u5e33\u865f\u8cc7\u8a0a
|
||||
loginIdpReviewProfileTitle=\u66f4\u65b0\u5e33\u865f\u8cc7\u8a0a
|
||||
loginTimeout=\u767b\u5165\u903e\u6642\uff0c\u8acb\u91cd\u65b0\u767b\u5165\u3002
|
||||
reauthenticate=\u91cd\u65b0\u767b\u5165\u4ee5\u7e7c\u7e8c
|
||||
oauthGrantTitle=\u6388\u4e88\u6b0a\u9650\u7d66 {0}
|
||||
oauthGrantTitleHtml={0}
|
||||
oauthGrantInformation=\u8acb\u78ba\u8a8d\u60a8\u4fe1\u4efb {0}\uff0c\u4e26\u4e14\u4e86\u89e3 {0} \u5982\u4f55\u8655\u7406\u60a8\u7684\u8cc7\u6599\u3002
|
||||
oauthGrantReview=\u60a8\u53ef\u4ee5\u6aa2\u8996
|
||||
oauthGrantTos=\u670d\u52d9\u689d\u6b3e
|
||||
oauthGrantPolicy=\u96b1\u79c1\u6b0a\u653f\u7b56
|
||||
errorTitle=\u51fa\u932f\u5566\uff01
|
||||
errorTitleHtml=\u6211\u5011<strong>\u5f88\u62b1\u6b49</strong> ...
|
||||
emailVerifyTitle=\u9a57\u8b49\u96fb\u5b50\u4fe1\u7bb1
|
||||
emailForgotTitle=\u5fd8\u8a18\u5bc6\u78bc\uff1f
|
||||
updateEmailTitle=\u66f4\u65b0\u96fb\u5b50\u4fe1\u7bb1
|
||||
emailUpdateConfirmationSentTitle=\u78ba\u8a8d\u4fe1\u5df2\u5bc4\u51fa
|
||||
emailUpdateConfirmationSent=\u78ba\u8a8d\u4fe1\u5df2\u5bc4\u9001\u5230 {0}\u3002\u60a8\u5fc5\u9808\u4f9d\u7167\u4fe1\u4e2d\u7684\u6307\u793a\u5b8c\u6210\u96fb\u5b50\u4fe1\u7bb1\u7684\u66f4\u65b0\u3002
|
||||
emailUpdatedTitle=\u96fb\u5b50\u4fe1\u7bb1\u5df2\u66f4\u65b0
|
||||
emailUpdated=\u5e33\u865f\u7684\u96fb\u5b50\u4fe1\u7bb1\u5df2\u6210\u529f\u66f4\u65b0\u70ba {0}\u3002
|
||||
updatePasswordTitle=\u66f4\u65b0\u5bc6\u78bc
|
||||
codeSuccessTitle=\u6210\u529f\u4ee3\u78bc
|
||||
codeErrorTitle=\u932f\u8aa4\u78bc\uff1a{0}
|
||||
displayUnsupported=\u672a\u652f\u63f4\u7684\u8acb\u6c42\u72c0\u614b
|
||||
browserRequired=\u9700\u8981\u900f\u904e\u700f\u89bd\u5668\u9032\u884c\u767b\u5165
|
||||
browserContinue=\u9700\u8981\u900f\u904e\u700f\u89bd\u5668\u5b8c\u6210\u767b\u5165
|
||||
browserContinuePrompt=\u900f\u904e\u700f\u89bd\u5668\u7e7c\u7e8c\u767b\u5165\u6d41\u7a0b\uff1f [\u662f/\u5426]\:
|
||||
browserContinueAnswer=\u662f
|
||||
usb=USB
|
||||
nfc=NFC
|
||||
bluetooth=\u85cd\u82bd
|
||||
internal=\u5167\u90e8
|
||||
unknown=\u672a\u77e5
|
||||
termsTitle=\u670d\u52d9\u689d\u6b3e
|
||||
termsText=
|
||||
termsPlainText=\u5c1a\u672a\u88ab\u5b9a\u7fa9\u7684\u670d\u52d9\u689d\u6b3e\u3002
|
||||
termsAcceptanceRequired=\u60a8\u5fc5\u7e8c\u540c\u610f\u6211\u5011\u7684\u670d\u52d9\u689d\u6b3e\u3002
|
||||
acceptTerms=\u6211\u540c\u610f\u670d\u52d9\u689d\u6b3e
|
||||
recaptchaFailed=\u7121\u6548\u7684 Recaptcha \u9a57\u8b49\u78bc
|
||||
recaptchaNotConfigured=Recaptcha \u5c1a\u672a\u8a2d\u5b9a
|
||||
consentDenied=\u8a31\u53ef\u88ab\u62d2\u3002
|
||||
noAccount=\u65b0\u7684\u4f7f\u7528\u8005\uff1f
|
||||
username=\u4f7f\u7528\u8005\u540d\u7a31
|
||||
usernameOrEmail=\u4f7f\u7528\u8005\u540d\u7a31 \u6216 \u96fb\u5b50\u4fe1\u7bb1
|
||||
firstName=\u540d\u5b57
|
||||
givenName=\u59d3\u6c0f
|
||||
fullName=\u5168\u540d
|
||||
lastName=\u59d3\u6c0f
|
||||
familyName=\u59d3\u6c0f
|
||||
email=\u96fb\u5b50\u4fe1\u7bb1
|
||||
password=\u5bc6\u78bc
|
||||
passwordConfirm=\u78ba\u8a8d\u5bc6\u78bc
|
||||
passwordNew=\u65b0\u5bc6\u78bc
|
||||
passwordNewConfirm=\u78ba\u8a8d\u65b0\u5bc6\u78bc
|
||||
hidePassword=\u96b1\u85cf\u5bc6\u78bc
|
||||
showPassword=\u986f\u793a\u5bc6\u78bc
|
||||
rememberMe=\u8a18\u4f4f\u6211
|
||||
authenticatorCode=\u4e00\u6b21\u6027\u9a57\u8b49\u78bc
|
||||
address=\u5730\u5740
|
||||
street=\u8857\u9053
|
||||
locality=\u5e02
|
||||
region=\u7701\u3001\u81ea\u6cbb\u5340\u3001\u76f4\u8f44\u5e02
|
||||
postal_code=\u90f5\u905e\u5340\u865f
|
||||
country=\u570b\u5bb6
|
||||
emailVerified=\u5df2\u9a57\u8b49\u96fb\u5b50\u4fe1\u7bb1
|
||||
website=\u7db2\u9801
|
||||
phoneNumber=\u96fb\u8a71\u865f\u78bc
|
||||
phoneNumberVerified=\u5df2\u9a57\u8b49\u96fb\u8a71\u865f\u78bc
|
||||
gender=\u6027\u5225
|
||||
birthday=\u51fa\u751f\u65e5\u671f
|
||||
zoneinfo=\u6642\u5340
|
||||
gssDelegationCredential=GSS Delegation Credential
|
||||
logoutOtherSessions=\u5f9e\u5176\u4ed6\u88dd\u7f6e\u767b\u51fa
|
||||
profileScopeConsentText=\u4f7f\u7528\u8005\u8cc7\u8a0a
|
||||
emailScopeConsentText=\u96fb\u5b50\u4fe1\u7bb1
|
||||
addressScopeConsentText=\u5730\u5740
|
||||
phoneScopeConsentText=\u96fb\u8a71\u865f\u78bc
|
||||
offlineAccessScopeConsentText=\u96e2\u7dda\u5b58\u53d6
|
||||
samlRoleListScopeConsentText=\u6211\u7684\u89d2\u8272\u6e05\u55ae
|
||||
rolesScopeConsentText=\u4f7f\u7528\u8005\u89d2\u8272\u6e05\u55ae
|
||||
organizationScopeConsentText=\u7d44\u7e54
|
||||
restartLoginTooltip=\u91cd\u65b0\u767b\u5165
|
||||
loginTotpIntro=\u60a8\u9700\u8981\u8a2d\u5b9a OTP \u9a57\u8b49\u5668\u4f86\u555f\u7528\u60a8\u7684\u5e33\u865f
|
||||
loginTotpStep1=\u4f7f\u7528\u60a8\u7684\u624b\u6a5f\u5b89\u88dd\u4ee5\u4e0b\u7a0b\u5f0f (\u64c7\u4e00\u5373\u53ef)\uff1a
|
||||
loginTotpStep2=\u958b\u555f\u61c9\u7528\u7a0b\u5f0f\u4e26\u6383\u63cf QR code\uff1a
|
||||
loginTotpStep3=\u8f38\u5165\u61c9\u7528\u7a0b\u5f0f\u63d0\u4f9b\u7684\u4e00\u6b21\u6027\u5bc6\u78bc\u4e26\u9ede\u64ca\u9001\u51fa\u4f86\u5b8c\u6210\u8a2d\u5b9a\u3002
|
||||
loginTotpStep3DeviceName=\u8f38\u5165\u88dd\u7f6e\u540d\u7a31\uff0c\u4ee5\u4fbf\u7ba1\u7406\u60a8\u7684 OTP \u9a57\u8b49\u5668\u3002
|
||||
loginTotpManualStep2=\u958b\u555f\u61c9\u7528\u7a0b\u5f0f\u4e26\u8f38\u5165\u91d1\u9470\uff1a
|
||||
loginTotpManualStep3=\u5982\u679c\u61c9\u7528\u7a0b\u5f0f\u80fd\u505a\u8a2d\u5b9a\u7684\u8a71\uff0c\u8acb\u4f7f\u7528\u4ee5\u4e0b\u9019\u4e9b\u8a2d\u5b9a\uff1a
|
||||
loginTotpUnableToScan=\u7121\u6cd5\u6383\u63cf\uff1f
|
||||
loginTotpScanBarcode=\u6383\u63cf QR code\uff1f
|
||||
loginCredential=\u6191\u8b49
|
||||
loginOtpOneTime=\u4e00\u6b21\u6027\u5bc6\u78bc
|
||||
loginTotpType=\u7a2e\u985e
|
||||
loginTotpAlgorithm=\u7b97\u6cd5
|
||||
loginTotpDigits=\u4f4d\u6578
|
||||
loginTotpInterval=\u9593\u9694
|
||||
loginTotpCounter=\u6b21\u6578
|
||||
loginTotpDeviceName=\u88dd\u7f6e\u540d\u7a31
|
||||
loginTotp.totp=\u57fa\u65bc\u6642\u9593 (Time-based)
|
||||
loginTotp.hotp=\u57fa\u65bc\u6b21\u6578 (Counter-based)
|
||||
totpAppFreeOTPName=FreeOTP
|
||||
totpAppGoogleName=Google Authenticator
|
||||
totpAppMicrosoftAuthenticatorName=Microsoft Authenticator
|
||||
loginChooseAuthenticator=\u9078\u64c7\u767b\u5165\u65b9\u5f0f
|
||||
oauthGrantRequest=\u60a8\u662f\u5426\u60f3\u8981\u6388\u4e88\u4ee5\u4e0b\u6b0a\u9650\uff1f
|
||||
inResource=\u5728
|
||||
oauth2DeviceVerificationTitle=\u767b\u5165\u88dd\u7f6e
|
||||
verifyOAuth2DeviceUserCode=\u8f38\u5165\u88dd\u7f6e\u63d0\u4f9b\u7684\u9a57\u8b49\u78bc\u4e26\u9ede\u64ca\u9001\u51fa
|
||||
oauth2DeviceInvalidUserCodeMessage=\u932f\u8aa4\u7684\u9a57\u8b49\u78bc\uff0c\u8acb\u91cd\u65b0\u5617\u8a66
|
||||
oauth2DeviceExpiredUserCodeMessage=\u9a57\u8b49\u78bc\u5df2\u904e\u671f\uff0c\u8acb\u56de\u5230\u60a8\u7684\u88dd\u7f6e\u4e26\u91cd\u65b0\u5617\u8a66\u9023\u7dda\u3002
|
||||
oauth2DeviceVerificationCompleteHeader=\u88dd\u7f6e\u767b\u5165\u6210\u529f
|
||||
oauth2DeviceVerificationCompleteMessage=\u60a8\u73fe\u5728\u53ef\u4ee5\u653e\u5fc3\u7684\u95dc\u9589\u5206\u9801\u4e26\u56de\u5230\u60a8\u7684\u88dd\u7f6e\u3002
|
||||
oauth2DeviceVerificationFailedHeader=\u88dd\u7f6e\u767b\u5165\u5931\u6557
|
||||
oauth2DeviceVerificationFailedMessage=\u60a8\u73fe\u5728\u53ef\u4ee5\u653e\u5fc3\u7684\u95dc\u9589\u5206\u9801\u4e26\u91cd\u65b0\u5617\u8a66\u9023\u7dda\u3002
|
||||
oauth2DeviceConsentDeniedMessage=\u88dd\u7f6e\u6388\u6b0a\u5931\u6557\u3002
|
||||
oauth2DeviceAuthorizationGrantDisabledMessage=\u5ba2\u6236\u7aef\u4e0d\u5141\u8a31\u767c\u8d77\u6388\u6b0a OAuth 2.0 \u88dd\u7f6e\u3002\u9019\u500b\u6d41\u7a0b\u5df2\u88ab\u5ba2\u6236\u7aef\u7981\u7528\u3002
|
||||
emailVerifyInstruction1=\u4e00\u5c01\u542b\u6709\u9a57\u8b49\u65b9\u5f0f\u7684\u4fe1\u5df2\u7d93\u5bc4\u9001\u5230\u60a8\u7684\u4fe1\u7bb1 {0}
|
||||
emailVerifyInstruction2=\u9084\u6c92\u6536\u5230\u9a57\u8b49\u78bc\uff1f
|
||||
emailVerifyInstruction3=\u91cd\u65b0\u5bc4\u9001\u9a57\u8b49\u78bc\u3002
|
||||
emailLinkIdpTitle=\u9023\u7d50\u5230 {0}
|
||||
emailLinkIdp1=\u4e00\u5c01\u542b\u6709\u5982\u4f55\u9023\u7d50 {0} \u5230 {2} \u7684\u4fe1\u4ef6\u5df2\u5bc4\u9001\u7d66\u60a8\u7684 {1} \u5e33\u865f\u3002
|
||||
emailLinkIdp2=\u9084\u6c92\u6536\u5230\u9a57\u8b49\u78bc\uff1f
|
||||
emailLinkIdp3=\u91cd\u65b0\u5bc4\u9001\u9a57\u8b49\u78bc\u3002
|
||||
emailLinkIdp4=\u5982\u679c\u60a8\u5df2\u7d93\u900f\u904e\u5176\u4ed6\u700f\u89bd\u5668\u9a57\u8b49
|
||||
emailLinkIdp5=\u7e7c\u7e8c\u3002
|
||||
backToLogin=« \u56de\u5230\u767b\u5165\u756b\u9762
|
||||
emailInstruction=\u8f38\u5165\u60a8\u7684 \u4f7f\u7528\u8005\u540d\u7a31 \u6216 \u96fb\u5b50\u4fe1\u7bb1 \u6211\u5011\u6703\u5bc4\u9001\u96fb\u5b50\u90f5\u4ef6\u4e26\u544a\u77e5\u60a8\u5982\u4f55\u7522\u751f\u65b0\u5bc6\u78bc\u3002
|
||||
emailInstructionUsername=\u8f38\u5165\u60a8\u7684\u4f7f\u7528\u8005\u540d\u7a31\uff0c\u6211\u5011\u6703\u5bc4\u9001\u96fb\u5b50\u90f5\u4ef6\u4e26\u544a\u77e5\u60a8\u5982\u4f55\u7522\u751f\u65b0\u5bc6\u78bc\u3002
|
||||
copyCodeInstruction=\u8acb\u8907\u88fd\u4ee5\u4e0b\u5bc6\u78bc\uff0c\u4e26\u8cbc\u5165\u60a8\u7684\u61c9\u7528\u7a0b\u5f0f\uff1a
|
||||
pageExpiredTitle=\u7db2\u9801\u5df2\u903e\u671f
|
||||
pageExpiredMsg1=\u91cd\u65b0\u767b\u5165
|
||||
pageExpiredMsg2=\u7e7c\u7e8c\u767b\u5165
|
||||
personalInfo=\u500b\u4eba\u8cc7\u6599\uff1a
|
||||
role_admin=\u7ba1\u7406\u54e1
|
||||
role_realm-admin=\u9818\u57df\u7ba1\u7406\u54e1
|
||||
role_create-realm=\u5275\u7acb\u9818\u57df
|
||||
role_create-client=\u5275\u7acb\u5ba2\u6236\u7aef
|
||||
role_view-realm=\u700f\u89bd\u9818\u57df
|
||||
role_view-users=\u700f\u89bd\u4f7f\u7528\u8005\u6e05\u55ae
|
||||
role_view-applications=\u6aa2\u8996\u61c9\u7528\u6e05\u55ae
|
||||
role_view-clients=\u6aa2\u8996\u5ba2\u6236\u7aef\u6e05\u55ae
|
||||
role_view-events=\u6aa2\u8996\u4e8b\u4ef6\u6e05\u55ae
|
||||
role_view-identity-providers=\u6aa2\u8996\u8eab\u5206\u63d0\u4f9b\u8005\u6e05\u55ae
|
||||
role_manage-realm=\u7ba1\u7406\u9818\u57df
|
||||
role_manage-users=\u7ba1\u7406\u4f7f\u7528\u8005\u6e05\u55ae
|
||||
role_manage-applications=\u7ba1\u7406\u61c9\u7528\u7a0b\u5f0f\u6e05\u55ae
|
||||
role_manage-identity-providers=\u7ba1\u7406\u8eab\u5206\u63d0\u4f9b\u8005\u6e05\u55ae
|
||||
role_manage-clients=\u7ba1\u7406\u5ba2\u6236\u7aef\u6e05\u55ae
|
||||
role_manage-events=\u7ba1\u7406\u4e8b\u4ef6\u6e05\u55ae
|
||||
role_view-profile=\u6aa2\u8996\u500b\u4eba\u8cc7\u6599
|
||||
role_manage-account=\u7ba1\u7406\u5e33\u865f
|
||||
role_manage-account-links=\u7ba1\u7406\u5e33\u865f\u9023\u7d50
|
||||
role_read-token=\u8b80\u53d6 token
|
||||
role_offline-access=\u96e2\u7dda\u5b58\u53d6
|
||||
client_account=\u5e33\u865f
|
||||
client_account-console=\u5e33\u865f\u7d42\u7aef
|
||||
client_security-admin-console=\u7ba1\u7406\u54e1\u7d42\u7aef
|
||||
client_admin-cli=Admin CLI
|
||||
client_realm-management=\u9818\u57df\u7ba1\u7406
|
||||
client_broker=Broker
|
||||
requiredFields=\u5fc5\u586b\u7684\u6b04\u4f4d
|
||||
invalidUserMessage=\u7121\u6548\u7684\u4f7f\u7528\u8005\u540d\u7a31\u6216\u5bc6\u78bc\u3002
|
||||
invalidUsernameMessage=\u7121\u6548\u7684\u4f7f\u7528\u8005\u540d\u7a31\u3002
|
||||
invalidUsernameOrEmailMessage=\u7121\u6548\u7684\u4f7f\u7528\u8005\u540d\u7a31\u6216\u96fb\u5b50\u4fe1\u7bb1\u3002
|
||||
invalidPasswordMessage=\u7121\u6548\u7684\u5bc6\u78bc\u3002
|
||||
invalidEmailMessage=\u7121\u6548\u7684\u96fb\u5b50\u4fe1\u7bb1\u3002
|
||||
accountDisabledMessage=\u5e33\u865f\u5df2\u505c\u7528\uff0c\u8acb\u806f\u7e6b\u7cfb\u7d71\u7ba1\u7406\u54e1\u3002
|
||||
accountTemporarilyDisabledMessage=\u5e33\u865f\u88ab\u66ab\u6642\u505c\u7528\uff0c\u8acb\u806f\u7e6b\u7cfb\u7d71\u7ba1\u7406\u54e1\u6216\u7a0d\u5f8c\u91cd\u8a66\u3002
|
||||
expiredCodeMessage=\u767b\u5165\u903e\u6642\uff0c\u8acb\u91cd\u65b0\u767b\u5165\u3002
|
||||
expiredActionMessage=\u52d5\u4f5c\u903e\u6642\uff0c\u8acb\u7e7c\u7e8c\u767b\u5165\u3002
|
||||
expiredActionTokenNoSessionMessage=\u52d5\u4f5c\u903e\u6642\u3002
|
||||
expiredActionTokenSessionExistsMessage=\u52d5\u4f5c\u903e\u6642\uff0c\u8acb\u91cd\u65b0\u958b\u59cb\u3002
|
||||
sessionLimitExceeded=\u60a8\u5df2\u958b\u555f\u904e\u591a\u767b\u5165\u72c0\u614b
|
||||
identityProviderLogoutFailure=SAML IdP \u767b\u51fa\u5931\u6557
|
||||
missingFirstNameMessage=\u8acb\u63d0\u4f9b\u540d\u5b57\u3002
|
||||
missingLastNameMessage=\u8acb\u63d0\u4f9b\u59d3\u6c0f\u3002
|
||||
missingEmailMessage=\u8acb\u63d0\u4f9b\u96fb\u5b50\u4fe1\u7bb1\u3002
|
||||
missingUsernameMessage=\u8acb\u63d0\u4f9b\u4f7f\u7528\u8005\u540d\u7a31\u3002
|
||||
missingPasswordMessage=\u8acb\u63d0\u4f9b\u5bc6\u78bc\u3002
|
||||
missingTotpMessage=\u8acb\u8f38\u5165\u9a57\u8b49\u78bc\u3002
|
||||
missingTotpDeviceNameMessage=\u8acb\u63d0\u4f9b\u88dd\u7f6e\u540d\u7a31\u3002
|
||||
notMatchPasswordMessage=\u5bc6\u78bc\u4e0d\u76f8\u7b26\u3002
|
||||
error-invalid-value=\u7121\u6548\u7684\u6578\u503c\u3002
|
||||
error-invalid-blank=\u6578\u503c\u4e0d\u53ef\u70ba\u7a7a\u3002
|
||||
error-empty=\u6578\u503c\u4e0d\u53ef\u70ba\u7a7a\u3002
|
||||
error-invalid-length=\u9577\u5ea6\u5fc5\u9808\u5728 {1} \u548c {2} \u4e4b\u9593\u3002
|
||||
error-invalid-length-too-short=\u9577\u5ea6\u6700\u77ed\u70ba {1}\u3002
|
||||
error-invalid-length-too-long=\u9577\u5ea6\u6700\u9577\u70ba {2}\u3002
|
||||
error-invalid-email=\u7121\u6548\u7684\u96fb\u5b50\u4fe1\u7bb1\u3002
|
||||
error-invalid-number=\u7121\u6548\u7684\u865f\u78bc\u3002
|
||||
error-number-out-of-range=\u6578\u5b57\u5fc5\u9808\u5728 {1} \u548c {2} \u4e4b\u9593\u3002
|
||||
error-number-out-of-range-too-small=\u6578\u5b57\u6700\u5c0f\u70ba {1}\u3002
|
||||
error-number-out-of-range-too-big=\u6578\u5b57\u6700\u5927\u70ba {2}\u3002
|
||||
error-pattern-no-match=\u7121\u6548\u7684\u6578\u503c\u3002
|
||||
error-invalid-uri=\u7121\u6548\u7684 URL\u3002
|
||||
error-invalid-uri-scheme=\u7121\u6548\u7684 URL \u5354\u5b9a\u3002
|
||||
error-invalid-uri-fragment=\u7121\u6548\u7684 URL \u7247\u6bb5\u3002
|
||||
error-user-attribute-required=\u8acb\u63d0\u4f9b\u6b64\u6b04\u4f4d\u3002
|
||||
error-invalid-date=\u7121\u6548\u7684\u65e5\u671f\u3002
|
||||
error-user-attribute-read-only=\u6b64\u6b04\u4f4d\u70ba\u552f\u8b80\u3002
|
||||
error-username-invalid-character=\u542b\u6709\u7121\u6548\u5b57\u5143\u3002
|
||||
error-person-name-invalid-character=\u542b\u6709\u7121\u6548\u5b57\u5143\u3002
|
||||
error-reset-otp-missing-id=\u8acb\u9078\u64c7 OTP \u9a57\u8b49\u5668\u3002
|
||||
invalidPasswordExistingMessage=\u7121\u6548\u7684\u5bc6\u78bc\uff1a\u66fe\u4f7f\u7528\u904e\u7684\u5bc6\u78bc\u3002
|
||||
invalidPasswordBlacklistedMessage=\u7121\u6548\u7684\u5bc6\u78bc\uff1a\u8a72\u5bc6\u78bc\u5df2\u5728\u9ed1\u540d\u55ae\u4e2d\u3002
|
||||
invalidPasswordConfirmMessage=\u5bc6\u78bc\u4e0d\u4e00\u81f4\u3002
|
||||
invalidTotpMessage=\u7121\u6548\u7684\u9a57\u8b49\u78bc\u3002
|
||||
usernameExistsMessage=\u76f8\u540c\u7684\u4f7f\u7528\u8005\u540d\u7a31\u5df2\u5b58\u5728\u3002
|
||||
emailExistsMessage=\u76f8\u540c\u7684\u96fb\u5b50\u4fe1\u7bb1\u5df2\u5b58\u5728\u3002
|
||||
federatedIdentityExistsMessage=\u4f7f\u7528\u8005 {0} \u5df2\u5b58\u5728\u3002\u8acb\u767b\u5165\u5e33\u865f\u7ba1\u7406\u4f86\u9023\u7d50\u5e33\u865f\u3002
|
||||
federatedIdentityUnavailableMessage=\u5728 {1} \u8eab\u5206\u63d0\u4f9b\u8005\u4e0a\u9a57\u8b49\u7684\u4f7f\u7528\u8005 {0} \u4e0d\u5b58\u5728\u3002\u8acb\u806f\u7e6b\u60a8\u7684\u7ba1\u7406\u54e1\u3002
|
||||
federatedIdentityUnmatchedEssentialClaimMessage=\u8eab\u5206\u63d0\u4f9b\u8005\u6240\u767c\u51fa\u7684 ID \u4ee4\u724c\u8207\u8a2d\u5b9a\u7684\u8072\u660e\u4e0d\u7b26\u3002\u8acb\u806f\u7d61\u60a8\u7684\u7ba1\u7406\u54e1\u3002
|
||||
confirmLinkIdpTitle=\u5e33\u865f\u5df2\u5b58\u5728
|
||||
federatedIdentityConfirmLinkMessage=\u4f7f\u7528\u8005 {0} {1} \u5df2\u5b58\u5728\u3002\u60a8\u8981\u5982\u4f55\u7e7c\u7e8c\uff1f
|
||||
federatedIdentityConfirmReauthenticateMessage=\u8acb\u91cd\u65b0\u9a57\u8b49\u60a8\u7684\u5e33\u865f\u4ee5\u9023\u7d50 {0}\u3002
|
||||
nestedFirstBrokerFlowMessage=\u4f7f\u7528\u8005 {1} \u672a\u9023\u7d50\u81f3 {0} \u4e2d\u7684\u4efb\u4f55\u5df2\u77e5\u4f7f\u7528\u8005\u3002
|
||||
confirmLinkIdpReviewProfile=\u6aa2\u8996\u500b\u4eba\u8cc7\u6599
|
||||
confirmLinkIdpContinue=\u65b0\u589e\u81f3\u73fe\u6709\u5e33\u865f
|
||||
configureTotpMessage=\u60a8\u9700\u8981\u8a2d\u5b9a OTP \u9a57\u8b49\u5668\u4f86\u555f\u7528\u60a8\u7684\u5e33\u865f\u3002
|
||||
configureBackupCodesMessage=\u60a8\u9700\u8981\u8a2d\u5b9a\u5099\u4efd\u4ee3\u78bc\u4f86\u555f\u7528\u60a8\u7684\u5e33\u865f\u3002
|
||||
updateProfileMessage=\u60a8\u9700\u8981\u66f4\u65b0\u60a8\u7684\u4f7f\u7528\u8005\u8cc7\u6599\u4f86\u555f\u7528\u60a8\u7684\u5e33\u865f\u3002
|
||||
updatePasswordMessage=\u60a8\u9700\u8981\u66f4\u6539\u60a8\u7684\u5bc6\u78bc\u4f86\u555f\u7528\u60a8\u7684\u5e33\u865f\u3002
|
||||
updateEmailMessage=\u60a8\u9700\u8981\u66f4\u65b0\u60a8\u7684\u96fb\u5b50\u4fe1\u7bb1\u4f86\u555f\u7528\u60a8\u7684\u5e33\u865f\u3002
|
||||
resetPasswordMessage=\u60a8\u9700\u8981\u66f4\u65b0\u60a8\u7684\u5bc6\u78bc\u3002
|
||||
verifyEmailMessage=\u60a8\u9700\u8981\u9a57\u8b49\u60a8\u7684\u96fb\u5b50\u4fe1\u7bb1\u4f86\u555f\u7528\u60a8\u7684\u5e33\u865f\u3002
|
||||
linkIdpMessage=\u60a8\u9700\u8981\u9a57\u8b49\u60a8\u7684\u96fb\u5b50\u4fe1\u7bb1\u4f86\u5c07\u60a8\u7684\u5e33\u865f\u8207 {0} \u9023\u7d50\u3002
|
||||
emailSentMessage=\u60a8\u5c07\u6703\u6536\u5230\u4e00\u5c01\u96fb\u5b50\u90f5\u4ef6\uff0c\u5305\u542b\u9032\u4e00\u6b65\u7684\u6307\u793a\u3002
|
||||
emailSendErrorMessage=\u7121\u6cd5\u767c\u9001\u96fb\u5b50\u90f5\u4ef6\uff0c\u8acb\u7a0d\u5f8c\u518d\u8a66\u3002
|
||||
accountUpdatedMessage=\u60a8\u7684\u5e33\u865f\u8cc7\u8a0a\u5df2\u66f4\u65b0\u3002
|
||||
accountPasswordUpdatedMessage=\u60a8\u7684\u5bc6\u78bc\u5df2\u66f4\u65b0\u3002
|
||||
delegationCompleteHeader=\u767b\u5165\u6210\u529f
|
||||
delegationCompleteMessage=\u60a8\u53ef\u4ee5\u653e\u5fc3\u5730\u95dc\u9589\u6b64\u8996\u7a97\uff0c\u4e26\u56de\u5230\u60a8\u7684\u61c9\u7528\u7a0b\u5f0f\u3002
|
||||
delegationFailedHeader=\u767b\u5165\u5931\u6557
|
||||
delegationFailedMessage=\u60a8\u53ef\u4ee5\u653e\u5fc3\u5730\u95dc\u9589\u6b64\u8996\u7a97\uff0c\u4e26\u56de\u5230\u60a8\u7684\u61c9\u7528\u7a0b\u5f0f\u4e26\u518d\u6b21\u5617\u8a66\u767b\u5165\u3002
|
||||
noAccessMessage=\u6c92\u6709\u5b58\u53d6\u6b0a
|
||||
invalidPasswordMinLengthMessage=\u7121\u6548\u7684\u5bc6\u78bc\uff1a\u6700\u77ed\u9577\u5ea6\u70ba {0}\u3002
|
||||
invalidPasswordMaxLengthMessage=\u7121\u6548\u7684\u5bc6\u78bc\uff1a\u6700\u9577\u9577\u5ea6\u70ba {0}\u3002
|
||||
invalidPasswordMinDigitsMessage=\u7121\u6548\u7684\u5bc6\u78bc\uff1a\u81f3\u5c11\u9700\u8981 {0} \u500b\u6578\u5b57\u3002
|
||||
invalidPasswordMinLowerCaseCharsMessage=\u7121\u6548\u7684\u5bc6\u78bc\uff1a\u81f3\u5c11\u9700\u8981 {0} \u500b\u5c0f\u5beb\u5b57\u6bcd\u3002
|
||||
invalidPasswordMinUpperCaseCharsMessage=\u7121\u6548\u7684\u5bc6\u78bc\uff1a\u81f3\u5c11\u9700\u8981 {0} \u500b\u5927\u5beb\u5b57\u6bcd\u3002
|
||||
invalidPasswordMinSpecialCharsMessage=\u7121\u6548\u7684\u5bc6\u78bc\uff1a\u81f3\u5c11\u9700\u8981 {0} \u500b\u7279\u6b8a\u5b57\u5143\u3002
|
||||
invalidPasswordNotUsernameMessage=\u7121\u6548\u7684\u5bc6\u78bc\uff1a\u4e0d\u53ef\u8207\u4f7f\u7528\u8005\u540d\u7a31\u76f8\u540c\u3002
|
||||
invalidPasswordNotContainsUsernameMessage=\u7121\u6548\u7684\u5bc6\u78bc\uff1a\u4e0d\u53ef\u5305\u542b\u4f7f\u7528\u8005\u540d\u7a31\u3002
|
||||
invalidPasswordNotEmailMessage=\u7121\u6548\u7684\u5bc6\u78bc\uff1a\u4e0d\u53ef\u8207\u96fb\u5b50\u4fe1\u7bb1\u76f8\u540c\u3002
|
||||
invalidPasswordRegexPatternMessage=\u7121\u6548\u7684\u5bc6\u78bc\uff1a\u4e0d\u7b26\u5408 regex \u898f\u5247\u3002
|
||||
invalidPasswordHistoryMessage=\u7121\u6548\u7684\u5bc6\u78bc\uff1a\u4e0d\u53ef\u8207\u524d {0} \u500b\u5bc6\u78bc\u76f8\u540c\u3002
|
||||
invalidPasswordGenericMessage=\u7121\u6548\u7684\u5bc6\u78bc\uff1a\u65b0\u5bc6\u78bc\u4e0d\u7b26\u5408\u653f\u7b56\u3002
|
||||
failedToProcessResponseMessage=\u7121\u6cd5\u8655\u7406\u56de\u61c9
|
||||
httpsRequiredMessage=\u9700\u8981\u4f7f\u7528 HTTPS
|
||||
realmNotEnabledMessage=\u8a72\u9818\u57df\u5c1a\u672a\u555f\u7528
|
||||
invalidRequestMessage=\u7121\u6548\u7684\u8acb\u6c42
|
||||
successLogout=\u60a8\u5df2\u7d93\u6210\u529f\u767b\u51fa
|
||||
failedLogout=\u767b\u51fa\u5931\u6557
|
||||
unknownLoginRequesterMessage=\u672a\u77e5\u7684\u767b\u5165\u8acb\u6c42
|
||||
loginRequesterNotEnabledMessage=\u8a72\u767b\u5165\u8acb\u6c42\u5c1a\u672a\u555f\u7528
|
||||
bearerOnlyMessage=Bearer-only \u7684\u61c9\u7528\u7a0b\u5f0f\u4e0d\u5141\u8a31\u555f\u7528\u700f\u89bd\u5668\u767b\u5165
|
||||
standardFlowDisabledMessage=\u5ba2\u6236\u7aef\u4e0d\u5141\u8a31\u4f7f\u7528\u7d66\u5b9a\u7684 response_type \u555f\u52d5\u700f\u89bd\u5668\u767b\u5165\u3002\u6a19\u6e96\u6d41\u7a0b\u5df2\u88ab\u8a72\u5ba2\u6236\u7aef\u7981\u7528\u3002
|
||||
implicitFlowDisabledMessage=\u5ba2\u6236\u7aef\u4e0d\u5141\u8a31\u4f7f\u7528\u7d66\u5b9a\u7684 response_type \u555f\u52d5\u700f\u89bd\u5668\u767b\u5165\u3002\u96b1\u542b\u6d41\u7a0b\u5df2\u88ab\u8a72\u5ba2\u6236\u7aef\u7981\u7528\u3002
|
||||
invalidRedirectUriMessage=\u7121\u6548\u7684 uri \u91cd\u5c0e\u5411
|
||||
unsupportedNameIdFormatMessage=\u5c1a\u672a\u652f\u63f4 NameIDFormat
|
||||
invalidRequesterMessage=\u7121\u6548\u7684\u8acb\u6c42
|
||||
registrationNotAllowedMessage=\u5df2\u7981\u7528\u8a3b\u518a
|
||||
resetCredentialNotAllowedMessage=\u5df2\u7981\u7528\u91cd\u8a2d\u5bc6\u78bc
|
||||
permissionNotApprovedMessage=\u6b0a\u9650\u672a\u6838\u51c6\u3002
|
||||
noRelayStateInResponseMessage=\u8eab\u4efd\u63d0\u4f9b\u8005\u7684\u56de\u61c9\u4e2d\u6c92\u6709\u4e2d\u7e7c\u72c0\u614b\u3002
|
||||
insufficientPermissionMessage=\u7f3a\u5c11\u6b0a\u9650\u4ee5\u9023\u7d50\u8eab\u4efd\u3002
|
||||
couldNotProceedWithAuthenticationRequestMessage=\u7121\u6cd5\u7e7c\u7e8c\u8eab\u4efd\u63d0\u4f9b\u8005\u7684\u8eab\u4efd\u9a57\u8b49\u8acb\u6c42\u3002
|
||||
couldNotObtainTokenMessage=\u7121\u6cd5\u5f9e\u8eab\u4efd\u63d0\u4f9b\u8005\u53d6\u5f97 token\u3002
|
||||
unexpectedErrorRetrievingTokenMessage=\u5f9e\u8eab\u4efd\u63d0\u4f9b\u8005\u53d6\u5f97 token \u6642\u767c\u751f\u975e\u9810\u671f\u932f\u8aa4\u3002
|
||||
unexpectedErrorHandlingResponseMessage=\u8655\u7406\u8eab\u4efd\u63d0\u4f9b\u8005\u7684\u56de\u61c9\u6642\u767c\u751f\u975e\u9810\u671f\u932f\u8aa4\u3002
|
||||
identityProviderAuthenticationFailedMessage=\u8eab\u4efd\u63d0\u4f9b\u8005\u7684\u8eab\u4efd\u9a57\u8b49\u5931\u6557\u3002\u7121\u6cd5\u8207\u8eab\u4efd\u63d0\u4f9b\u8005\u9032\u884c\u8eab\u4efd\u9a57\u8b49\u3002
|
||||
couldNotSendAuthenticationRequestMessage=\u7121\u6cd5\u5c07\u8eab\u4efd\u9a57\u8b49\u8acb\u6c42\u50b3\u9001\u81f3\u8eab\u4efd\u63d0\u4f9b\u8005\u3002
|
||||
unexpectedErrorHandlingRequestMessage=\u8655\u7406\u8eab\u4efd\u63d0\u4f9b\u8005\u7684\u8eab\u4efd\u9a57\u8b49\u8acb\u6c42\u6642\u767c\u751f\u975e\u9810\u671f\u932f\u8aa4\u3002
|
||||
invalidAccessCodeMessage=\u7121\u6548\u7684\u5b58\u53d6\u4ee3\u78bc\u3002
|
||||
sessionNotActiveMessage=\u767b\u5165\u5df2\u904e\u671f\u3002
|
||||
invalidCodeMessage=\u51fa\u932f\u5566\uff0c\u8acb\u900f\u904e\u60a8\u7684\u61c9\u7528\u7a0b\u5f0f\u91cd\u65b0\u767b\u5165\u3002
|
||||
cookieNotFoundMessage=\u627e\u4e0d\u5230 Cookie\u3002\u8acb\u78ba\u8a8d\u60a8\u7684\u700f\u89bd\u5668\u5df2\u555f\u7528 Cookie\u3002
|
||||
insufficientLevelOfAuthentication=\u672a\u6eff\u8db3\u6240\u8981\u6c42\u7684\u8eab\u4efd\u9a57\u8b49\u5c64\u7d1a\u3002
|
||||
identityProviderUnexpectedErrorMessage=\u900f\u904e\u8eab\u4efd\u63d0\u4f9b\u8005\u9032\u884c\u8eab\u4efd\u9a57\u8b49\u6642\u767c\u751f\u975e\u9810\u671f\u932f\u8aa4
|
||||
identityProviderMissingStateMessage=\u7f3a\u5c11\u8eab\u4efd\u63d0\u4f9b\u8005\u56de\u61c9\u4e2d\u7684\u72c0\u614b\u53c3\u6578\u3002
|
||||
identityProviderMissingCodeOrErrorMessage=\u8eab\u5206\u63d0\u4f9b\u8005\u7684\u56de\u61c9\u4e2d\u7f3a\u5c11\u932f\u8aa4\u4ee3\u78bc\u6216\u53c3\u6578\u3002
|
||||
identityProviderInvalidResponseMessage=\u8eab\u4efd\u63d0\u4f9b\u8005\u7684\u56de\u61c9\u7121\u6548\u3002
|
||||
identityProviderInvalidSignatureMessage=\u8eab\u4efd\u63d0\u4f9b\u8005\u56de\u61c9\u4e2d\u7684\u7c3d\u7ae0\u7121\u6548\u3002
|
||||
identityProviderNotFoundMessage=\u627e\u4e0d\u5230\u8eab\u5206\u63d0\u4f9b\u8005\u3002
|
||||
identityProviderLinkSuccess=\u60a8\u5df2\u6210\u529f\u9a57\u8b49\u60a8\u7684\u96fb\u5b50\u4fe1\u7bb1\u3002\u8acb\u56de\u5230\u700f\u89bd\u5668\u5206\u9801\u4e26\u7e7c\u7e8c\u767b\u5165\u3002
|
||||
staleCodeMessage=\u6b64\u9801\u9762\u5df2\u904e\u671f\uff0c\u8acb\u56de\u5230\u60a8\u7684\u61c9\u7528\u7a0b\u5f0f\u4e26\u91cd\u65b0\u767b\u5165\u3002
|
||||
realmSupportsNoCredentialsMessage=\u9818\u57df\u4e0d\u652f\u63f4\u4efb\u4f55\u6191\u8b49\u985e\u578b\u3002
|
||||
credentialSetupRequired=\u7121\u6cd5\u767b\u5165\uff0c\u9700\u8981\u8a2d\u5b9a\u6191\u8b49\u3002
|
||||
identityProviderNotUniqueMessage=\u9818\u57df\u652f\u63f4\u591a\u500b\u8eab\u4efd\u63d0\u4f9b\u8005\u3002\u7121\u6cd5\u6c7a\u5b9a\u61c9\u8a72\u4f7f\u7528\u54ea\u500b\u8eab\u4efd\u63d0\u4f9b\u8005\u9032\u884c\u8eab\u4efd\u9a57\u8b49\u3002
|
||||
emailVerifiedMessage=\u60a8\u7684\u96fb\u5b50\u4fe1\u7bb1\u5df2\u901a\u904e\u9a57\u8b49\u3002
|
||||
emailVerifiedAlreadyMessage=\u60a8\u7684\u96fb\u5b50\u4fe1\u7bb1\u5df2\u7d93\u5b8c\u6210\u9a57\u8b49\u3002
|
||||
staleEmailVerificationLink=\u60a8\u9ede\u9078\u7684\u9023\u7d50\u5df2\u904e\u671f\uff0c\u4e26\u4e14\u4e0d\u518d\u6709\u6548\u3002\u4e5f\u8a31\u60a8\u5df2\u9a57\u8b49\u904e\u60a8\u7684\u96fb\u5b50\u4fe1\u7bb1\u3002
|
||||
identityProviderAlreadyLinkedMessage=\u8eab\u4efd\u63d0\u4f9b\u8005 {0} \u50b3\u56de\u7684\u806f\u76df\u8eab\u4efd\u5df2\u9023\u7d50\u81f3\u53e6\u4e00\u500b\u4f7f\u7528\u8005\u3002
|
||||
confirmAccountLinking=\u78ba\u8a8d\u9023\u7d50\u8eab\u4efd\u63d0\u4f9b\u8005 {1} \u7684\u5e33\u6236 {0} \u81f3\u60a8\u7684\u5e33\u6236\u3002
|
||||
confirmEmailAddressVerification=\u78ba\u8a8d\u96fb\u5b50\u4fe1\u7bb1 {0} \u7684\u6709\u6548\u6027\u3002
|
||||
confirmExecutionOfActions=\u57f7\u884c\u4e0b\u5217\u52d5\u4f5c
|
||||
backToApplication=« \u8fd4\u56de\u61c9\u7528\u7a0b\u5f0f
|
||||
missingParameterMessage=\u907a\u5931\u53c3\u6578\: {0}
|
||||
clientNotFoundMessage=\u627e\u4e0d\u5230\u5ba2\u6236\u7aef\u3002
|
||||
clientDisabledMessage=\u5ba2\u6236\u7aef\u5df2\u7981\u7528\u3002
|
||||
invalidParameterMessage=\u7121\u6548\u53c3\u6578\: {0}
|
||||
alreadyLoggedIn=\u60a8\u5df2\u7d93\u767b\u5165\u3002
|
||||
differentUserAuthenticated=\u60a8\u5df2\u7d93\u4ee5\u4e0d\u540c\u7684\u4f7f\u7528\u8005 ''{0}'' \u767b\u5165\u3002\u8acb\u5148\u767b\u51fa\u5f8c\u518d\u7e7c\u7e8c\u3002
|
||||
brokerLinkingSessionExpired=\u8acb\u6c42\u4ee3\u7406\u4eba\u5e33\u6236\u9023\u7d50\uff0c\u4f46\u76ee\u524d\u7684\u5de5\u4f5c\u968e\u6bb5\u5df2\u4e0d\u518d\u6709\u6548\u3002
|
||||
proceedWithAction=» \u9ede\u64ca\u9019\u88e1\u7e7c\u7e8c
|
||||
acrNotFulfilled=\u672a\u6eff\u8db3\u6388\u6b0a\u9700\u6c42
|
||||
requiredAction.CONFIGURE_TOTP=\u8a2d\u5b9a OTP
|
||||
requiredAction.TERMS_AND_CONDITIONS=\u670d\u52d9\u689d\u6b3e
|
||||
requiredAction.UPDATE_PASSWORD=\u66f4\u65b0\u5bc6\u78bc
|
||||
requiredAction.UPDATE_PROFILE=\u66f4\u65b0\u500b\u4eba\u8cc7\u8a0a
|
||||
requiredAction.VERIFY_EMAIL=\u9a57\u8b49\u96fb\u5b50\u4fe1\u7bb1
|
||||
requiredAction.CONFIGURE_RECOVERY_AUTHN_CODES=\u7522\u751f\u5fa9\u539f\u4ee3\u78bc
|
||||
requiredAction.webauthn-register-passwordless=Webauthn \u7121\u5bc6\u78bc\u8a3b\u518a
|
||||
invalidTokenRequiredActions=\u9023\u7d50\u4e2d\u5305\u542b\u7121\u6548\u884c\u70ba
|
||||
doX509Login=\u60a8\u5c07\u4ee5\u4e0b\u5217\u8eab\u5206\u767b\u5165\:
|
||||
clientCertificate=X509 \u5ba2\u6236\u7aef\u6191\u8b49\:
|
||||
noCertificate=[\u6c92\u6709\u6191\u8b49]
|
||||
pageNotFound=\u7121\u6cd5\u627e\u5230\u7db2\u9801
|
||||
internalServerError=\u5167\u90e8\u4f3a\u670d\u5668\u932f\u8aa4
|
||||
console-username=\u4f7f\u7528\u8005\u540d\u7a31\uff1a
|
||||
console-password=\u5bc6\u78bc\uff1a
|
||||
console-otp=\u4e00\u6b21\u6027\u5bc6\u78bc\uff1a
|
||||
console-new-password=\u65b0\u5bc6\u78bc\uff1a
|
||||
console-confirm-password=\u78ba\u8a8d\u5bc6\u78bc\uff1a
|
||||
console-update-password=\u60a8\u9700\u8981\u66f4\u65b0\u60a8\u7684\u5bc6\u78bc\u3002
|
||||
console-verify-email=\u60a8\u9700\u8981\u9a57\u8b49\u60a8\u7684\u96fb\u5b50\u90f5\u4ef6\u3002\u6211\u5011\u5df2\u7d93\u767c\u9001\u4e86\u4e00\u5c01\u5305\u542b\u9a57\u8b49\u78bc\u7684\u96fb\u5b50\u90f5\u4ef6\u7d66 {0}\u3002\u8acb\u5c07\u6b64\u78bc\u8f38\u5165\u5230\u4e0b\u9762\u7684\u8f38\u5165\u6846\u4e2d\u3002
|
||||
console-email-code=\u96fb\u5b50\u90f5\u4ef6\u9a57\u8b49\u78bc\uff1a
|
||||
console-accept-terms=\u63a5\u53d7\u670d\u52d9\u689d\u6b3e\uff1f [\u662f/\u5426]\:
|
||||
console-accept=\u662f
|
||||
openshift.scope.user_info=\u4f7f\u7528\u8005\u8cc7\u8a0a
|
||||
openshift.scope.user_check-access=\u4f7f\u7528\u8005\u5b58\u53d6\u8cc7\u8a0a
|
||||
openshift.scope.user_full=\u5b8c\u6574\u5b58\u53d6\u6b0a
|
||||
openshift.scope.list-projects=\u5217\u51fa\u5c08\u6848
|
||||
saml.post-form.title=\u8df3\u8f49\u8eab\u4efd\u9a57\u8b49
|
||||
saml.post-form.message=\u8df3\u8f49\u4e2d\uff0c\u8acb\u7a0d\u5019\u3002
|
||||
saml.post-form.js-disabled=JavaScript \u5df2\u505c\u7528\u3002\u6211\u5011\u5f37\u70c8\u5efa\u8b70\u60a8\u555f\u7528\u5b83\u3002\u9ede\u64ca\u4e0b\u9762\u7684\u6309\u9215\u7e7c\u7e8c\u3002
|
||||
saml.artifactResolutionServiceInvalidResponse=\u7121\u6cd5\u89e3\u6790\u5de5\u4ef6\u3002
|
||||
otp-display-name=\u9a57\u8b49\u5668\u61c9\u7528\u7a0b\u5f0f
|
||||
otp-help-text=\u8f38\u5165\u9a57\u8b49\u5668\u61c9\u7528\u7a0b\u5f0f\u4e2d\u7684\u9a57\u8b49\u78bc\u3002
|
||||
otp-reset-description=\u8981\u79fb\u9664\u54ea\u4e00\u500b OTP \u8a2d\u5b9a\uff1f
|
||||
password-display-name=\u5bc6\u78bc
|
||||
password-help-text=\u8f38\u5165\u60a8\u7684\u5bc6\u78bc\u4ee5\u767b\u5165\u3002
|
||||
auth-username-form-display-name=\u4f7f\u7528\u8005\u540d\u7a31
|
||||
auth-username-form-help-text=\u8f38\u5165\u60a8\u7684\u4f7f\u7528\u8005\u540d\u7a31\u4ee5\u767b\u5165\u3002
|
||||
auth-username-password-form-display-name=\u4f7f\u7528\u8005\u540d\u7a31\u548c\u5bc6\u78bc
|
||||
auth-username-password-form-help-text=\u8f38\u5165\u60a8\u7684\u4f7f\u7528\u8005\u540d\u7a31\u548c\u5bc6\u78bc\u4ee5\u767b\u5165\u3002
|
||||
auth-recovery-authn-code-form-display-name=\u6062\u5fa9\u9a57\u8b49\u78bc
|
||||
auth-recovery-authn-code-form-help-text=\u8f38\u5165\u5148\u524d\u7522\u751f\u7684\u6e05\u55ae\u4e2d\u7684\u6062\u5fa9\u9a57\u8b49\u78bc\u3002
|
||||
auth-recovery-code-info-message=\u8f38\u5165\u6307\u5b9a\u7684\u6062\u5fa9\u9a57\u8b49\u78bc\u3002
|
||||
auth-recovery-code-prompt=\u6062\u5fa9\u4ee3\u78bc \#{0}
|
||||
auth-recovery-code-header=\u4f7f\u7528\u6062\u5fa9\u9a57\u8b49\u78bc\u767b\u5165
|
||||
recovery-codes-error-invalid=\u7121\u6548\u7684\u6062\u5fa9\u9a57\u8b49\u78bc
|
||||
recovery-code-config-header=\u6062\u5fa9\u9a57\u8b49\u78bc
|
||||
recovery-code-config-warning-title=\u9019\u4e9b\u6062\u5fa9\u9a57\u8b49\u78bc\u5728\u96e2\u958b\u6b64\u9801\u9762\u5f8c\u5c07\u4e0d\u6703\u518d\u51fa\u73fe
|
||||
recovery-code-config-warning-message=\u8acb\u78ba\u4fdd\u5217\u5370\u3001\u4e0b\u8f09\u6216\u8907\u88fd\u5230\u5bc6\u78bc\u7ba1\u7406\u5668\u4e2d\uff0c\u4e26\u5c07\u5176\u4fdd\u5b58\u3002\u53d6\u6d88\u6b64\u8a2d\u5b9a\u5c07\u5f9e\u60a8\u7684\u5e33\u6236\u4e2d\u522a\u9664\u9019\u4e9b\u6062\u5fa9\u9a57\u8b49\u78bc\u3002
|
||||
recovery-codes-print=\u5217\u5370
|
||||
recovery-codes-download=\u4e0b\u8f09
|
||||
recovery-codes-copy=\u8907\u88fd
|
||||
recovery-codes-copied=\u5df2\u8907\u88fd
|
||||
recovery-codes-confirmation-message=\u6211\u5df2\u7d93\u5c07\u9019\u4e9b\u4ee3\u78bc\u4fdd\u5b58\u5728\u5b89\u5168\u7684\u5730\u65b9
|
||||
recovery-codes-action-complete=\u5b8c\u6210\u8a2d\u5b9a
|
||||
recovery-codes-action-cancel=\u53d6\u6d88\u8a2d\u5b9a
|
||||
recovery-codes-download-file-header=\u8acb\u5c07\u9019\u4e9b\u6062\u5fa9\u9a57\u8b49\u78bc\u4fdd\u5b58\u5728\u5b89\u5168\u7684\u5730\u65b9\u3002
|
||||
recovery-codes-download-file-description=\u6062\u5fa9\u9a57\u8b49\u78bc\u662f\u4e00\u6b21\u6027\u5bc6\u78bc\uff0c\u5982\u679c\u60a8\u7121\u6cd5\u5b58\u53d6\u60a8\u7684\u9a57\u8b49\u5668\uff0c\u5c07\u5141\u8a31\u60a8\u900f\u904e\u6062\u5fa9\u9a57\u8b49\u78bc\u767b\u5165\u60a8\u7684\u5e33\u6236\u3002
|
||||
recovery-codes-download-file-date=\u7522\u751f\u4e86\u9019\u4e9b\u4ee3\u78bc
|
||||
recovery-codes-label-default=\u6062\u5fa9\u9a57\u8b49\u78bc
|
||||
webauthn-display-name=\u5b89\u5168\u91d1\u9470
|
||||
webauthn-help-text=\u4f7f\u7528\u4f60\u7684\u5b89\u5168\u91d1\u9470\u767b\u5165\u3002
|
||||
webauthn-passwordless-display-name=\u514d\u5bc6\u78bc\u767b\u5165\u7528\u7684\u5b89\u5168\u91d1\u9470
|
||||
webauthn-passwordless-help-text=\u4f7f\u7528\u4f60\u7684\u5b89\u5168\u91d1\u9470\u9032\u884c\u514d\u5bc6\u78bc\u767b\u5165\u3002
|
||||
webauthn-login-title=\u5b89\u5168\u91d1\u9470\u767b\u5165
|
||||
webauthn-registration-title=\u8a3b\u518a\u5b89\u5168\u91d1\u9470
|
||||
webauthn-available-authenticators=\u53ef\u7528\u7684\u5b89\u5168\u91d1\u9470
|
||||
webauthn-unsupported-browser-text=\u6b64\u700f\u89bd\u5668\u4e0d\u652f\u63f4 WebAuthn\u3002\u8acb\u5617\u8a66\u5176\u4ed6\u700f\u89bd\u5668\u6216\u806f\u7d61\u60a8\u7684\u7cfb\u7d71\u7ba1\u7406\u54e1\u3002
|
||||
webauthn-doAuthenticate=\u900f\u904e\u5b89\u5168\u91d1\u9470\u9032\u884c\u767b\u5165
|
||||
webauthn-createdAt-label=\u5df2\u5efa\u7acb
|
||||
webauthn-registration-init-label=\u5b89\u5168\u91d1\u9470 (\u9810\u8a2d\u6a19\u7c64)
|
||||
webauthn-registration-init-label-prompt=\u8acb\u70ba\u8a3b\u518a\u7684\u5b89\u5168\u91d1\u9470\u8f38\u5165\u6a19\u7c64
|
||||
webauthn-error-title=\u5b89\u5168\u91d1\u9470\u932f\u8aa4
|
||||
webauthn-error-registration=\u7121\u6cd5\u8a3b\u518a\u60a8\u7684\u5b89\u5168\u91d1\u9470\u3002<br/> {0}
|
||||
webauthn-error-api-get=\u7121\u6cd5\u900f\u904e\u5b89\u5168\u91d1\u9470\u9032\u884c\u9a57\u8b49\u3002<br/> {0}
|
||||
webauthn-error-different-user=\u7b2c\u4e00\u500b\u9a57\u8b49\u7684\u4f7f\u7528\u8005\u4e0d\u662f\u9019\u500b\u5b89\u5168\u91d1\u9470\u9a57\u8b49\u7684\u4f7f\u7528\u8005\u3002
|
||||
webauthn-error-auth-verification=\u5b89\u5168\u91d1\u9470\u9a57\u8b49\u7d50\u679c\u7121\u6548\u3002<br/> {0}
|
||||
webauthn-error-register-verification=\u5b89\u5168\u91d1\u9470\u8a3b\u518a\u7d50\u679c\u7121\u6548\u3002<br/> {0}
|
||||
webauthn-error-user-not-found=\u672a\u77e5\u7684\u4f7f\u7528\u8005\u900f\u904e\u5b89\u5168\u91d1\u9470\u9032\u884c\u9a57\u8b49\u3002
|
||||
identity-provider-redirector=\u9023\u7d50\u5230\u5176\u4ed6\u8eab\u4efd\u63d0\u4f9b\u8005
|
||||
identity-provider-login-label=\u6216\u900f\u904e\u5176\u4ed6\u8eab\u4efd\u63d0\u4f9b\u8005\u767b\u5165
|
||||
idp-email-verification-display-name=\u96fb\u5b50\u4fe1\u7bb1\u9a57\u8b49
|
||||
idp-email-verification-help-text=\u900f\u904e\u9a57\u8b49\u60a8\u7684\u96fb\u5b50\u4fe1\u7bb1\u4f86\u9023\u7d50\u60a8\u7684\u5e33\u6236\u3002
|
||||
idp-username-password-form-display-name=\u4f7f\u7528\u8005\u540d\u7a31\u548c\u5bc6\u78bc
|
||||
idp-username-password-form-help-text=\u900f\u904e\u767b\u5165\u4f86\u9023\u7d50\u60a8\u7684\u5e33\u6236\u3002
|
||||
finalDeletionConfirmation=\u5047\u5982\u60a8\u522a\u9664\u60a8\u7684\u5e33\u6236\uff0c\u5b83\u5c07\u7121\u6cd5\u5fa9\u539f\u3002\u82e5\u8981\u4fdd\u7559\u60a8\u7684\u5e33\u6236\uff0c\u8acb\u6309\u53d6\u6d88\u3002
|
||||
irreversibleAction=\u9019\u500b\u52d5\u4f5c\u662f\u4e0d\u53ef\u9006\u7684
|
||||
deleteAccountConfirm=\u78ba\u8a8d\u522a\u9664\u5e33\u6236
|
||||
deletingImplies=\u522a\u9664\u60a8\u7684\u5e33\u6236\u610f\u5473\u8457\uff1a
|
||||
errasingData=\u6e05\u9664\u60a8\u7684\u6240\u6709\u8cc7\u6599
|
||||
loggingOutImmediately=\u7acb\u5373\u767b\u51fa\u60a8\u7684\u5e33\u6236
|
||||
accountUnusable=\u4efb\u4f55\u5f8c\u7e8c\u4f7f\u7528\u6b64\u5e33\u6236\u7684\u61c9\u7528\u7a0b\u5f0f\u90fd\u5c07\u7121\u6cd5\u4f7f\u7528
|
||||
userDeletedSuccessfully=\u5e33\u6236\u5df2\u6210\u529f\u522a\u9664
|
||||
access-denied=\u5b58\u53d6\u906d\u62d2
|
||||
access-denied-when-idp-auth=\u4f7f\u7528 {0} \u9032\u884c\u8eab\u5206\u9a57\u8b49\u6642\u5b58\u53d6\u906d\u62d2
|
||||
frontchannel-logout.title=\u5373\u5c07\u767b\u51fa
|
||||
frontchannel-logout.message=\u60a8\u6b63\u5728\u767b\u51fa\u4ee5\u4e0b\u61c9\u7528\u7a0b\u5f0f
|
||||
logoutConfirmTitle=\u5373\u5c07\u767b\u51fa
|
||||
logoutConfirmHeader=\u60a8\u78ba\u5b9a\u8981\u767b\u51fa\u55ce\uff1f
|
||||
doLogout=\u767b\u51fa
|
||||
readOnlyUsernameMessage=\u60a8\u7121\u6cd5\u66f4\u65b0\u60a8\u7684\u4f7f\u7528\u8005\u540d\u7a31\uff0c\u56e0\u70ba\u5b83\u662f\u552f\u8b80\u7684\u3002
|
||||
error-invalid-multivalued-size=\u5c6c\u6027 {0} \u5fc5\u9808\u5305\u542b\u81f3\u5c11 {1} \uff0c\u6700\u591a {2} \u500b\u503c\u3002
|
||||
shouldBeEqual={0} \u61c9\u8a72\u7b49\u65bc {1}
|
||||
shouldBeDifferent={0} \u61c9\u8a72\u4e0d\u540c\u65bc {1}
|
||||
shouldMatchPattern=\u6a21\u5f0f\u61c9\u5339\u914d\: `/{0}/`
|
||||
mustBeAnInteger=\u5fc5\u9808\u662f\u6574\u6578
|
||||
notAValidOption=\u4e0d\u662f\u6709\u6548\u9078\u9805
|
||||
selectAnOption=\u9078\u64c7\u4e00\u500b\u9078\u9805
|
||||
remove=\u79fb\u9664
|
||||
addValue=\u6dfb\u52a0\u503c
|
||||
languages=\u8a9e\u8a00
|
@ -0,0 +1,739 @@
|
||||
<!DOCTYPE html><html><head><script>
|
||||
<#assign xKeycloakify={
|
||||
"messages": {},
|
||||
"pageId": "register.ftl",
|
||||
"ftlTemplateFileName": "register-user-profile.ftl",
|
||||
"themeType": "login",
|
||||
"themeName": "keycloakify-starter",
|
||||
"keycloakifyVersion": "11.4.4",
|
||||
"themeVersion": "0.0.0",
|
||||
"resourcesPath": ""
|
||||
}>
|
||||
|
||||
<#if url?? && url?is_hash && url.resourcesPath?? && url.resourcesPath?is_string>
|
||||
<#assign xKeycloakify = xKeycloakify + { "resourcesPath": url.resourcesPath }>
|
||||
</#if>
|
||||
<#if resourceUrl?? && resourceUrl?is_string>
|
||||
<#assign xKeycloakify = xKeycloakify + { "resourcesPath": resourceUrl }>
|
||||
</#if>
|
||||
|
||||
const kcContext = ${toJsDeclarationString(.data_model, [])?no_esc};
|
||||
kcContext.keycloakifyVersion = "${xKeycloakify.keycloakifyVersion}";
|
||||
kcContext.themeVersion = "${xKeycloakify.themeVersion}";
|
||||
kcContext.themeType = "${xKeycloakify.themeType}";
|
||||
kcContext.themeName = "${xKeycloakify.themeName}";
|
||||
kcContext.pageId = "${xKeycloakify.pageId}";
|
||||
kcContext.ftlTemplateFileName = "${xKeycloakify.ftlTemplateFileName}";
|
||||
|
||||
<@addNonAutomaticallyGatherableMessagesToXKeycloakifyMessages />
|
||||
|
||||
kcContext["x-keycloakify"] = {};
|
||||
|
||||
kcContext["x-keycloakify"].resourcesPath = "${xKeycloakify.resourcesPath}";
|
||||
|
||||
{
|
||||
var messages = {};
|
||||
<#list xKeycloakify.messages as key, resolvedMsg>
|
||||
messages["${key}"] = decodeHtmlEntities("${resolvedMsg?js_string}");
|
||||
</#list>
|
||||
kcContext["x-keycloakify"].messages = messages;
|
||||
}
|
||||
|
||||
if(
|
||||
kcContext.url instanceof Object &&
|
||||
typeof kcContext.url.resourcesPath === "string"
|
||||
){
|
||||
kcContext.url.resourcesCommonPath = kcContext.url.resourcesPath + "/resources-common";
|
||||
}
|
||||
|
||||
if( kcContext.messagesPerField ){
|
||||
var existsError_singleFieldName = kcContext.messagesPerField.existsError;
|
||||
kcContext.messagesPerField.existsError = function (){
|
||||
for( let i = 0; i < arguments.length; i++ ){
|
||||
if( existsError_singleFieldName(arguments[i]) ){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
};
|
||||
kcContext.messagesPerField.exists = function (fieldName) {
|
||||
return kcContext.messagesPerField.get(fieldName) !== "";
|
||||
};
|
||||
kcContext.messagesPerField.printIfExists = function (fieldName, text) {
|
||||
return kcContext.messagesPerField.exists(fieldName) ? text : undefined;
|
||||
};
|
||||
kcContext.messagesPerField.getFirstError = function () {
|
||||
for( let i = 0; i < arguments.length; i++ ){
|
||||
const fieldName = arguments[i];
|
||||
if( kcContext.messagesPerField.existsError(fieldName) ){
|
||||
return kcContext.messagesPerField.get(fieldName);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
attributes_to_attributesByName: {
|
||||
if( !kcContext.profile ){
|
||||
break attributes_to_attributesByName;
|
||||
}
|
||||
if( !kcContext.profile.attributes ){
|
||||
break attributes_to_attributesByName;
|
||||
}
|
||||
var attributes = kcContext.profile.attributes;
|
||||
delete kcContext.profile.attributes;
|
||||
kcContext.profile.attributesByName = {};
|
||||
attributes.forEach(function(attribute){
|
||||
kcContext.profile.attributesByName[attribute.name] = attribute;
|
||||
});
|
||||
}
|
||||
|
||||
redirect_to_dev_server: {
|
||||
|
||||
switch(kcContext.themeType){
|
||||
case "login":
|
||||
break redirect_to_dev_server;
|
||||
case "account":
|
||||
if( kcContext.pageId !== "index.ftl" ){
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
break;
|
||||
case "admin":
|
||||
break;
|
||||
default:
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
|
||||
const devSeverPort = kcContext.properties.KEYCLOAKIFY_SPA_DEV_SERVER_PORT;
|
||||
|
||||
if( !devSeverPort ){
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
|
||||
const redirectUrl = new URL(window.location.href);
|
||||
|
||||
redirectUrl.port = devSeverPort;
|
||||
|
||||
delete kcContext.msgJSON;
|
||||
|
||||
console.log(kcContext);
|
||||
|
||||
redirectUrl.searchParams.set("kcContext", encodeURIComponent(JSON.stringify(kcContext)));
|
||||
|
||||
window.location.href = redirectUrl.toString();
|
||||
|
||||
}
|
||||
|
||||
|
||||
window.kcContext = kcContext;
|
||||
|
||||
|
||||
<#if xKeycloakify.themeType == "login" >
|
||||
{
|
||||
const script = document.createElement("script");
|
||||
script.type = "importmap";
|
||||
script.textContent = JSON.stringify({
|
||||
imports: {
|
||||
"rfc4648": kcContext.url.resourcesCommonPath + "/node_modules/rfc4648/lib/rfc4648.js"
|
||||
}
|
||||
}, null, 2);
|
||||
|
||||
document.head.appendChild(script);
|
||||
}
|
||||
</#if>
|
||||
|
||||
function decodeHtmlEntities(htmlStr){
|
||||
var element = decodeHtmlEntities.element;
|
||||
if (!element) {
|
||||
element = document.createElement("textarea");
|
||||
decodeHtmlEntities.element = element;
|
||||
}
|
||||
element.innerHTML = htmlStr;
|
||||
return element.value;
|
||||
}
|
||||
|
||||
<#function toJsDeclarationString object path>
|
||||
<#local isHash = -1>
|
||||
<#attempt>
|
||||
<#local isHash = object?is_hash || object?is_hash_ex>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't evaluate if " + path?join(".") + " is a hash">
|
||||
</#attempt>
|
||||
|
||||
<#if isHash>
|
||||
<#if path?size gt 10>
|
||||
<#return "ABORT: Too many recursive calls, path: " + path?join(".")>
|
||||
</#if>
|
||||
<#local keys = -1>
|
||||
|
||||
<#attempt>
|
||||
<#local keys = object?keys>
|
||||
<#recover>
|
||||
<#return "ABORT: We can't list keys on object">
|
||||
</#attempt>
|
||||
|
||||
<#local outSeq = []>
|
||||
|
||||
<#list keys as key>
|
||||
<#if ["class","declaredConstructors","superclass","declaringClass" ]?seq_contains(key) >
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if (
|
||||
areSamePath(path, ["url"]) &&
|
||||
["loginUpdatePasswordUrl", "loginUpdateProfileUrl", "loginUsernameReminderUrl", "loginUpdateTotpUrl"]?seq_contains(key)
|
||||
) || (
|
||||
key == "updateProfileCtx" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
<#-- https://github.com/keycloakify/keycloakify/pull/65#issuecomment-991896344 (reports with saml-post-form.ftl) -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/91#issue-1212319466 (reports with error.ftl and Kc18) -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/109#issuecomment-1134610163 -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/357 -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/discussions/406#discussioncomment-7514787 -->
|
||||
key == "loginAction" &&
|
||||
areSamePath(path, ["url"]) &&
|
||||
["saml-post-form.ftl", "error.ftl", "info.ftl", "login-oauth-grant.ftl", "logout-confirm.ftl", "login-oauth2-device-verify-user-code.ftl"]?seq_contains(xKeycloakify.pageId) &&
|
||||
!(auth?has_content && auth.showTryAnotherWayLink())
|
||||
) || (
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/362 -->
|
||||
["secretData", "value"]?seq_contains(key) &&
|
||||
areSamePath(path, [ "totp", "otpCredentials", "*" ])
|
||||
) || (
|
||||
["contextData", "idpConfig", "idp", "authenticationSession"]?seq_contains(key) &&
|
||||
areSamePath(path, ["brokerContext"]) &&
|
||||
["login-idp-link-confirm.ftl", "login-idp-link-email.ftl" ]?seq_contains(xKeycloakify.pageId)
|
||||
) || (
|
||||
key == "identityProviderBrokerCtx" &&
|
||||
areSamePath(path, []) &&
|
||||
["login-idp-link-confirm.ftl", "login-idp-link-email.ftl" ]?seq_contains(xKeycloakify.pageId)
|
||||
) || (
|
||||
["masterAdminClient", "delegateForUpdate", "defaultRole", "smtpConfig"]?seq_contains(key) &&
|
||||
areSamePath(path, ["realm"])
|
||||
) || (
|
||||
xKeycloakify.pageId == "error.ftl" &&
|
||||
areSamePath(path, ["realm"]) &&
|
||||
!["name", "displayName", "displayNameHtml", "internationalizationEnabled", "registrationEmailAsUsername" ]?seq_contains(key)
|
||||
) || (
|
||||
xKeycloakify.pageId == "applications.ftl" &&
|
||||
(
|
||||
key == "realm" ||
|
||||
key == "container"
|
||||
) &&
|
||||
isSubpath(path, ["applications", "applications"])
|
||||
) || (
|
||||
key == "delegateForUpdate" &&
|
||||
areSamePath(path, ["user"])
|
||||
) || (
|
||||
<#-- Security audit forwarded by Garth (Gmail) -->
|
||||
key == "saml.signing.private.key" &&
|
||||
areSamePath(path, ["client", "attributes"])
|
||||
) || (
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/534 -->
|
||||
key == "password" &&
|
||||
areSamePath(path, ["login"])
|
||||
) || (
|
||||
<#-- Remove realmAttributes added by https://github.com/jcputney/keycloak-theme-additional-info-extension for peace of mind. -->
|
||||
key == "realmAttributes" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
<#-- attributesByName adds a lot of noise to the output and is not needed, we already have profile.attributes -->
|
||||
key == "attributesByName" &&
|
||||
areSamePath(path, ["profile"])
|
||||
) || (
|
||||
<#-- We already have the attributes in profile speedup the rendering by filtering it out from the register object -->
|
||||
(key == "attributes" || key == "attributesByName") &&
|
||||
areSamePath(path, ["register"])
|
||||
) || (
|
||||
areSamePath(path, ["properties"]) &&
|
||||
(
|
||||
key?starts_with("kc") ||
|
||||
key == "locales" ||
|
||||
key == "import" ||
|
||||
key == "parent" ||
|
||||
key == "meta" ||
|
||||
key == "stylesCommon" ||
|
||||
key == "styles" ||
|
||||
key == "accountResourceProvider"
|
||||
)
|
||||
) || (
|
||||
key == "execution" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
key == "entity" &&
|
||||
areSamePath(path, ["user"])
|
||||
) || (
|
||||
key == "attributes" &&
|
||||
areSamePath(path, ["realm"])
|
||||
) || (
|
||||
xKeycloakify.pageId == "index.ftl" &&
|
||||
xKeycloakify.themeType == "account" &&
|
||||
areSamePath(path, ["realm"]) &&
|
||||
![
|
||||
"name",
|
||||
"registrationEmailAsUsername",
|
||||
"editUsernameAllowed",
|
||||
"isInternationalizationEnabled",
|
||||
"identityFederationEnabled",
|
||||
"userManagedAccessAllowed"
|
||||
]?seq_contains(key)
|
||||
) || (
|
||||
["flowContext", "session", "realm"]?seq_contains(key) &&
|
||||
areSamePath(path, ["social"])
|
||||
)
|
||||
>
|
||||
<#-- <#local outSeq += ["/*" + path?join(".") + "." + key + " excluded*/"]> -->
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#-- https://github.com/keycloakify/keycloakify/discussions/406 -->
|
||||
<#if (
|
||||
key == "attemptedUsername" &&
|
||||
areSamePath(path, ["auth"]) &&
|
||||
[
|
||||
"register.ftl", "terms.ftl", "info.ftl", "login.ftl",
|
||||
"login-update-password.ftl", "login-oauth2-device-verify-user-code.ftl"
|
||||
]?seq_contains(xKeycloakify.pageId)
|
||||
)>
|
||||
<#attempt>
|
||||
<#-- https://github.com/keycloak/keycloak/blob/3a2bf0c04bcde185e497aaa32d0bb7ab7520cf4a/themes/src/main/resources/theme/base/login/template.ftl#L63 -->
|
||||
<#if !(auth?has_content && auth.showUsername() && !auth.showResetCredentials())>
|
||||
<#local outSeq += ["/*" + path?join(".") + "." + key + " excluded*/"]>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Accessing attemptedUsername throwed an exception */"]>
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
|
||||
|
||||
<#attempt>
|
||||
<#if !object[key]??>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Couldn't test if '" + key + "' is available on this object*/"]>
|
||||
<#continue>
|
||||
</#attempt>
|
||||
|
||||
<#local propertyValue = -1>
|
||||
|
||||
<#attempt>
|
||||
<#local propertyValue = object[key]>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Couldn't dereference '" + key + "' on this object*/"]>
|
||||
<#continue>
|
||||
</#attempt>
|
||||
|
||||
<#local recOut = toJsDeclarationString(propertyValue, path + [ key ])>
|
||||
|
||||
<#if recOut?starts_with("ABORT:")>
|
||||
|
||||
<#local errorMessage = recOut?remove_beginning("ABORT:")>
|
||||
|
||||
<#if errorMessage != " It's a method" >
|
||||
<#local outSeq += ["/*" + key + ": " + errorMessage + "*/"]>
|
||||
</#if>
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local outSeq += ['"' + key + '": ' + recOut + ","]>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return (["{"] + outSeq?map(str -> ""?right_pad(4 * (path?size + 1)) + str) + [ ""?right_pad(4 * path?size) + "}"])?join("\n")>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local isMethod = -1>
|
||||
<#attempt>
|
||||
<#local isMethod = object?is_method>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it'sa method.">
|
||||
</#attempt>
|
||||
|
||||
<#if isMethod>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showUsername"])>
|
||||
<#attempt>
|
||||
<#return auth.showUsername()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showUsername()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showResetCredentials"])>
|
||||
<#attempt>
|
||||
<#return auth.showResetCredentials()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showResetCredentials()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showTryAnotherWayLink"])>
|
||||
<#attempt>
|
||||
<#return auth.showTryAnotherWayLink()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showTryAnotherWayLink()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["url", "getLogoutUrl"])>
|
||||
<#local returnValue = -1>
|
||||
<#attempt>
|
||||
<#local returnValue = url.getLogoutUrl()>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate url.getLogoutUrl()">
|
||||
</#attempt>
|
||||
<#return 'function(){ return "' + returnValue + '"; }'>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["totp", "policy", "getAlgorithmKey"])>
|
||||
<#local returnValue = "error">
|
||||
<#if mode?? && mode = "manual">
|
||||
<#attempt>
|
||||
<#local returnValue = totp.policy.getAlgorithmKey()>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate totp.policy.getAlgorithmKey()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
<#return 'function(){ return "' + returnValue + '"; }'>
|
||||
</#if>
|
||||
|
||||
<#assign fieldNames = ["firstName", "lastName", "email", "username", "password", "password-confirm", "global", "totp", "userLabel", "recoveryCodeInput", "termsAccepted"]>
|
||||
<#if profile?? && profile.attributes??>
|
||||
<#list profile.attributes as attribute>
|
||||
<#if fieldNames?seq_contains(attribute.name)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#assign fieldNames += [attribute.name]>
|
||||
</#list>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["messagesPerField", "get"])>
|
||||
|
||||
<#local jsFunctionCode = "function (fieldName) { ">
|
||||
|
||||
<#list fieldNames as fieldName>
|
||||
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/217 -->
|
||||
<#if xKeycloakify.pageId == "login.ftl" >
|
||||
|
||||
<#if fieldName == "username">
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === 'username' || fieldName === 'password' ){ ">
|
||||
|
||||
<#if messagesPerField.exists('username') || messagesPerField.exists('password')>
|
||||
<#local jsFunctionCode += "return kcContext.message && kcContext.message.summary ? kcContext.message.summary : 'error'; ">
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return ''; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if fieldName == "password">
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === '" + fieldName + "'){ ">
|
||||
|
||||
<#if messagesPerField.exists('${fieldName}')>
|
||||
<#local jsFunctionCode += 'return decodeHtmlEntities("' + messagesPerField.get('${fieldName}')?js_string + '"); '>
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return ''; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
</#list>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
<#return jsFunctionCode>
|
||||
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["messagesPerField", "existsError"])>
|
||||
|
||||
<#local jsFunctionCode = "function (fieldName) { ">
|
||||
|
||||
<#list fieldNames as fieldName>
|
||||
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/217 -->
|
||||
<#if xKeycloakify.pageId == "login.ftl" >
|
||||
<#if fieldName == "username">
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === 'username' || fieldName === 'password' ){ ">
|
||||
|
||||
<#if messagesPerField.existsError('username') || messagesPerField.existsError('password')>
|
||||
<#local jsFunctionCode += "return true; ">
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return false; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if fieldName == "password">
|
||||
<#continue>
|
||||
</#if>
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === '" + fieldName + "' ){ ">
|
||||
|
||||
<#if messagesPerField.existsError('${fieldName}')>
|
||||
<#local jsFunctionCode += 'return true; '>
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return false; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
</#list>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
<#return jsFunctionCode>
|
||||
|
||||
</#if>
|
||||
|
||||
<#if xKeycloakify.themeType == "account" && areSamePath(path, ["realm", "isInternationalizationEnabled"])>
|
||||
<#attempt>
|
||||
<#return realm.isInternationalizationEnabled()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate realm.isInternationalizationEnabled()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#return "ABORT: It's a method">
|
||||
</#if>
|
||||
|
||||
<#local isBoolean = -1>
|
||||
<#attempt>
|
||||
<#local isBoolean = object?is_boolean>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a boolean">
|
||||
</#attempt>
|
||||
|
||||
<#if isBoolean>
|
||||
<#return object?c>
|
||||
</#if>
|
||||
|
||||
<#local isEnumerable = -1>
|
||||
<#attempt>
|
||||
<#local isEnumerable = object?is_enumerable>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's an enumerable">
|
||||
</#attempt>
|
||||
|
||||
|
||||
<#if isEnumerable>
|
||||
|
||||
<#local outSeq = []>
|
||||
|
||||
<#local i = 0>
|
||||
|
||||
<#list object as array_item>
|
||||
|
||||
<#if !array_item??>
|
||||
<#local outSeq += ["null,"]>
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local recOut = toJsDeclarationString(array_item, path + [ i ])>
|
||||
|
||||
<#local i = i + 1>
|
||||
|
||||
<#if recOut?starts_with("ABORT:")>
|
||||
|
||||
<#local errorMessage = recOut?remove_beginning("ABORT:")>
|
||||
|
||||
<#if errorMessage != " It's a method" >
|
||||
<#local outSeq += ["/*" + i?string + ": " + errorMessage + "*/"]>
|
||||
</#if>
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local outSeq += [recOut + ","]>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return (["["] + outSeq?map(str -> ""?right_pad(4 * (path?size + 1)) + str) + [ ""?right_pad(4 * path?size) + "]"])?join("\n")>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local isDate = -1>
|
||||
<#attempt>
|
||||
<#local isDate = object?is_date_like>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a date">
|
||||
</#attempt>
|
||||
|
||||
<#if isDate>
|
||||
<#return '"' + object?datetime?iso_utc + '"'>
|
||||
</#if>
|
||||
|
||||
<#local isNumber = -1>
|
||||
<#attempt>
|
||||
<#local isNumber = object?is_number>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a number">
|
||||
</#attempt>
|
||||
|
||||
<#if isNumber>
|
||||
<#return object?c>
|
||||
</#if>
|
||||
|
||||
<#local isString = -1>
|
||||
<#attempt>
|
||||
<#local isString = object?is_string>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a string">
|
||||
</#attempt>
|
||||
|
||||
<#if isString>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str=object />
|
||||
</#if>
|
||||
|
||||
<#attempt>
|
||||
<#return '"' + object?js_string + '"'>;
|
||||
<#recover>
|
||||
</#attempt>
|
||||
|
||||
<#return "ABORT: Couldn't convert into string non hash, non method, non boolean, non number, non enumerable object">
|
||||
|
||||
</#function>
|
||||
<#function isSubpath path searchedPath>
|
||||
|
||||
<#if path?size < searchedPath?size>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#local i=0>
|
||||
|
||||
<#list path as property>
|
||||
|
||||
<#if i == searchedPath?size >
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local searchedProperty=searchedPath[i]>
|
||||
|
||||
<#local i+= 1>
|
||||
|
||||
<#if searchedProperty?is_string && searchedProperty == "*">
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?is_string && !property?is_string>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?is_number && !property?is_number>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?string != property?string>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return true>
|
||||
|
||||
</#function>
|
||||
|
||||
<#function areSamePath path searchedPath>
|
||||
<#return path?size == searchedPath?size && isSubpath(path, searchedPath)>
|
||||
</#function>
|
||||
|
||||
<#macro addToXKeycloakifyMessagesIfMessageKey str>
|
||||
<#if !msg?? || !msg?is_method>
|
||||
<#return>
|
||||
</#if>
|
||||
<#if (str?length > 200)>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local key=removeBrackets(str)>
|
||||
<#if key?length==0>
|
||||
<#return>
|
||||
</#if>
|
||||
<#if !(key?matches(r"^[a-zA-Z0-9-_.]*$"))>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local resolvedMsg=msg(key)>
|
||||
<#if resolvedMsg==key>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local messages=xKeycloakify.messages>
|
||||
<#local messages = messages + { key: resolvedMsg }>
|
||||
<#assign xKeycloakify = xKeycloakify + { "messages": messages }>
|
||||
</#macro>
|
||||
|
||||
<#function removeBrackets str>
|
||||
<#if str?starts_with("${") && str?ends_with("}")>
|
||||
<#return str[2..(str?length-2)]>
|
||||
<#else>
|
||||
<#return str>
|
||||
</#if>
|
||||
</#function>
|
||||
|
||||
<#macro addNonAutomaticallyGatherableMessagesToXKeycloakifyMessages>
|
||||
<#if profile?? && profile?is_hash && profile.attributes?? && profile.attributes?is_enumerable>
|
||||
<#list profile.attributes as attribute>
|
||||
<#if !(
|
||||
attribute.annotations?? && attribute.annotations?is_hash &&
|
||||
attribute.annotations.inputOptionLabelsI18nPrefix?? && attribute.annotations.inputOptionLabelsI18nPrefix?is_string
|
||||
)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#local prefix=attribute.annotations.inputOptionLabelsI18nPrefix>
|
||||
<#if !(
|
||||
attribute.validators?? && attribute.validators?is_hash &&
|
||||
attribute.validators.options?? && attribute.validators.options?is_hash &&
|
||||
attribute.validators.options.options?? && attribute.validators.options.options?is_enumerable
|
||||
)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#list attribute.validators.options.options as option>
|
||||
<#if !option?is_string>
|
||||
<#continue>
|
||||
</#if>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="${prefix}.${option}" />
|
||||
</#list>
|
||||
</#list>
|
||||
</#if>
|
||||
<#if xKeycloakify.pageId == "terms.ftl" || termsAcceptanceRequired?? && termsAcceptanceRequired>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="termsText" />
|
||||
</#if>
|
||||
<#if requiredActions?? && requiredActions?is_enumerable>
|
||||
<#list requiredActions as requiredAction>
|
||||
<#if !requiredAction?is_string>
|
||||
<#continue>
|
||||
</#if>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="requiredAction.${requiredAction}" />
|
||||
</#list>
|
||||
</#if>
|
||||
</#macro>
|
||||
|
||||
</script>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="${xKeycloakify.resourcesPath}/dist/favicon-32x32.png">
|
||||
<script type="module" crossorigin="" src="${xKeycloakify.resourcesPath}/dist/assets/index-6-NnS-wp.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="root"></div>
|
||||
|
||||
|
||||
</body></html>
|
739
dist_keycloak/theme/keycloakify-starter/login/register.ftl
Normal file
739
dist_keycloak/theme/keycloakify-starter/login/register.ftl
Normal file
@ -0,0 +1,739 @@
|
||||
<!DOCTYPE html><html><head><script>
|
||||
<#assign xKeycloakify={
|
||||
"messages": {},
|
||||
"pageId": "register.ftl",
|
||||
"ftlTemplateFileName": "register.ftl",
|
||||
"themeType": "login",
|
||||
"themeName": "keycloakify-starter",
|
||||
"keycloakifyVersion": "11.4.4",
|
||||
"themeVersion": "0.0.0",
|
||||
"resourcesPath": ""
|
||||
}>
|
||||
|
||||
<#if url?? && url?is_hash && url.resourcesPath?? && url.resourcesPath?is_string>
|
||||
<#assign xKeycloakify = xKeycloakify + { "resourcesPath": url.resourcesPath }>
|
||||
</#if>
|
||||
<#if resourceUrl?? && resourceUrl?is_string>
|
||||
<#assign xKeycloakify = xKeycloakify + { "resourcesPath": resourceUrl }>
|
||||
</#if>
|
||||
|
||||
const kcContext = ${toJsDeclarationString(.data_model, [])?no_esc};
|
||||
kcContext.keycloakifyVersion = "${xKeycloakify.keycloakifyVersion}";
|
||||
kcContext.themeVersion = "${xKeycloakify.themeVersion}";
|
||||
kcContext.themeType = "${xKeycloakify.themeType}";
|
||||
kcContext.themeName = "${xKeycloakify.themeName}";
|
||||
kcContext.pageId = "${xKeycloakify.pageId}";
|
||||
kcContext.ftlTemplateFileName = "${xKeycloakify.ftlTemplateFileName}";
|
||||
|
||||
<@addNonAutomaticallyGatherableMessagesToXKeycloakifyMessages />
|
||||
|
||||
kcContext["x-keycloakify"] = {};
|
||||
|
||||
kcContext["x-keycloakify"].resourcesPath = "${xKeycloakify.resourcesPath}";
|
||||
|
||||
{
|
||||
var messages = {};
|
||||
<#list xKeycloakify.messages as key, resolvedMsg>
|
||||
messages["${key}"] = decodeHtmlEntities("${resolvedMsg?js_string}");
|
||||
</#list>
|
||||
kcContext["x-keycloakify"].messages = messages;
|
||||
}
|
||||
|
||||
if(
|
||||
kcContext.url instanceof Object &&
|
||||
typeof kcContext.url.resourcesPath === "string"
|
||||
){
|
||||
kcContext.url.resourcesCommonPath = kcContext.url.resourcesPath + "/resources-common";
|
||||
}
|
||||
|
||||
if( kcContext.messagesPerField ){
|
||||
var existsError_singleFieldName = kcContext.messagesPerField.existsError;
|
||||
kcContext.messagesPerField.existsError = function (){
|
||||
for( let i = 0; i < arguments.length; i++ ){
|
||||
if( existsError_singleFieldName(arguments[i]) ){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
};
|
||||
kcContext.messagesPerField.exists = function (fieldName) {
|
||||
return kcContext.messagesPerField.get(fieldName) !== "";
|
||||
};
|
||||
kcContext.messagesPerField.printIfExists = function (fieldName, text) {
|
||||
return kcContext.messagesPerField.exists(fieldName) ? text : undefined;
|
||||
};
|
||||
kcContext.messagesPerField.getFirstError = function () {
|
||||
for( let i = 0; i < arguments.length; i++ ){
|
||||
const fieldName = arguments[i];
|
||||
if( kcContext.messagesPerField.existsError(fieldName) ){
|
||||
return kcContext.messagesPerField.get(fieldName);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
attributes_to_attributesByName: {
|
||||
if( !kcContext.profile ){
|
||||
break attributes_to_attributesByName;
|
||||
}
|
||||
if( !kcContext.profile.attributes ){
|
||||
break attributes_to_attributesByName;
|
||||
}
|
||||
var attributes = kcContext.profile.attributes;
|
||||
delete kcContext.profile.attributes;
|
||||
kcContext.profile.attributesByName = {};
|
||||
attributes.forEach(function(attribute){
|
||||
kcContext.profile.attributesByName[attribute.name] = attribute;
|
||||
});
|
||||
}
|
||||
|
||||
redirect_to_dev_server: {
|
||||
|
||||
switch(kcContext.themeType){
|
||||
case "login":
|
||||
break redirect_to_dev_server;
|
||||
case "account":
|
||||
if( kcContext.pageId !== "index.ftl" ){
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
break;
|
||||
case "admin":
|
||||
break;
|
||||
default:
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
|
||||
const devSeverPort = kcContext.properties.KEYCLOAKIFY_SPA_DEV_SERVER_PORT;
|
||||
|
||||
if( !devSeverPort ){
|
||||
break redirect_to_dev_server;
|
||||
}
|
||||
|
||||
const redirectUrl = new URL(window.location.href);
|
||||
|
||||
redirectUrl.port = devSeverPort;
|
||||
|
||||
delete kcContext.msgJSON;
|
||||
|
||||
console.log(kcContext);
|
||||
|
||||
redirectUrl.searchParams.set("kcContext", encodeURIComponent(JSON.stringify(kcContext)));
|
||||
|
||||
window.location.href = redirectUrl.toString();
|
||||
|
||||
}
|
||||
|
||||
|
||||
window.kcContext = kcContext;
|
||||
|
||||
|
||||
<#if xKeycloakify.themeType == "login" >
|
||||
{
|
||||
const script = document.createElement("script");
|
||||
script.type = "importmap";
|
||||
script.textContent = JSON.stringify({
|
||||
imports: {
|
||||
"rfc4648": kcContext.url.resourcesCommonPath + "/node_modules/rfc4648/lib/rfc4648.js"
|
||||
}
|
||||
}, null, 2);
|
||||
|
||||
document.head.appendChild(script);
|
||||
}
|
||||
</#if>
|
||||
|
||||
function decodeHtmlEntities(htmlStr){
|
||||
var element = decodeHtmlEntities.element;
|
||||
if (!element) {
|
||||
element = document.createElement("textarea");
|
||||
decodeHtmlEntities.element = element;
|
||||
}
|
||||
element.innerHTML = htmlStr;
|
||||
return element.value;
|
||||
}
|
||||
|
||||
<#function toJsDeclarationString object path>
|
||||
<#local isHash = -1>
|
||||
<#attempt>
|
||||
<#local isHash = object?is_hash || object?is_hash_ex>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't evaluate if " + path?join(".") + " is a hash">
|
||||
</#attempt>
|
||||
|
||||
<#if isHash>
|
||||
<#if path?size gt 10>
|
||||
<#return "ABORT: Too many recursive calls, path: " + path?join(".")>
|
||||
</#if>
|
||||
<#local keys = -1>
|
||||
|
||||
<#attempt>
|
||||
<#local keys = object?keys>
|
||||
<#recover>
|
||||
<#return "ABORT: We can't list keys on object">
|
||||
</#attempt>
|
||||
|
||||
<#local outSeq = []>
|
||||
|
||||
<#list keys as key>
|
||||
<#if ["class","declaredConstructors","superclass","declaringClass" ]?seq_contains(key) >
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if (
|
||||
areSamePath(path, ["url"]) &&
|
||||
["loginUpdatePasswordUrl", "loginUpdateProfileUrl", "loginUsernameReminderUrl", "loginUpdateTotpUrl"]?seq_contains(key)
|
||||
) || (
|
||||
key == "updateProfileCtx" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
<#-- https://github.com/keycloakify/keycloakify/pull/65#issuecomment-991896344 (reports with saml-post-form.ftl) -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/91#issue-1212319466 (reports with error.ftl and Kc18) -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/109#issuecomment-1134610163 -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/357 -->
|
||||
<#-- https://github.com/keycloakify/keycloakify/discussions/406#discussioncomment-7514787 -->
|
||||
key == "loginAction" &&
|
||||
areSamePath(path, ["url"]) &&
|
||||
["saml-post-form.ftl", "error.ftl", "info.ftl", "login-oauth-grant.ftl", "logout-confirm.ftl", "login-oauth2-device-verify-user-code.ftl"]?seq_contains(xKeycloakify.pageId) &&
|
||||
!(auth?has_content && auth.showTryAnotherWayLink())
|
||||
) || (
|
||||
<#-- https://github.com/keycloakify/keycloakify/issues/362 -->
|
||||
["secretData", "value"]?seq_contains(key) &&
|
||||
areSamePath(path, [ "totp", "otpCredentials", "*" ])
|
||||
) || (
|
||||
["contextData", "idpConfig", "idp", "authenticationSession"]?seq_contains(key) &&
|
||||
areSamePath(path, ["brokerContext"]) &&
|
||||
["login-idp-link-confirm.ftl", "login-idp-link-email.ftl" ]?seq_contains(xKeycloakify.pageId)
|
||||
) || (
|
||||
key == "identityProviderBrokerCtx" &&
|
||||
areSamePath(path, []) &&
|
||||
["login-idp-link-confirm.ftl", "login-idp-link-email.ftl" ]?seq_contains(xKeycloakify.pageId)
|
||||
) || (
|
||||
["masterAdminClient", "delegateForUpdate", "defaultRole", "smtpConfig"]?seq_contains(key) &&
|
||||
areSamePath(path, ["realm"])
|
||||
) || (
|
||||
xKeycloakify.pageId == "error.ftl" &&
|
||||
areSamePath(path, ["realm"]) &&
|
||||
!["name", "displayName", "displayNameHtml", "internationalizationEnabled", "registrationEmailAsUsername" ]?seq_contains(key)
|
||||
) || (
|
||||
xKeycloakify.pageId == "applications.ftl" &&
|
||||
(
|
||||
key == "realm" ||
|
||||
key == "container"
|
||||
) &&
|
||||
isSubpath(path, ["applications", "applications"])
|
||||
) || (
|
||||
key == "delegateForUpdate" &&
|
||||
areSamePath(path, ["user"])
|
||||
) || (
|
||||
<#-- Security audit forwarded by Garth (Gmail) -->
|
||||
key == "saml.signing.private.key" &&
|
||||
areSamePath(path, ["client", "attributes"])
|
||||
) || (
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/534 -->
|
||||
key == "password" &&
|
||||
areSamePath(path, ["login"])
|
||||
) || (
|
||||
<#-- Remove realmAttributes added by https://github.com/jcputney/keycloak-theme-additional-info-extension for peace of mind. -->
|
||||
key == "realmAttributes" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
<#-- attributesByName adds a lot of noise to the output and is not needed, we already have profile.attributes -->
|
||||
key == "attributesByName" &&
|
||||
areSamePath(path, ["profile"])
|
||||
) || (
|
||||
<#-- We already have the attributes in profile speedup the rendering by filtering it out from the register object -->
|
||||
(key == "attributes" || key == "attributesByName") &&
|
||||
areSamePath(path, ["register"])
|
||||
) || (
|
||||
areSamePath(path, ["properties"]) &&
|
||||
(
|
||||
key?starts_with("kc") ||
|
||||
key == "locales" ||
|
||||
key == "import" ||
|
||||
key == "parent" ||
|
||||
key == "meta" ||
|
||||
key == "stylesCommon" ||
|
||||
key == "styles" ||
|
||||
key == "accountResourceProvider"
|
||||
)
|
||||
) || (
|
||||
key == "execution" &&
|
||||
areSamePath(path, [])
|
||||
) || (
|
||||
key == "entity" &&
|
||||
areSamePath(path, ["user"])
|
||||
) || (
|
||||
key == "attributes" &&
|
||||
areSamePath(path, ["realm"])
|
||||
) || (
|
||||
xKeycloakify.pageId == "index.ftl" &&
|
||||
xKeycloakify.themeType == "account" &&
|
||||
areSamePath(path, ["realm"]) &&
|
||||
![
|
||||
"name",
|
||||
"registrationEmailAsUsername",
|
||||
"editUsernameAllowed",
|
||||
"isInternationalizationEnabled",
|
||||
"identityFederationEnabled",
|
||||
"userManagedAccessAllowed"
|
||||
]?seq_contains(key)
|
||||
) || (
|
||||
["flowContext", "session", "realm"]?seq_contains(key) &&
|
||||
areSamePath(path, ["social"])
|
||||
)
|
||||
>
|
||||
<#-- <#local outSeq += ["/*" + path?join(".") + "." + key + " excluded*/"]> -->
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#-- https://github.com/keycloakify/keycloakify/discussions/406 -->
|
||||
<#if (
|
||||
key == "attemptedUsername" &&
|
||||
areSamePath(path, ["auth"]) &&
|
||||
[
|
||||
"register.ftl", "terms.ftl", "info.ftl", "login.ftl",
|
||||
"login-update-password.ftl", "login-oauth2-device-verify-user-code.ftl"
|
||||
]?seq_contains(xKeycloakify.pageId)
|
||||
)>
|
||||
<#attempt>
|
||||
<#-- https://github.com/keycloak/keycloak/blob/3a2bf0c04bcde185e497aaa32d0bb7ab7520cf4a/themes/src/main/resources/theme/base/login/template.ftl#L63 -->
|
||||
<#if !(auth?has_content && auth.showUsername() && !auth.showResetCredentials())>
|
||||
<#local outSeq += ["/*" + path?join(".") + "." + key + " excluded*/"]>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Accessing attemptedUsername throwed an exception */"]>
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
|
||||
|
||||
<#attempt>
|
||||
<#if !object[key]??>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Couldn't test if '" + key + "' is available on this object*/"]>
|
||||
<#continue>
|
||||
</#attempt>
|
||||
|
||||
<#local propertyValue = -1>
|
||||
|
||||
<#attempt>
|
||||
<#local propertyValue = object[key]>
|
||||
<#recover>
|
||||
<#local outSeq += ["/*Couldn't dereference '" + key + "' on this object*/"]>
|
||||
<#continue>
|
||||
</#attempt>
|
||||
|
||||
<#local recOut = toJsDeclarationString(propertyValue, path + [ key ])>
|
||||
|
||||
<#if recOut?starts_with("ABORT:")>
|
||||
|
||||
<#local errorMessage = recOut?remove_beginning("ABORT:")>
|
||||
|
||||
<#if errorMessage != " It's a method" >
|
||||
<#local outSeq += ["/*" + key + ": " + errorMessage + "*/"]>
|
||||
</#if>
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local outSeq += ['"' + key + '": ' + recOut + ","]>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return (["{"] + outSeq?map(str -> ""?right_pad(4 * (path?size + 1)) + str) + [ ""?right_pad(4 * path?size) + "}"])?join("\n")>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local isMethod = -1>
|
||||
<#attempt>
|
||||
<#local isMethod = object?is_method>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it'sa method.">
|
||||
</#attempt>
|
||||
|
||||
<#if isMethod>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showUsername"])>
|
||||
<#attempt>
|
||||
<#return auth.showUsername()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showUsername()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showResetCredentials"])>
|
||||
<#attempt>
|
||||
<#return auth.showResetCredentials()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showResetCredentials()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["auth", "showTryAnotherWayLink"])>
|
||||
<#attempt>
|
||||
<#return auth.showTryAnotherWayLink()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate auth.showTryAnotherWayLink()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["url", "getLogoutUrl"])>
|
||||
<#local returnValue = -1>
|
||||
<#attempt>
|
||||
<#local returnValue = url.getLogoutUrl()>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate url.getLogoutUrl()">
|
||||
</#attempt>
|
||||
<#return 'function(){ return "' + returnValue + '"; }'>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["totp", "policy", "getAlgorithmKey"])>
|
||||
<#local returnValue = "error">
|
||||
<#if mode?? && mode = "manual">
|
||||
<#attempt>
|
||||
<#local returnValue = totp.policy.getAlgorithmKey()>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate totp.policy.getAlgorithmKey()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
<#return 'function(){ return "' + returnValue + '"; }'>
|
||||
</#if>
|
||||
|
||||
<#assign fieldNames = ["firstName", "lastName", "email", "username", "password", "password-confirm", "global", "totp", "userLabel", "recoveryCodeInput", "termsAccepted"]>
|
||||
<#if profile?? && profile.attributes??>
|
||||
<#list profile.attributes as attribute>
|
||||
<#if fieldNames?seq_contains(attribute.name)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#assign fieldNames += [attribute.name]>
|
||||
</#list>
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["messagesPerField", "get"])>
|
||||
|
||||
<#local jsFunctionCode = "function (fieldName) { ">
|
||||
|
||||
<#list fieldNames as fieldName>
|
||||
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/217 -->
|
||||
<#if xKeycloakify.pageId == "login.ftl" >
|
||||
|
||||
<#if fieldName == "username">
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === 'username' || fieldName === 'password' ){ ">
|
||||
|
||||
<#if messagesPerField.exists('username') || messagesPerField.exists('password')>
|
||||
<#local jsFunctionCode += "return kcContext.message && kcContext.message.summary ? kcContext.message.summary : 'error'; ">
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return ''; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if fieldName == "password">
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === '" + fieldName + "'){ ">
|
||||
|
||||
<#if messagesPerField.exists('${fieldName}')>
|
||||
<#local jsFunctionCode += 'return decodeHtmlEntities("' + messagesPerField.get('${fieldName}')?js_string + '"); '>
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return ''; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
</#list>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
<#return jsFunctionCode>
|
||||
|
||||
</#if>
|
||||
|
||||
<#if areSamePath(path, ["messagesPerField", "existsError"])>
|
||||
|
||||
<#local jsFunctionCode = "function (fieldName) { ">
|
||||
|
||||
<#list fieldNames as fieldName>
|
||||
|
||||
<#-- See: https://github.com/keycloakify/keycloakify/issues/217 -->
|
||||
<#if xKeycloakify.pageId == "login.ftl" >
|
||||
<#if fieldName == "username">
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === 'username' || fieldName === 'password' ){ ">
|
||||
|
||||
<#if messagesPerField.existsError('username') || messagesPerField.existsError('password')>
|
||||
<#local jsFunctionCode += "return true; ">
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return false; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "} ">
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if fieldName == "password">
|
||||
<#continue>
|
||||
</#if>
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "if(fieldName === '" + fieldName + "' ){ ">
|
||||
|
||||
<#if messagesPerField.existsError('${fieldName}')>
|
||||
<#local jsFunctionCode += 'return true; '>
|
||||
<#else>
|
||||
<#local jsFunctionCode += "return false; ">
|
||||
</#if>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
</#list>
|
||||
|
||||
<#local jsFunctionCode += "}">
|
||||
|
||||
<#return jsFunctionCode>
|
||||
|
||||
</#if>
|
||||
|
||||
<#if xKeycloakify.themeType == "account" && areSamePath(path, ["realm", "isInternationalizationEnabled"])>
|
||||
<#attempt>
|
||||
<#return realm.isInternationalizationEnabled()?c>
|
||||
<#recover>
|
||||
<#return "ABORT: Couldn't evaluate realm.isInternationalizationEnabled()">
|
||||
</#attempt>
|
||||
</#if>
|
||||
|
||||
<#return "ABORT: It's a method">
|
||||
</#if>
|
||||
|
||||
<#local isBoolean = -1>
|
||||
<#attempt>
|
||||
<#local isBoolean = object?is_boolean>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a boolean">
|
||||
</#attempt>
|
||||
|
||||
<#if isBoolean>
|
||||
<#return object?c>
|
||||
</#if>
|
||||
|
||||
<#local isEnumerable = -1>
|
||||
<#attempt>
|
||||
<#local isEnumerable = object?is_enumerable>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's an enumerable">
|
||||
</#attempt>
|
||||
|
||||
|
||||
<#if isEnumerable>
|
||||
|
||||
<#local outSeq = []>
|
||||
|
||||
<#local i = 0>
|
||||
|
||||
<#list object as array_item>
|
||||
|
||||
<#if !array_item??>
|
||||
<#local outSeq += ["null,"]>
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local recOut = toJsDeclarationString(array_item, path + [ i ])>
|
||||
|
||||
<#local i = i + 1>
|
||||
|
||||
<#if recOut?starts_with("ABORT:")>
|
||||
|
||||
<#local errorMessage = recOut?remove_beginning("ABORT:")>
|
||||
|
||||
<#if errorMessage != " It's a method" >
|
||||
<#local outSeq += ["/*" + i?string + ": " + errorMessage + "*/"]>
|
||||
</#if>
|
||||
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local outSeq += [recOut + ","]>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return (["["] + outSeq?map(str -> ""?right_pad(4 * (path?size + 1)) + str) + [ ""?right_pad(4 * path?size) + "]"])?join("\n")>
|
||||
|
||||
</#if>
|
||||
|
||||
<#local isDate = -1>
|
||||
<#attempt>
|
||||
<#local isDate = object?is_date_like>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a date">
|
||||
</#attempt>
|
||||
|
||||
<#if isDate>
|
||||
<#return '"' + object?datetime?iso_utc + '"'>
|
||||
</#if>
|
||||
|
||||
<#local isNumber = -1>
|
||||
<#attempt>
|
||||
<#local isNumber = object?is_number>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a number">
|
||||
</#attempt>
|
||||
|
||||
<#if isNumber>
|
||||
<#return object?c>
|
||||
</#if>
|
||||
|
||||
<#local isString = -1>
|
||||
<#attempt>
|
||||
<#local isString = object?is_string>
|
||||
<#recover>
|
||||
<#return "ABORT: Can't test if it's a string">
|
||||
</#attempt>
|
||||
|
||||
<#if isString>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str=object />
|
||||
</#if>
|
||||
|
||||
<#attempt>
|
||||
<#return '"' + object?js_string + '"'>;
|
||||
<#recover>
|
||||
</#attempt>
|
||||
|
||||
<#return "ABORT: Couldn't convert into string non hash, non method, non boolean, non number, non enumerable object">
|
||||
|
||||
</#function>
|
||||
<#function isSubpath path searchedPath>
|
||||
|
||||
<#if path?size < searchedPath?size>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#local i=0>
|
||||
|
||||
<#list path as property>
|
||||
|
||||
<#if i == searchedPath?size >
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#local searchedProperty=searchedPath[i]>
|
||||
|
||||
<#local i+= 1>
|
||||
|
||||
<#if searchedProperty?is_string && searchedProperty == "*">
|
||||
<#continue>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?is_string && !property?is_string>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?is_number && !property?is_number>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
<#if searchedProperty?string != property?string>
|
||||
<#return false>
|
||||
</#if>
|
||||
|
||||
</#list>
|
||||
|
||||
<#return true>
|
||||
|
||||
</#function>
|
||||
|
||||
<#function areSamePath path searchedPath>
|
||||
<#return path?size == searchedPath?size && isSubpath(path, searchedPath)>
|
||||
</#function>
|
||||
|
||||
<#macro addToXKeycloakifyMessagesIfMessageKey str>
|
||||
<#if !msg?? || !msg?is_method>
|
||||
<#return>
|
||||
</#if>
|
||||
<#if (str?length > 200)>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local key=removeBrackets(str)>
|
||||
<#if key?length==0>
|
||||
<#return>
|
||||
</#if>
|
||||
<#if !(key?matches(r"^[a-zA-Z0-9-_.]*$"))>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local resolvedMsg=msg(key)>
|
||||
<#if resolvedMsg==key>
|
||||
<#return>
|
||||
</#if>
|
||||
<#local messages=xKeycloakify.messages>
|
||||
<#local messages = messages + { key: resolvedMsg }>
|
||||
<#assign xKeycloakify = xKeycloakify + { "messages": messages }>
|
||||
</#macro>
|
||||
|
||||
<#function removeBrackets str>
|
||||
<#if str?starts_with("${") && str?ends_with("}")>
|
||||
<#return str[2..(str?length-2)]>
|
||||
<#else>
|
||||
<#return str>
|
||||
</#if>
|
||||
</#function>
|
||||
|
||||
<#macro addNonAutomaticallyGatherableMessagesToXKeycloakifyMessages>
|
||||
<#if profile?? && profile?is_hash && profile.attributes?? && profile.attributes?is_enumerable>
|
||||
<#list profile.attributes as attribute>
|
||||
<#if !(
|
||||
attribute.annotations?? && attribute.annotations?is_hash &&
|
||||
attribute.annotations.inputOptionLabelsI18nPrefix?? && attribute.annotations.inputOptionLabelsI18nPrefix?is_string
|
||||
)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#local prefix=attribute.annotations.inputOptionLabelsI18nPrefix>
|
||||
<#if !(
|
||||
attribute.validators?? && attribute.validators?is_hash &&
|
||||
attribute.validators.options?? && attribute.validators.options?is_hash &&
|
||||
attribute.validators.options.options?? && attribute.validators.options.options?is_enumerable
|
||||
)>
|
||||
<#continue>
|
||||
</#if>
|
||||
<#list attribute.validators.options.options as option>
|
||||
<#if !option?is_string>
|
||||
<#continue>
|
||||
</#if>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="${prefix}.${option}" />
|
||||
</#list>
|
||||
</#list>
|
||||
</#if>
|
||||
<#if xKeycloakify.pageId == "terms.ftl" || termsAcceptanceRequired?? && termsAcceptanceRequired>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="termsText" />
|
||||
</#if>
|
||||
<#if requiredActions?? && requiredActions?is_enumerable>
|
||||
<#list requiredActions as requiredAction>
|
||||
<#if !requiredAction?is_string>
|
||||
<#continue>
|
||||
</#if>
|
||||
<@addToXKeycloakifyMessagesIfMessageKey str="requiredAction.${requiredAction}" />
|
||||
</#list>
|
||||
</#if>
|
||||
</#macro>
|
||||
|
||||
</script>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="${xKeycloakify.resourcesPath}/dist/favicon-32x32.png">
|
||||
<script type="module" crossorigin="" src="${xKeycloakify.resourcesPath}/dist/assets/index-6-NnS-wp.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="root"></div>
|
||||
|
||||
|
||||
</body></html>
|
@ -0,0 +1,629 @@
|
||||
/* Patternfly CSS places a "bg-login.jpg" as the background on this ".login-pf" class.
|
||||
This clashes with the "keycloak-bg.png' background defined on the body below.
|
||||
Therefore the Patternfly background must be set to none. */
|
||||
.login-pf {
|
||||
background: none;
|
||||
}
|
||||
|
||||
.login-pf body {
|
||||
background: url("../img/keycloak-bg.png") no-repeat center center fixed;
|
||||
background-size: cover;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
textarea.pf-c-form-control {
|
||||
height: auto;
|
||||
}
|
||||
|
||||
.pf-c-alert__title {
|
||||
font-size: var(--pf-global--FontSize--xs);
|
||||
}
|
||||
|
||||
p.instruction {
|
||||
margin: 5px 0;
|
||||
}
|
||||
|
||||
.pf-c-button.pf-m-control {
|
||||
border-color: rgba(230, 230, 230, 0.5);
|
||||
}
|
||||
|
||||
h1#kc-page-title {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
#kc-locale ul {
|
||||
background-color: var(--pf-global--BackgroundColor--100);
|
||||
display: none;
|
||||
top: 20px;
|
||||
min-width: 100px;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#kc-locale-dropdown{
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
#kc-locale-dropdown:hover ul {
|
||||
display:block;
|
||||
}
|
||||
|
||||
#kc-locale-dropdown a {
|
||||
color: var(--pf-global--Color--200);
|
||||
text-align: right;
|
||||
font-size: var(--pf-global--FontSize--sm);
|
||||
}
|
||||
|
||||
#kc-locale-dropdown button {
|
||||
background: none;
|
||||
border: none;
|
||||
padding: 0;
|
||||
cursor: pointer;
|
||||
color: var(--pf-global--Color--200);
|
||||
text-align: right;
|
||||
font-size: var(--pf-global--FontSize--sm);
|
||||
}
|
||||
|
||||
button#kc-current-locale-link::after {
|
||||
content: "\2c5";
|
||||
margin-left: var(--pf-global--spacer--xs)
|
||||
}
|
||||
|
||||
.login-pf .container {
|
||||
padding-top: 40px;
|
||||
}
|
||||
|
||||
.login-pf a:hover {
|
||||
color: #0099d3;
|
||||
}
|
||||
|
||||
#kc-logo {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
div.kc-logo-text {
|
||||
background-image: url(../img/keycloak-logo-text.png);
|
||||
background-repeat: no-repeat;
|
||||
height: 63px;
|
||||
width: 300px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
div.kc-logo-text span {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#kc-header {
|
||||
color: #ededed;
|
||||
overflow: visible;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
#kc-header-wrapper {
|
||||
font-size: 29px;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 3px;
|
||||
line-height: 1.2em;
|
||||
padding: 62px 10px 20px;
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
#kc-content {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#kc-attempted-username {
|
||||
font-size: 20px;
|
||||
font-family: inherit;
|
||||
font-weight: normal;
|
||||
padding-right: 10px;
|
||||
}
|
||||
|
||||
#kc-username {
|
||||
text-align: center;
|
||||
margin-bottom:-10px;
|
||||
}
|
||||
|
||||
#kc-webauthn-settings-form {
|
||||
padding-top: 8px;
|
||||
}
|
||||
|
||||
#kc-form-webauthn .select-auth-box-parent {
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
#kc-form-webauthn .select-auth-box-desc {
|
||||
color: var(--pf-global--palette--black-600);
|
||||
}
|
||||
|
||||
#kc-form-webauthn .select-auth-box-headline {
|
||||
color: var(--pf-global--Color--300);
|
||||
}
|
||||
|
||||
#kc-form-webauthn .select-auth-box-icon {
|
||||
flex: 0 0 3em;
|
||||
}
|
||||
|
||||
#kc-form-webauthn .select-auth-box-icon-properties {
|
||||
margin-top: 10px;
|
||||
font-size: 1.8em;
|
||||
}
|
||||
|
||||
#kc-form-webauthn .select-auth-box-icon-properties.unknown-transport-class {
|
||||
margin-top: 3px;
|
||||
}
|
||||
|
||||
#kc-form-webauthn .pf-l-stack__item {
|
||||
margin: -1px 0;
|
||||
}
|
||||
|
||||
#kc-content-wrapper {
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
#kc-form-wrapper {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
#kc-info {
|
||||
margin: 20px -40px -30px;
|
||||
}
|
||||
|
||||
#kc-info-wrapper {
|
||||
font-size: 13px;
|
||||
padding: 15px 35px;
|
||||
background-color: #F0F0F0;
|
||||
}
|
||||
|
||||
#kc-form-options span {
|
||||
display: block;
|
||||
}
|
||||
|
||||
#kc-form-options .checkbox {
|
||||
margin-top: 0;
|
||||
color: #72767b;
|
||||
}
|
||||
|
||||
#kc-terms-text {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
#kc-registration-terms-text {
|
||||
max-height: 100px;
|
||||
overflow-y: auto;
|
||||
overflow-x: hidden;
|
||||
margin: 5px;
|
||||
}
|
||||
|
||||
#kc-registration {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
/* TOTP */
|
||||
|
||||
.subtitle {
|
||||
text-align: right;
|
||||
margin-top: 30px;
|
||||
color: #909090;
|
||||
}
|
||||
|
||||
.required {
|
||||
color: var(--pf-global--danger-color--200);
|
||||
}
|
||||
|
||||
ol#kc-totp-settings {
|
||||
margin: 0;
|
||||
padding-left: 20px;
|
||||
}
|
||||
|
||||
ul#kc-totp-supported-apps {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
#kc-totp-secret-qr-code {
|
||||
max-width:150px;
|
||||
max-height:150px;
|
||||
}
|
||||
|
||||
#kc-totp-secret-key {
|
||||
background-color: #fff;
|
||||
color: #333333;
|
||||
font-size: 16px;
|
||||
padding: 10px 0;
|
||||
}
|
||||
|
||||
/* OAuth */
|
||||
|
||||
#kc-oauth h3 {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
#kc-oauth ul {
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
#kc-oauth ul li {
|
||||
border-top: 1px solid rgba(255, 255, 255, 0.1);
|
||||
font-size: 12px;
|
||||
padding: 10px 0;
|
||||
}
|
||||
|
||||
#kc-oauth ul li:first-of-type {
|
||||
border-top: 0;
|
||||
}
|
||||
|
||||
#kc-oauth .kc-role {
|
||||
display: inline-block;
|
||||
width: 50%;
|
||||
}
|
||||
|
||||
/* Code */
|
||||
#kc-code textarea {
|
||||
width: 100%;
|
||||
height: 8em;
|
||||
}
|
||||
|
||||
/* Social */
|
||||
.kc-social-links {
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.kc-social-links li {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.kc-social-provider-logo {
|
||||
font-size: 23px;
|
||||
width: 30px;
|
||||
height: 25px;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.kc-social-gray {
|
||||
color: var(--pf-global--Color--200);
|
||||
}
|
||||
|
||||
.kc-social-gray h2 {
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
.kc-social-item {
|
||||
margin-bottom: var(--pf-global--spacer--sm);
|
||||
font-size: 15px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.kc-social-provider-name {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.kc-social-icon-text {
|
||||
left: -15px;
|
||||
}
|
||||
|
||||
.kc-social-grid {
|
||||
display:grid;
|
||||
grid-column-gap: 10px;
|
||||
grid-row-gap: 5px;
|
||||
grid-column-end: span 6;
|
||||
--pf-l-grid__item--GridColumnEnd: span 6;
|
||||
}
|
||||
|
||||
.kc-social-grid .kc-social-icon-text {
|
||||
left: -10px;
|
||||
}
|
||||
|
||||
.kc-login-tooltip {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.kc-social-section {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.kc-social-section hr{
|
||||
margin-bottom: 10px
|
||||
}
|
||||
|
||||
.kc-login-tooltip .kc-tooltip-text{
|
||||
top:-3px;
|
||||
left:160%;
|
||||
background-color: black;
|
||||
visibility: hidden;
|
||||
color: #fff;
|
||||
|
||||
min-width:130px;
|
||||
text-align: center;
|
||||
border-radius: 2px;
|
||||
box-shadow:0 1px 8px rgba(0,0,0,0.6);
|
||||
padding: 5px;
|
||||
|
||||
position: absolute;
|
||||
opacity:0;
|
||||
transition:opacity 0.5s;
|
||||
}
|
||||
|
||||
/* Show tooltip */
|
||||
.kc-login-tooltip:hover .kc-tooltip-text {
|
||||
visibility: visible;
|
||||
opacity:0.7;
|
||||
}
|
||||
|
||||
/* Arrow for tooltip */
|
||||
.kc-login-tooltip .kc-tooltip-text::after {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
top: 15px;
|
||||
right: 100%;
|
||||
margin-top: -5px;
|
||||
border-width: 5px;
|
||||
border-style: solid;
|
||||
border-color: transparent black transparent transparent;
|
||||
}
|
||||
|
||||
@media (min-width: 768px) {
|
||||
#kc-container-wrapper {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.login-pf .container {
|
||||
padding-right: 80px;
|
||||
}
|
||||
|
||||
#kc-locale {
|
||||
position: relative;
|
||||
text-align: right;
|
||||
z-index: 9999;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 767px) {
|
||||
|
||||
.login-pf body {
|
||||
background: white;
|
||||
}
|
||||
|
||||
#kc-header {
|
||||
padding-left: 15px;
|
||||
padding-right: 15px;
|
||||
float: none;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
#kc-header-wrapper {
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
padding: 20px 60px 0 0;
|
||||
color: #72767b;
|
||||
letter-spacing: 0;
|
||||
}
|
||||
|
||||
div.kc-logo-text {
|
||||
margin: 0;
|
||||
width: 150px;
|
||||
height: 32px;
|
||||
background-size: 100%;
|
||||
}
|
||||
|
||||
#kc-form {
|
||||
float: none;
|
||||
}
|
||||
|
||||
#kc-info-wrapper {
|
||||
border-top: 1px solid rgba(255, 255, 255, 0.1);
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.login-pf .container {
|
||||
padding-top: 15px;
|
||||
padding-bottom: 15px;
|
||||
}
|
||||
|
||||
#kc-locale {
|
||||
position: absolute;
|
||||
width: 200px;
|
||||
top: 20px;
|
||||
right: 20px;
|
||||
text-align: right;
|
||||
z-index: 9999;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-height: 646px) {
|
||||
#kc-container-wrapper {
|
||||
bottom: 12%;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-height: 645px) {
|
||||
#kc-container-wrapper {
|
||||
padding-top: 50px;
|
||||
top: 20%;
|
||||
}
|
||||
}
|
||||
|
||||
.card-pf form.form-actions .btn {
|
||||
float: right;
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
#kc-form-buttons {
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.login-pf-page .login-pf-brand {
|
||||
margin-top: 20px;
|
||||
max-width: 360px;
|
||||
width: 40%;
|
||||
}
|
||||
|
||||
.select-auth-box-arrow{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-right: 2rem;
|
||||
}
|
||||
|
||||
.select-auth-box-icon{
|
||||
display: flex;
|
||||
flex: 0 0 2em;
|
||||
justify-content: center;
|
||||
margin-right: 1rem;
|
||||
margin-left: 3rem;
|
||||
}
|
||||
|
||||
.select-auth-box-parent{
|
||||
border-top: 1px solid var(--pf-global--palette--black-200);
|
||||
padding-top: 1rem;
|
||||
padding-bottom: 1rem;
|
||||
cursor: pointer;
|
||||
text-align: left;
|
||||
align-items: unset;
|
||||
background-color: unset;
|
||||
border-right: unset;
|
||||
border-bottom: unset;
|
||||
border-left: unset;
|
||||
}
|
||||
|
||||
.select-auth-box-parent:hover{
|
||||
background-color: #f7f8f8;
|
||||
}
|
||||
|
||||
.select-auth-container {
|
||||
padding-bottom: 0px !important;
|
||||
}
|
||||
|
||||
.select-auth-box-headline {
|
||||
font-size: var(--pf-global--FontSize--md);
|
||||
color: var(--pf-global--primary-color--100);
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.select-auth-box-desc {
|
||||
font-size: var(--pf-global--FontSize--sm);
|
||||
}
|
||||
|
||||
.select-auth-box-paragraph {
|
||||
text-align: center;
|
||||
font-size: var(--pf-global--FontSize--md);
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
.card-pf {
|
||||
margin: 0 auto;
|
||||
box-shadow: var(--pf-global--BoxShadow--lg);
|
||||
padding: 0 20px;
|
||||
max-width: 500px;
|
||||
border-top: 4px solid;
|
||||
border-color: var(--pf-global--primary-color--100);
|
||||
}
|
||||
|
||||
/*phone*/
|
||||
@media (max-width: 767px) {
|
||||
.login-pf-page .card-pf {
|
||||
max-width: none;
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
padding-top: 0;
|
||||
border-top: 0;
|
||||
box-shadow: 0 0;
|
||||
}
|
||||
|
||||
.kc-social-grid {
|
||||
grid-column-end: 12;
|
||||
--pf-l-grid__item--GridColumnEnd: span 12;
|
||||
}
|
||||
|
||||
.kc-social-grid .kc-social-icon-text {
|
||||
left: -15px;
|
||||
}
|
||||
}
|
||||
|
||||
.login-pf-page .login-pf-signup {
|
||||
font-size: 15px;
|
||||
color: #72767b;
|
||||
}
|
||||
#kc-content-wrapper .row {
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
.login-pf-page.login-pf-page-accounts {
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
.login-pf-page .btn-primary {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.login-pf-page .list-view-pf .list-group-item {
|
||||
border-bottom: 1px solid #ededed;
|
||||
}
|
||||
|
||||
.login-pf-page .list-view-pf-description {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#kc-form-login div.form-group:last-of-type,
|
||||
#kc-register-form div.form-group:last-of-type,
|
||||
#kc-update-profile-form div.form-group:last-of-type,
|
||||
#kc-update-email-form div.form-group:last-of-type{
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
|
||||
.no-bottom-margin {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
#kc-back {
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
/* Recovery codes */
|
||||
.kc-recovery-codes-warning {
|
||||
margin-bottom: 32px;
|
||||
}
|
||||
.kc-recovery-codes-warning .pf-c-alert__description p {
|
||||
font-size: 0.875rem;
|
||||
}
|
||||
.kc-recovery-codes-list {
|
||||
list-style: none;
|
||||
columns: 2;
|
||||
margin: 16px 0;
|
||||
padding: 16px 16px 8px 16px;
|
||||
border: 1px solid #D2D2D2;
|
||||
}
|
||||
.kc-recovery-codes-list li {
|
||||
margin-bottom: 8px;
|
||||
font-size: 11px;
|
||||
}
|
||||
.kc-recovery-codes-list li span {
|
||||
color: #6A6E73;
|
||||
width: 16px;
|
||||
text-align: right;
|
||||
display: inline-block;
|
||||
margin-right: 1px;
|
||||
}
|
||||
|
||||
.kc-recovery-codes-actions {
|
||||
margin-bottom: 24px;
|
||||
}
|
||||
.kc-recovery-codes-actions button {
|
||||
padding-left: 0;
|
||||
}
|
||||
.kc-recovery-codes-actions button i {
|
||||
margin-right: 8px;
|
||||
}
|
||||
|
||||
.kc-recovery-codes-confirmation {
|
||||
align-items: baseline;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
#certificate_subjectDN {
|
||||
overflow-wrap: break-word
|
||||
}
|
||||
/* End Recovery codes */
|
1
dist_keycloak/theme/keycloakify-starter/login/resources/dist/assets/Code-D5bMLlQE.js
vendored
Normal file
1
dist_keycloak/theme/keycloakify-starter/login/resources/dist/assets/Code-D5bMLlQE.js
vendored
Normal file
@ -0,0 +1 @@
|
||||
import{j as e}from"./index-6-NnS-wp.js";import{g as l,k as u}from"./KcPage-BgEBzPJc.js";function m(a){const{kcContext:r,i18n:t,doUseDefaultCss:o,Template:d,classes:n}=a,{kcClsx:i}=l({doUseDefaultCss:o,classes:n}),{code:s}=r,{msg:c}=t;return e.jsx(d,Object.assign({kcContext:r,i18n:t,doUseDefaultCss:o,classes:n,headerNode:s.success?c("codeSuccessTitle"):c("codeErrorTitle",s.error)},{children:e.jsx("div",Object.assign({id:"kc-code"},{children:s.success?e.jsxs(e.Fragment,{children:[e.jsx("p",{children:c("copyCodeInstruction")}),e.jsx("input",{id:"code",className:i("kcTextareaClass"),defaultValue:s.code})]}):s.error&&e.jsx("p",{id:"error",dangerouslySetInnerHTML:{__html:u(s.error)}})}))}))}export{m as default};
|
@ -0,0 +1 @@
|
||||
import{j as s}from"./index-6-NnS-wp.js";import{g}from"./KcPage-BgEBzPJc.js";function j(o){const{kcContext:t,i18n:n,doUseDefaultCss:i,Template:r,classes:a}=o,{kcClsx:l}=g({doUseDefaultCss:i,classes:a}),{url:m,triggered_from_aia:d}=t,{msg:e,msgStr:c}=n;return s.jsx(r,Object.assign({kcContext:t,i18n:n,doUseDefaultCss:i,classes:a,headerNode:e("deleteAccountConfirm")},{children:s.jsxs("form",Object.assign({action:m.loginAction,className:"form-vertical",method:"post"},{children:[s.jsxs("div",Object.assign({className:"alert alert-warning",style:{marginTop:"0",marginBottom:"30px"}},{children:[s.jsx("span",{className:"pficon pficon-warning-triangle-o"}),e("irreversibleAction")]})),s.jsx("p",{children:e("deletingImplies")}),s.jsxs("ul",Object.assign({style:{color:"#72767b",listStyle:"disc",listStylePosition:"inside"}},{children:[s.jsx("li",{children:e("loggingOutImmediately")}),s.jsx("li",{children:e("errasingData")})]})),s.jsx("p",Object.assign({className:"delete-account-text"},{children:e("finalDeletionConfirmation")})),s.jsxs("div",Object.assign({id:"kc-form-buttons"},{children:[s.jsx("input",{className:l("kcButtonClass","kcButtonPrimaryClass","kcButtonLargeClass"),type:"submit",value:c("doConfirmDelete")}),d&&s.jsx("button",Object.assign({className:l("kcButtonClass","kcButtonDefaultClass","kcButtonLargeClass"),style:{marginLeft:"calc(100% - 220px)"},type:"submit",name:"cancel-aia",value:"true"},{children:c("doCancel")}))]}))]}))}))}export{j as default};
|
@ -0,0 +1 @@
|
||||
import{j as e}from"./index-6-NnS-wp.js";import{g as u}from"./KcPage-BgEBzPJc.js";function f(r){const{kcContext:s,i18n:t,doUseDefaultCss:a,Template:d,classes:c}=r,{msgStr:l,msg:n}=t,{kcClsx:i}=u({doUseDefaultCss:a,classes:c}),{url:m,credentialLabel:o}=s;return e.jsxs(d,Object.assign({kcContext:s,i18n:t,doUseDefaultCss:a,classes:c,displayMessage:!1,headerNode:n("deleteCredentialTitle",o)},{children:[e.jsx("div",Object.assign({id:"kc-delete-text"},{children:n("deleteCredentialMessage",o)})),e.jsxs("form",Object.assign({className:"form-actions",action:m.loginAction,method:"POST"},{children:[e.jsx("input",{className:i("kcButtonClass","kcButtonPrimaryClass","kcButtonLargeClass"),name:"accept",id:"kc-accept",type:"submit",value:l("doConfirmDelete")}),e.jsx("input",{className:i("kcButtonClass","kcButtonDefaultClass","kcButtonLargeClass"),name:"cancel-aia",value:l("doCancel"),id:"kc-decline",type:"submit"})]})),e.jsx("div",{className:"clearfix"})]}))}export{f as default};
|
1
dist_keycloak/theme/keycloakify-starter/login/resources/dist/assets/Error-myXk0s9P.js
vendored
Normal file
1
dist_keycloak/theme/keycloakify-starter/login/resources/dist/assets/Error-myXk0s9P.js
vendored
Normal file
@ -0,0 +1 @@
|
||||
import{j as s}from"./index-6-NnS-wp.js";import{k as m}from"./KcPage-BgEBzPJc.js";function f(t){const{kcContext:n,i18n:i,doUseDefaultCss:r,Template:c,classes:o}=t,{message:l,client:e,skipLink:d}=n,{msg:a}=i;return s.jsx(c,Object.assign({kcContext:n,i18n:i,doUseDefaultCss:r,classes:o,displayMessage:!1,headerNode:a("errorTitle")},{children:s.jsxs("div",Object.assign({id:"kc-error-message"},{children:[s.jsx("p",{className:"instruction",dangerouslySetInnerHTML:{__html:m(l.summary)}}),!d&&e!==void 0&&e.baseUrl!==void 0&&s.jsx("p",{children:s.jsx("a",Object.assign({id:"backToApplication",href:e.baseUrl},{children:a("backToApplication")}))})]}))}))}export{f as default};
|
@ -0,0 +1 @@
|
||||
import{r as d,j as e}from"./index-6-NnS-wp.js";function f(l){const{kcContext:s,i18n:r,doUseDefaultCss:i,Template:a,classes:c}=l,{logout:t}=s,{msg:o,msgStr:u}=r;return d.useEffect(()=>{t.logoutRedirectUri&&window.location.replace(t.logoutRedirectUri)},[]),e.jsxs(a,Object.assign({kcContext:s,i18n:r,doUseDefaultCss:i,classes:c,documentTitle:u("frontchannel-logout.title"),headerNode:o("frontchannel-logout.title")},{children:[e.jsx("p",{children:o("frontchannel-logout.message")}),e.jsx("ul",{children:t.clients.map(n=>e.jsxs("li",{children:[n.name,e.jsx("iframe",{src:n.frontChannelLogoutUrl,style:{display:"none"}})]},n.name))}),t.logoutRedirectUri&&e.jsx("a",Object.assign({id:"continue",className:"btn btn-primary",href:t.logoutRedirectUri},{children:o("doContinue")}))]}))}export{f as default};
|
@ -0,0 +1 @@
|
||||
import{r as x,j as s}from"./index-6-NnS-wp.js";import{g as f}from"./KcPage-BgEBzPJc.js";function j(l){const{kcContext:t,i18n:o,doUseDefaultCss:a,Template:r,classes:i,UserProfileFormFields:c,doMakeUserConfirmPassword:n}=l,{kcClsx:e}=f({doUseDefaultCss:a,classes:i}),{msg:m,msgStr:d}=o,{url:u,messagesPerField:p}=t,[k,C]=x.useState(!1);return s.jsx(r,Object.assign({kcContext:t,i18n:o,doUseDefaultCss:a,classes:i,displayMessage:p.exists("global"),displayRequiredFields:!0,headerNode:m("loginIdpReviewProfileTitle")},{children:s.jsxs("form",Object.assign({id:"kc-idp-review-profile-form",className:e("kcFormClass"),action:u.loginAction,method:"post"},{children:[s.jsx(c,{kcContext:t,i18n:o,onIsFormSubmittableValueChange:C,kcClsx:e,doMakeUserConfirmPassword:n}),s.jsxs("div",Object.assign({className:e("kcFormGroupClass")},{children:[s.jsx("div",Object.assign({id:"kc-form-options",className:e("kcFormOptionsClass")},{children:s.jsx("div",{className:e("kcFormOptionsWrapperClass")})})),s.jsx("div",Object.assign({id:"kc-form-buttons",className:e("kcFormButtonsClass")},{children:s.jsx("input",{className:e("kcButtonClass","kcButtonPrimaryClass","kcButtonBlockClass","kcButtonLargeClass"),type:"submit",value:d("doSubmit"),disabled:!k})}))]}))]}))}))}export{j as default};
|
1
dist_keycloak/theme/keycloakify-starter/login/resources/dist/assets/Info-r1pGSz52.js
vendored
Normal file
1
dist_keycloak/theme/keycloakify-starter/login/resources/dist/assets/Info-r1pGSz52.js
vendored
Normal file
@ -0,0 +1 @@
|
||||
import{j as e}from"./index-6-NnS-wp.js";import{k as u}from"./KcPage-BgEBzPJc.js";function U(m){const{kcContext:r,i18n:t,doUseDefaultCss:p,Template:j,classes:f}=m,{advancedMsgStr:h,msg:n}=t,{messageHeader:i,message:a,requiredActions:c,skipLink:x,pageRedirectUri:l,actionUri:o,client:d}=r;return e.jsx(j,Object.assign({kcContext:r,i18n:t,doUseDefaultCss:p,classes:f,displayMessage:!1,headerNode:e.jsx("span",{dangerouslySetInnerHTML:{__html:u(i??a.summary)}})},{children:e.jsxs("div",Object.assign({id:"kc-info-message"},{children:[e.jsx("p",{className:"instruction",dangerouslySetInnerHTML:{__html:u((()=>{let s=a.summary;return c&&(s+="<b>",s+=c.map(g=>h(`requiredAction.${g}`)).join(", "),s+="</b>"),s})())}}),(()=>{if(x)return null;if(l)return e.jsx("p",{children:e.jsx("a",Object.assign({href:l},{children:n("backToApplication")}))});if(o)return e.jsx("p",{children:e.jsx("a",Object.assign({href:o},{children:n("proceedWithAction")}))});if(d.baseUrl)return e.jsx("p",{children:e.jsx("a",Object.assign({href:d.baseUrl},{children:n("backToApplication")}))})})()]}))}))}export{U as default};
|
12
dist_keycloak/theme/keycloakify-starter/login/resources/dist/assets/KcPage-BgEBzPJc.js
vendored
Normal file
12
dist_keycloak/theme/keycloakify-starter/login/resources/dist/assets/KcPage-BgEBzPJc.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
dist_keycloak/theme/keycloakify-starter/login/resources/dist/assets/Login-CF3szdcM.js
vendored
Normal file
1
dist_keycloak/theme/keycloakify-starter/login/resources/dist/assets/Login-CF3szdcM.js
vendored
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -0,0 +1 @@
|
||||
import{j as s}from"./index-6-NnS-wp.js";import{g as m}from"./KcPage-BgEBzPJc.js";function f(a){const{kcContext:e,i18n:o,doUseDefaultCss:i,Template:l,classes:c}=a,{kcClsx:t}=m({doUseDefaultCss:i,classes:c}),{url:u,idpAlias:r}=e,{msg:n}=o;return s.jsx(l,Object.assign({kcContext:e,i18n:o,doUseDefaultCss:i,classes:c,headerNode:n("confirmLinkIdpTitle")},{children:s.jsx("form",Object.assign({id:"kc-register-form",action:u.loginAction,method:"post"},{children:s.jsxs("div",Object.assign({className:t("kcFormGroupClass")},{children:[s.jsx("button",Object.assign({type:"submit",className:t("kcButtonClass","kcButtonDefaultClass","kcButtonBlockClass","kcButtonLargeClass"),name:"submitAction",id:"updateProfile",value:"updateProfile"},{children:n("confirmLinkIdpReviewProfile")})),s.jsx("button",Object.assign({type:"submit",className:t("kcButtonClass","kcButtonDefaultClass","kcButtonBlockClass","kcButtonLargeClass"),name:"submitAction",id:"linkAccount",value:"linkAccount"},{children:n("confirmLinkIdpContinue",r)}))]}))}))}))}export{f as default};
|
@ -0,0 +1 @@
|
||||
import{j as s}from"./index-6-NnS-wp.js";import{g as m}from"./KcPage-BgEBzPJc.js";function g(c){const{kcContext:t,i18n:i,doUseDefaultCss:n,Template:a,classes:r}=c,{kcClsx:l}=m({doUseDefaultCss:n,classes:r}),{url:o,idpDisplayName:d}=t,{msg:e}=i;return s.jsx(a,Object.assign({kcContext:t,i18n:i,doUseDefaultCss:n,classes:r,headerNode:e("confirmOverrideIdpTitle")},{children:s.jsxs("form",Object.assign({id:"kc-register-form",action:o.loginAction,method:"post"},{children:[e("pageExpiredMsg1")," ",s.jsx("a",Object.assign({id:"loginRestartLink",href:o.loginRestartFlowUrl},{children:e("doClickHere")})),s.jsx("br",{}),s.jsx("br",{}),s.jsx("button",Object.assign({type:"submit",className:l("kcButtonClass","kcButtonDefaultClass","kcButtonBlockClass","kcButtonLargeClass"),name:"submitAction",id:"confirmOverride",value:"confirmOverride"},{children:e("confirmOverrideIdpContinue",d)}))]}))}))}export{g as default};
|
@ -0,0 +1 @@
|
||||
import{j as s}from"./index-6-NnS-wp.js";function j(c){const{kcContext:e,i18n:n,doUseDefaultCss:l,Template:o,classes:r}=c,{url:t,realm:d,brokerContext:m,idpAlias:a}=e,{msg:i}=n;return s.jsxs(o,Object.assign({kcContext:e,i18n:n,doUseDefaultCss:l,classes:r,headerNode:i("emailLinkIdpTitle",a)},{children:[s.jsx("p",Object.assign({id:"instruction1",className:"instruction"},{children:i("emailLinkIdp1",a,m.username,d.displayName)})),s.jsxs("p",Object.assign({id:"instruction2",className:"instruction"},{children:[i("emailLinkIdp2")," ",s.jsx("a",Object.assign({href:t.loginAction},{children:i("doClickHere")}))," ",i("emailLinkIdp3")]})),s.jsxs("p",Object.assign({id:"instruction3",className:"instruction"},{children:[i("emailLinkIdp4")," ",s.jsx("a",Object.assign({href:t.loginAction},{children:i("doClickHere")}))," ",i("emailLinkIdp5")]}))]}))}export{j as default};
|
@ -0,0 +1 @@
|
||||
import{j as s}from"./index-6-NnS-wp.js";import{g as m}from"./KcPage-BgEBzPJc.js";function j(r){const{kcContext:a,i18n:c,doUseDefaultCss:t,classes:i,Template:l}=r,{url:n}=a,{msg:o,msgStr:d}=c,{kcClsx:e}=m({doUseDefaultCss:t,classes:i});return s.jsx(l,Object.assign({kcContext:a,i18n:c,doUseDefaultCss:t,classes:i,headerNode:o("oauth2DeviceVerificationTitle")},{children:s.jsxs("form",Object.assign({id:"kc-user-verify-device-user-code-form",className:e("kcFormClass"),action:n.oauth2DeviceVerificationAction,method:"post"},{children:[s.jsxs("div",Object.assign({className:e("kcFormGroupClass")},{children:[s.jsx("div",Object.assign({className:e("kcLabelWrapperClass")},{children:s.jsx("label",Object.assign({htmlFor:"device-user-code",className:e("kcLabelClass")},{children:o("verifyOAuth2DeviceUserCode")}))})),s.jsx("div",Object.assign({className:e("kcInputWrapperClass")},{children:s.jsx("input",{id:"device-user-code",name:"device_user_code",autoComplete:"off",type:"text",className:e("kcInputClass"),autoFocus:!0})}))]})),s.jsxs("div",Object.assign({className:e("kcFormGroupClass")},{children:[s.jsx("div",Object.assign({id:"kc-form-options",className:e("kcFormOptionsClass")},{children:s.jsx("div",{className:e("kcFormOptionsWrapperClass")})})),s.jsx("div",Object.assign({id:"kc-form-buttons",className:e("kcFormButtonsClass")},{children:s.jsx("div",Object.assign({className:e("kcFormButtonsWrapperClass")},{children:s.jsx("input",{className:e("kcButtonClass","kcButtonPrimaryClass","kcButtonLargeClass"),type:"submit",value:d("doSubmit")})}))}))]}))]}))}))}export{j as default};
|
@ -0,0 +1 @@
|
||||
import{j as s}from"./index-6-NnS-wp.js";import{g}from"./KcPage-BgEBzPJc.js";function k(m){const{kcContext:i,i18n:r,doUseDefaultCss:c,classes:o,Template:h}=m,{url:j,oauth:l,client:t}=i,{msg:e,msgStr:d,advancedMsg:x,advancedMsgStr:u}=r,{kcClsx:a}=g({doUseDefaultCss:c,classes:o});return s.jsx(h,Object.assign({kcContext:i,i18n:r,doUseDefaultCss:c,classes:o,bodyClassName:"oauth",headerNode:s.jsxs(s.Fragment,{children:[t.attributes.logoUri&&s.jsx("img",{src:t.attributes.logoUri}),s.jsx("p",{children:t.name?e("oauthGrantTitle",u(t.name)):e("oauthGrantTitle",t.clientId)})]})},{children:s.jsxs("div",Object.assign({id:"kc-oauth",className:"content-area"},{children:[s.jsx("h3",{children:e("oauthGrantRequest")}),s.jsx("ul",{children:l.clientScopesRequested.map(n=>s.jsx("li",{children:s.jsxs("span",{children:[x(n.consentScreenText),n.dynamicScopeParameter&&s.jsxs(s.Fragment,{children:[": ",s.jsx("b",{children:n.dynamicScopeParameter})]})]})},n.consentScreenText))}),t.attributes.policyUri||t.attributes.tosUri&&s.jsxs("h3",{children:[t.name?e("oauthGrantInformation",u(t.name)):e("oauthGrantInformation",t.clientId),t.attributes.tosUri&&s.jsxs(s.Fragment,{children:[e("oauthGrantReview"),s.jsx("a",Object.assign({href:t.attributes.tosUri,target:"_blank"},{children:e("oauthGrantTos")}))]}),t.attributes.policyUri&&s.jsxs(s.Fragment,{children:[e("oauthGrantReview"),s.jsx("a",Object.assign({href:t.attributes.policyUri,target:"_blank"},{children:e("oauthGrantPolicy")}))]})]}),s.jsxs("form",Object.assign({className:"form-actions",action:j.oauthAction,method:"POST"},{children:[s.jsx("input",{type:"hidden",name:"code",value:l.code}),s.jsxs("div",Object.assign({className:a("kcFormGroupClass")},{children:[s.jsx("div",Object.assign({id:"kc-form-options"},{children:s.jsx("div",{className:a("kcFormOptionsWrapperClass")})})),s.jsx("div",Object.assign({id:"kc-form-buttons"},{children:s.jsxs("div",Object.assign({className:a("kcFormButtonsWrapperClass")},{children:[s.jsx("input",{className:a("kcButtonClass","kcButtonPrimaryClass","kcButtonLargeClass"),name:"accept",id:"kc-login",type:"submit",value:d("doYes")}),s.jsx("input",{className:a("kcButtonClass","kcButtonDefaultClass","kcButtonLargeClass"),name:"cancel",id:"kc-cancel",type:"submit",value:d("doNo")})]}))}))]}))]})),s.jsx("div",{className:"clearfix"})]}))}))}export{k as default};
|
1
dist_keycloak/theme/keycloakify-starter/login/resources/dist/assets/LoginOtp-BecD4HhY.js
vendored
Normal file
1
dist_keycloak/theme/keycloakify-starter/login/resources/dist/assets/LoginOtp-BecD4HhY.js
vendored
Normal file
@ -0,0 +1 @@
|
||||
import{j as s,r as u}from"./index-6-NnS-wp.js";import{g as k,k as C}from"./KcPage-BgEBzPJc.js";function h(m){const{kcContext:l,i18n:n,doUseDefaultCss:o,Template:p,classes:r}=m,{kcClsx:e}=k({doUseDefaultCss:o,classes:r}),{otpLogin:c,url:g,messagesPerField:a}=l,{msg:d,msgStr:j}=n;return s.jsx(p,Object.assign({kcContext:l,i18n:n,doUseDefaultCss:o,classes:r,displayMessage:!a.existsError("totp"),headerNode:d("doLogIn")},{children:s.jsxs("form",Object.assign({id:"kc-otp-login-form",className:e("kcFormClass"),action:g.loginAction,method:"post"},{children:[c.userOtpCredentials.length>1&&s.jsx("div",Object.assign({className:e("kcFormGroupClass")},{children:s.jsx("div",Object.assign({className:e("kcInputWrapperClass")},{children:c.userOtpCredentials.map((i,t)=>s.jsxs(u.Fragment,{children:[s.jsx("input",{id:`kc-otp-credential-${t}`,className:e("kcLoginOTPListInputClass"),type:"radio",name:"selectedCredentialId",value:i.id,defaultChecked:i.id===c.selectedCredentialId}),s.jsx("label",Object.assign({htmlFor:`kc-otp-credential-${t}`,className:e("kcLoginOTPListClass"),tabIndex:t},{children:s.jsxs("span",Object.assign({className:e("kcLoginOTPListItemHeaderClass")},{children:[s.jsx("span",Object.assign({className:e("kcLoginOTPListItemIconBodyClass")},{children:s.jsx("i",{className:e("kcLoginOTPListItemIconClass"),"aria-hidden":"true"})})),s.jsx("span",Object.assign({className:e("kcLoginOTPListItemTitleClass")},{children:i.userLabel}))]}))}))]},t))}))})),s.jsxs("div",Object.assign({className:e("kcFormGroupClass")},{children:[s.jsx("div",Object.assign({className:e("kcLabelWrapperClass")},{children:s.jsx("label",Object.assign({htmlFor:"otp",className:e("kcLabelClass")},{children:d("loginOtpOneTime")}))})),s.jsxs("div",Object.assign({className:e("kcInputWrapperClass")},{children:[s.jsx("input",{id:"otp",name:"otp",autoComplete:"off",type:"text",className:e("kcInputClass"),autoFocus:!0,"aria-invalid":a.existsError("totp")}),a.existsError("totp")&&s.jsx("span",{id:"input-error-otp-code",className:e("kcInputErrorMessageClass"),"aria-live":"polite",dangerouslySetInnerHTML:{__html:C(a.get("totp"))}})]}))]})),s.jsxs("div",Object.assign({className:e("kcFormGroupClass")},{children:[s.jsx("div",Object.assign({id:"kc-form-options",className:e("kcFormOptionsClass")},{children:s.jsx("div",{className:e("kcFormOptionsWrapperClass")})})),s.jsx("div",Object.assign({id:"kc-form-buttons",className:e("kcFormButtonsClass")},{children:s.jsx("input",{className:e("kcButtonClass","kcButtonPrimaryClass","kcButtonBlockClass","kcButtonLargeClass"),name:"login",id:"kc-login",type:"submit",value:j("doLogIn")})}))]}))]}))}))}export{h as default};
|
@ -0,0 +1 @@
|
||||
import{j as s}from"./index-6-NnS-wp.js";function d(r){const{kcContext:i,i18n:n,doUseDefaultCss:o,Template:a,classes:c}=r,{url:t}=i,{msg:e}=n;return s.jsx(a,Object.assign({kcContext:i,i18n:n,doUseDefaultCss:o,classes:c,headerNode:e("pageExpiredTitle")},{children:s.jsxs("p",Object.assign({id:"instruction1",className:"instruction"},{children:[e("pageExpiredMsg1"),s.jsx("a",Object.assign({id:"loginRestartLink",href:t.loginRestartFlowUrl},{children:e("doClickHere")}))," ",".",s.jsx("br",{}),e("pageExpiredMsg2")," ",s.jsx("a",Object.assign({id:"loginContinueLink",href:t.loginAction},{children:e("doClickHere")}))," ","."]}))}))}export{d as default};
|
@ -0,0 +1,24 @@
|
||||
import{r as O,j as e}from"./index-6-NnS-wp.js";import{a as N,u as S,g as w,c as B}from"./KcPage-BgEBzPJc.js";import{w as $}from"./waitForElementMountedOnDom-qpCjLZnq.js";N();N();function F(j){const{authButtonId:i,kcContext:c,i18n:l}=j,{url:o,isUserIdentified:x,challenge:m,userVerification:d,rpId:b,createTimeout:u}=c,{msgStr:h,isFetchingTranslations:p}=l,{insertScriptTags:n}=S({componentOrHookName:"LoginRecoveryAuthnCodeConfig",scriptTags:[{type:"module",textContent:()=>`
|
||||
import { authenticateByWebAuthn } from "${o.resourcesPath}/js/webauthnAuthenticate.js";
|
||||
import { initAuthenticate } from "${o.resourcesPath}/js/passkeysConditionalAuth.js";
|
||||
|
||||
const authButton = document.getElementById("${i}");
|
||||
const input = {
|
||||
isUserIdentified : ${x},
|
||||
challenge : ${JSON.stringify(m)},
|
||||
userVerification : ${JSON.stringify(d)},
|
||||
rpId : ${JSON.stringify(b)},
|
||||
createTimeout : ${u}
|
||||
};
|
||||
authButton.addEventListener("click", () => {
|
||||
authenticateByWebAuthn({
|
||||
...input,
|
||||
errmsg : ${JSON.stringify(h("webauthn-unsupported-browser-text"))}
|
||||
});
|
||||
});
|
||||
|
||||
initAuthenticate({
|
||||
...input,
|
||||
errmsg : ${JSON.stringify(h("passkey-unsupported-browser-text"))}
|
||||
});
|
||||
`}]});O.useEffect(()=>{p||(async()=>(await $({elementId:i}),n()))()},[p])}function P(j){var i;const{kcContext:c,i18n:l,doUseDefaultCss:o,Template:x,classes:m}=j,{messagesPerField:d,login:b,url:u,usernameHidden:h,shouldDisplayAuthenticators:p,authenticators:n,registrationDisabled:A,realm:y}=c,{msg:r,msgStr:I,advancedMsg:f}=l,{kcClsx:s}=w({doUseDefaultCss:o,classes:m}),C="authenticateWebAuthnButton";return F({authButtonId:C,kcContext:c,i18n:l}),e.jsxs(x,Object.assign({kcContext:c,i18n:l,doUseDefaultCss:o,classes:m,headerNode:r("passkey-login-title"),infoNode:y.registrationAllowed&&!A&&e.jsx("div",Object.assign({id:"kc-registration"},{children:e.jsxs("span",{children:["$",r("noAccount")," ",e.jsx("a",Object.assign({tabIndex:6,href:u.registrationUrl},{children:r("doRegister")}))]})}))},{children:[e.jsxs("form",Object.assign({id:"webauth",action:u.loginAction,method:"post"},{children:[e.jsx("input",{type:"hidden",id:"clientDataJSON",name:"clientDataJSON"}),e.jsx("input",{type:"hidden",id:"authenticatorData",name:"authenticatorData"}),e.jsx("input",{type:"hidden",id:"signature",name:"signature"}),e.jsx("input",{type:"hidden",id:"credentialId",name:"credentialId"}),e.jsx("input",{type:"hidden",id:"userHandle",name:"userHandle"}),e.jsx("input",{type:"hidden",id:"error",name:"error"})]})),e.jsxs("div",Object.assign({className:s("kcFormGroupClass"),"no-bottom-margin":"true",style:{marginBottom:0}},{children:[n!==void 0&&Object.keys(n).length!==0&&e.jsxs(e.Fragment,{children:[e.jsx("form",Object.assign({id:"authn_select",className:s("kcFormClass")},{children:n.authenticators.map((t,a)=>e.jsx("input",{type:"hidden",name:"authn_use_chk",readOnly:!0,value:t.credentialId},a))})),p&&e.jsxs(e.Fragment,{children:[n.authenticators.length>1&&e.jsx("p",Object.assign({className:s("kcSelectAuthListItemTitle")},{children:r("passkey-available-authenticators")})),e.jsx("div",Object.assign({className:s("kcFormClass")},{children:n.authenticators.map((t,a)=>e.jsxs("div",Object.assign({id:`kc-webauthn-authenticator-item-${a}`,className:s("kcSelectAuthListItemClass")},{children:[e.jsx("i",{className:B((()=>{const g=s(t.transports.iconClass);return g===t.transports.iconClass?s("kcWebAuthnDefaultIcon"):g})(),s("kcSelectAuthListItemIconPropertyClass"))}),e.jsxs("div",Object.assign({className:s("kcSelectAuthListItemBodyClass")},{children:[e.jsx("div",Object.assign({id:`kc-webauthn-authenticator-label-${a}`,className:s("kcSelectAuthListItemHeadingClass")},{children:f(t.label)})),t.transports!==void 0&&t.transports.displayNameProperties!==void 0&&t.transports.displayNameProperties.length!==0&&e.jsx("div",Object.assign({id:`kc-webauthn-authenticator-transport-${a}`,className:s("kcSelectAuthListItemDescriptionClass")},{children:t.transports.displayNameProperties.map((g,k,v)=>e.jsxs(O.Fragment,{children:[e.jsxs("span",{children:[" ",f(g)," "]},k),k!==v.length-1&&e.jsx("span",{children:", "})]},k))})),e.jsxs("div",Object.assign({className:s("kcSelectAuthListItemDescriptionClass")},{children:[e.jsx("span",Object.assign({id:`kc-webauthn-authenticator-createdlabel-${a}`},{children:r("passkey-createdAt-label")})),e.jsx("span",Object.assign({id:`kc-webauthn-authenticator-created-${a}`},{children:t.createdAt}))]}))]})),e.jsx("div",{className:s("kcSelectAuthListItemFillClass")})]}),a))}))]})]}),e.jsx("div",Object.assign({id:"kc-form"},{children:e.jsxs("div",Object.assign({id:"kc-form-wrapper"},{children:[y.password&&e.jsx("form",Object.assign({id:"kc-form-login",action:u.loginAction,method:"post",style:{display:"none"},onSubmit:t=>{try{t.target.login.disabled=!0}catch{}return!0}},{children:!h&&e.jsxs("div",Object.assign({className:s("kcFormGroupClass")},{children:[e.jsx("label",Object.assign({htmlFor:"username",className:s("kcLabelClass")},{children:r("passkey-autofill-select")})),e.jsx("input",{tabIndex:1,id:"username","aria-invalid":d.existsError("username"),className:s("kcInputClass"),name:"username",defaultValue:(i=b.username)!==null&&i!==void 0?i:"",autoComplete:"username webauthn",type:"text",autoFocus:!0}),d.existsError("username")&&e.jsx("span",Object.assign({id:"input-error-username",className:s("kcInputErrorMessageClass"),"aria-live":"polite"},{children:d.get("username")}))]}))})),e.jsx("div",Object.assign({id:"kc-form-passkey-button",className:s("kcFormButtonsClass"),style:{display:"none"}},{children:e.jsx("input",{id:C,type:"button",autoFocus:!0,value:I("passkey-doAuthenticate"),className:s("kcButtonClass","kcButtonPrimaryClass","kcButtonBlockClass","kcButtonLargeClass")})}))]}))}))]}))]}))}export{P as default};
|
@ -0,0 +1 @@
|
||||
import{r as m,j as s}from"./index-6-NnS-wp.js";import{g as j,c as b,k,a as w}from"./KcPage-BgEBzPJc.js";function f(c){const{kcContext:t,i18n:o,doUseDefaultCss:r,Template:l,classes:n}=c,{kcClsx:e}=j({doUseDefaultCss:r,classes:n}),{realm:d,url:a,messagesPerField:i}=t,{msg:p,msgStr:u}=o,[g,x]=m.useState(!1);return s.jsx(l,Object.assign({kcContext:t,i18n:o,doUseDefaultCss:r,classes:n,headerNode:p("doLogIn"),displayMessage:!i.existsError("password")},{children:s.jsx("div",Object.assign({id:"kc-form"},{children:s.jsx("div",Object.assign({id:"kc-form-wrapper"},{children:s.jsxs("form",Object.assign({id:"kc-form-login",onSubmit:()=>(x(!0),!0),action:a.loginAction,method:"post"},{children:[s.jsxs("div",Object.assign({className:b(e("kcFormGroupClass"),"no-bottom-margin")},{children:[s.jsx("hr",{}),s.jsx("label",Object.assign({htmlFor:"password",className:e("kcLabelClass")},{children:p("password")})),s.jsx(h,Object.assign({kcClsx:e,i18n:o,passwordInputId:"password"},{children:s.jsx("input",{tabIndex:2,id:"password",className:e("kcInputClass"),name:"password",type:"password",autoFocus:!0,autoComplete:"on","aria-invalid":i.existsError("username","password")})})),i.existsError("password")&&s.jsx("span",{id:"input-error-password",className:e("kcInputErrorMessageClass"),"aria-live":"polite",dangerouslySetInnerHTML:{__html:k(i.get("password"))}})]})),s.jsxs("div",Object.assign({className:e("kcFormGroupClass","kcFormSettingClass")},{children:[s.jsx("div",{id:"kc-form-options"}),s.jsx("div",Object.assign({className:e("kcFormOptionsWrapperClass")},{children:d.resetPasswordAllowed&&s.jsx("span",{children:s.jsx("a",Object.assign({tabIndex:5,href:a.loginResetCredentialsUrl},{children:p("doForgotPassword")}))})}))]})),s.jsx("div",Object.assign({id:"kc-form-buttons",className:e("kcFormGroupClass")},{children:s.jsx("input",{tabIndex:4,className:e("kcButtonClass","kcButtonPrimaryClass","kcButtonBlockClass","kcButtonLargeClass"),name:"login",id:"kc-login",type:"submit",value:u("doLogIn"),disabled:g})}))]}))}))}))}))}function h(c){const{kcClsx:t,i18n:o,passwordInputId:r,children:l}=c,{msgStr:n}=o,[e,d]=m.useReducer(a=>!a,!1);return m.useEffect(()=>{const a=document.getElementById(r);w(a instanceof HTMLInputElement),a.type=e?"text":"password"},[e]),s.jsxs("div",Object.assign({className:t("kcInputGroup")},{children:[l,s.jsx("button",Object.assign({type:"button",className:t("kcFormPasswordVisibilityButtonClass"),"aria-label":n(e?"hidePassword":"showPassword"),"aria-controls":r,onClick:d},{children:s.jsx("i",{className:t(e?"kcFormPasswordVisibilityIconHide":"kcFormPasswordVisibilityIconShow"),"aria-hidden":!0})}))]}))}export{f as default};
|
@ -0,0 +1,112 @@
|
||||
import{r as C,j as e}from"./index-6-NnS-wp.js";import{u as g,g as f,c as l}from"./KcPage-BgEBzPJc.js";import{w as h}from"./waitForElementMountedOnDom-qpCjLZnq.js";function x(c){const{olRecoveryCodesListId:t,i18n:s}=c,{msgStr:o,isFetchingTranslations:a}=s,{insertScriptTags:d}=g({componentOrHookName:"LoginRecoveryAuthnCodeConfig",scriptTags:[{type:"text/javascript",textContent:()=>`
|
||||
|
||||
/* copy recovery codes */
|
||||
function copyRecoveryCodes() {
|
||||
var tmpTextarea = document.createElement("textarea");
|
||||
var codes = document.querySelectorAll("#${t} li");
|
||||
for (i = 0; i < codes.length; i++) {
|
||||
tmpTextarea.value = tmpTextarea.value + codes[i].innerText + "\\n";
|
||||
}
|
||||
document.body.appendChild(tmpTextarea);
|
||||
tmpTextarea.select();
|
||||
document.execCommand("copy");
|
||||
document.body.removeChild(tmpTextarea);
|
||||
}
|
||||
|
||||
var copyButton = document.getElementById("copyRecoveryCodes");
|
||||
copyButton && copyButton.addEventListener("click", function () {
|
||||
copyRecoveryCodes();
|
||||
});
|
||||
|
||||
/* download recovery codes */
|
||||
function formatCurrentDateTime() {
|
||||
var dt = new Date();
|
||||
var options = {
|
||||
month: 'long',
|
||||
day: 'numeric',
|
||||
year: 'numeric',
|
||||
hour: 'numeric',
|
||||
minute: 'numeric',
|
||||
timeZoneName: 'short'
|
||||
};
|
||||
|
||||
return dt.toLocaleString('en-US', options);
|
||||
}
|
||||
|
||||
function parseRecoveryCodeList() {
|
||||
var recoveryCodes = document.querySelectorAll("#${t} li");
|
||||
var recoveryCodeList = "";
|
||||
|
||||
for (var i = 0; i < recoveryCodes.length; i++) {
|
||||
var recoveryCodeLiElement = recoveryCodes[i].innerText;
|
||||
recoveryCodeList += recoveryCodeLiElement + "\\r\\n";
|
||||
}
|
||||
|
||||
return recoveryCodeList;
|
||||
}
|
||||
|
||||
function buildDownloadContent() {
|
||||
var recoveryCodeList = parseRecoveryCodeList();
|
||||
var dt = new Date();
|
||||
var options = {
|
||||
month: 'long',
|
||||
day: 'numeric',
|
||||
year: 'numeric',
|
||||
hour: 'numeric',
|
||||
minute: 'numeric',
|
||||
timeZoneName: 'short'
|
||||
};
|
||||
|
||||
return fileBodyContent =
|
||||
${JSON.stringify(o("recovery-codes-download-file-header"))} + "\\n\\n" +
|
||||
recoveryCodeList + "\\n" +
|
||||
${JSON.stringify(o("recovery-codes-download-file-description"))} + "\\n\\n" +
|
||||
${JSON.stringify(o("recovery-codes-download-file-date"))} + " " + formatCurrentDateTime();
|
||||
}
|
||||
|
||||
function setUpDownloadLinkAndDownload(filename, text) {
|
||||
var el = document.createElement('a');
|
||||
el.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text));
|
||||
el.setAttribute('download', filename);
|
||||
el.style.display = 'none';
|
||||
document.body.appendChild(el);
|
||||
el.click();
|
||||
document.body.removeChild(el);
|
||||
}
|
||||
|
||||
function downloadRecoveryCodes() {
|
||||
setUpDownloadLinkAndDownload('kc-download-recovery-codes.txt', buildDownloadContent());
|
||||
}
|
||||
|
||||
var downloadButton = document.getElementById("downloadRecoveryCodes");
|
||||
downloadButton && downloadButton.addEventListener("click", downloadRecoveryCodes);
|
||||
|
||||
/* print recovery codes */
|
||||
function buildPrintContent() {
|
||||
var recoveryCodeListHTML = document.getElementById('${t}').innerHTML;
|
||||
var styles =
|
||||
\`@page { size: auto; margin-top: 0; }
|
||||
body { width: 480px; }
|
||||
div { list-style-type: none; font-family: monospace }
|
||||
p:first-of-type { margin-top: 48px }\`;
|
||||
|
||||
return printFileContent =
|
||||
"<html><style>" + styles + "</style><body>" +
|
||||
"<title>kc-download-recovery-codes</title>" +
|
||||
"<p>" + ${JSON.stringify(o("recovery-codes-download-file-header"))} + "</p>" +
|
||||
"<div>" + recoveryCodeListHTML + "</div>" +
|
||||
"<p>" + ${JSON.stringify(o("recovery-codes-download-file-description"))} + "</p>" +
|
||||
"<p>" + ${JSON.stringify(o("recovery-codes-download-file-date"))} + " " + formatCurrentDateTime() + "</p>" +
|
||||
"</body></html>";
|
||||
}
|
||||
|
||||
function printRecoveryCodes() {
|
||||
var w = window.open();
|
||||
w.document.write(buildPrintContent());
|
||||
w.print();
|
||||
w.close();
|
||||
}
|
||||
|
||||
var printButton = document.getElementById("printRecoveryCodes");
|
||||
printButton && printButton.addEventListener("click", printRecoveryCodes);
|
||||
`}]});C.useEffect(()=>{a||(async()=>(await h({elementId:t}),d()))()},[a])}function N(c){const{kcContext:t,i18n:s,doUseDefaultCss:o,Template:a,classes:d}=c,{kcClsx:n}=f({doUseDefaultCss:o,classes:d}),{recoveryAuthnCodesConfigBean:u,isAppInitiatedAction:v}=t,{msg:r,msgStr:m}=s,p="kc-recovery-codes-list";return x({olRecoveryCodesListId:p,i18n:s}),e.jsxs(a,Object.assign({kcContext:t,i18n:s,doUseDefaultCss:o,classes:d,headerNode:r("recovery-code-config-header")},{children:[e.jsxs("div",Object.assign({className:l("pf-c-alert","pf-m-warning","pf-m-inline",n("kcRecoveryCodesWarning")),"aria-label":"Warning alert"},{children:[e.jsx("div",Object.assign({className:"pf-c-alert__icon"},{children:e.jsx("i",{className:"pficon-warning-triangle-o","aria-hidden":"true"})})),e.jsxs("h4",Object.assign({className:"pf-c-alert__title"},{children:[e.jsx("span",Object.assign({className:"pf-screen-reader"},{children:"Warning alert:"})),r("recovery-code-config-warning-title")]})),e.jsx("div",Object.assign({className:"pf-c-alert__description"},{children:e.jsx("p",{children:r("recovery-code-config-warning-message")})}))]})),e.jsx("ol",Object.assign({id:p,className:n("kcRecoveryCodesList")},{children:u.generatedRecoveryAuthnCodesList.map((i,y)=>e.jsxs("li",{children:[e.jsxs("span",{children:[y+1,":"]})," ",i.slice(0,4),"-",i.slice(4,8),"-",i.slice(8)]},y))})),e.jsxs("div",Object.assign({className:n("kcRecoveryCodesActions")},{children:[e.jsxs("button",Object.assign({id:"printRecoveryCodes",className:l("pf-c-button","pf-m-link"),type:"button"},{children:[e.jsx("i",{className:"pficon-print","aria-hidden":"true"})," ",r("recovery-codes-print")]})),e.jsxs("button",Object.assign({id:"downloadRecoveryCodes",className:l("pf-c-button","pf-m-link"),type:"button"},{children:[e.jsx("i",{className:"pficon-save","aria-hidden":"true"})," ",r("recovery-codes-download")]})),e.jsxs("button",Object.assign({id:"copyRecoveryCodes",className:l("pf-c-button","pf-m-link"),type:"button"},{children:[e.jsx("i",{className:"pficon-blueprint","aria-hidden":"true"})," ",r("recovery-codes-copy")]}))]})),e.jsxs("div",Object.assign({className:n("kcFormOptionsClass")},{children:[e.jsx("input",{className:n("kcCheckInputClass"),type:"checkbox",id:"kcRecoveryCodesConfirmationCheck",name:"kcRecoveryCodesConfirmationCheck",onChange:i=>{document.getElementById("saveRecoveryAuthnCodesBtn").disabled=!i.target.checked}}),e.jsx("label",Object.assign({htmlFor:"kcRecoveryCodesConfirmationCheck"},{children:r("recovery-codes-confirmation-message")}))]})),e.jsxs("form",Object.assign({action:t.url.loginAction,className:n("kcFormGroupClass"),id:"kc-recovery-codes-settings-form",method:"post"},{children:[e.jsx("input",{type:"hidden",name:"generatedRecoveryAuthnCodes",value:u.generatedRecoveryAuthnCodesAsString}),e.jsx("input",{type:"hidden",name:"generatedAt",value:u.generatedAt}),e.jsx("input",{type:"hidden",id:"userLabel",name:"userLabel",value:m("recovery-codes-label-default")}),e.jsx(b,{kcClsx:n,i18n:s}),v?e.jsxs(e.Fragment,{children:[e.jsx("input",{type:"submit",className:n("kcButtonClass","kcButtonPrimaryClass","kcButtonLargeClass"),id:"saveRecoveryAuthnCodesBtn",value:m("recovery-codes-action-complete"),disabled:!0}),e.jsx("button",Object.assign({type:"submit",className:n("kcButtonClass","kcButtonDefaultClass","kcButtonLargeClass"),id:"cancelRecoveryAuthnCodesBtn",name:"cancel-aia",value:"true"},{children:r("recovery-codes-action-cancel")}))]}):e.jsx("input",{type:"submit",className:n("kcButtonClass","kcButtonPrimaryClass","kcButtonBlockClass","kcButtonLargeClass"),id:"saveRecoveryAuthnCodesBtn",value:m("recovery-codes-action-complete"),disabled:!0})]}))]}))}function b(c){const{kcClsx:t,i18n:s}=c,{msg:o}=s;return e.jsx("div",Object.assign({id:"kc-form-options",className:t("kcFormOptionsClass")},{children:e.jsx("div",Object.assign({className:t("kcFormOptionsWrapperClass")},{children:e.jsx("div",Object.assign({className:"checkbox"},{children:e.jsxs("label",{children:[e.jsx("input",{type:"checkbox",id:"logout-sessions",name:"logout-sessions",value:"on",defaultChecked:!0}),o("logoutOtherSessions")]})}))}))}))}export{N as default};
|
@ -0,0 +1 @@
|
||||
import{j as s}from"./index-6-NnS-wp.js";import{g as m,k as C}from"./KcPage-BgEBzPJc.js";function x(i){const{kcContext:r,i18n:o,doUseDefaultCss:t,Template:l,classes:c}=i,{kcClsx:e}=m({doUseDefaultCss:t,classes:c}),{url:d,messagesPerField:a,recoveryAuthnCodesInputBean:p}=r,{msg:n,msgStr:u}=o;return s.jsx(l,Object.assign({kcContext:r,i18n:o,doUseDefaultCss:t,classes:c,headerNode:n("auth-recovery-code-header"),displayMessage:!a.existsError("recoveryCodeInput")},{children:s.jsxs("form",Object.assign({id:"kc-recovery-code-login-form",className:e("kcFormClass"),action:d.loginAction,method:"post"},{children:[s.jsxs("div",Object.assign({className:e("kcFormGroupClass")},{children:[s.jsx("div",Object.assign({className:e("kcLabelWrapperClass")},{children:s.jsx("label",Object.assign({htmlFor:"recoveryCodeInput",className:e("kcLabelClass")},{children:n("auth-recovery-code-prompt",`${p.codeNumber}`)}))})),s.jsxs("div",Object.assign({className:e("kcInputWrapperClass")},{children:[s.jsx("input",{tabIndex:1,id:"recoveryCodeInput",name:"recoveryCodeInput","aria-invalid":a.existsError("recoveryCodeInput"),autoComplete:"off",type:"text",className:e("kcInputClass"),autoFocus:!0}),a.existsError("recoveryCodeInput")&&s.jsx("span",{id:"input-error",className:e("kcInputErrorMessageClass"),"aria-live":"polite",dangerouslySetInnerHTML:{__html:C(a.get("recoveryCodeInput"))}})]}))]})),s.jsxs("div",Object.assign({className:e("kcFormGroupClass")},{children:[s.jsx("div",Object.assign({id:"kc-form-options",className:e("kcFormOptionsWrapperClass")},{children:s.jsx("div",{className:e("kcFormOptionsWrapperClass")})})),s.jsx("div",Object.assign({id:"kc-form-buttons",className:e("kcFormButtonsClass")},{children:s.jsx("input",{className:e("kcButtonClass","kcButtonPrimaryClass","kcButtonBlockClass","kcButtonLargeClass"),name:"login",id:"kc-login",type:"submit",value:u("doLogIn")})}))]}))]}))}))}export{x as default};
|
@ -0,0 +1 @@
|
||||
import{j as s,r as u}from"./index-6-NnS-wp.js";import{g as k}from"./KcPage-BgEBzPJc.js";function O(d){const{kcContext:c,i18n:i,doUseDefaultCss:n,Template:m,classes:l}=d,{kcClsx:e}=k({doUseDefaultCss:n,classes:l}),{url:p,messagesPerField:g,configuredOtpCredentials:r}=c,{msg:o,msgStr:j}=i;return s.jsx(m,Object.assign({kcContext:c,i18n:i,doUseDefaultCss:n,classes:l,displayMessage:!g.existsError("totp"),headerNode:o("doLogIn")},{children:s.jsx("form",Object.assign({id:"kc-otp-reset-form",className:e("kcFormClass"),action:p.loginAction,method:"post"},{children:s.jsx("div",Object.assign({className:e("kcInputWrapperClass")},{children:s.jsxs("div",Object.assign({className:e("kcInfoAreaWrapperClass")},{children:[s.jsx("p",Object.assign({id:"kc-otp-reset-form-description"},{children:o("otp-reset-description")})),r.userOtpCredentials.map((t,a)=>s.jsxs(u.Fragment,{children:[s.jsx("input",{id:`kc-otp-credential-${a}`,className:e("kcLoginOTPListInputClass"),type:"radio",name:"selectedCredentialId",value:t.id,defaultChecked:t.id===r.selectedCredentialId}),s.jsx("label",Object.assign({htmlFor:`kc-otp-credential-${a}`,className:e("kcLoginOTPListClass"),tabIndex:a},{children:s.jsxs("span",Object.assign({className:e("kcLoginOTPListItemHeaderClass")},{children:[s.jsx("span",Object.assign({className:e("kcLoginOTPListItemIconBodyClass")},{children:s.jsx("i",{className:e("kcLoginOTPListItemIconClass"),"aria-hidden":"true"})})),s.jsx("span",Object.assign({className:e("kcLoginOTPListItemTitleClass")},{children:t.userLabel}))]}))}))]},t.id)),s.jsx("div",Object.assign({className:e("kcFormGroupClass")},{children:s.jsx("div",Object.assign({id:"kc-form-buttons",className:e("kcFormButtonsClass")},{children:s.jsx("input",{id:"kc-otp-reset-form-submit",className:e("kcButtonClass","kcButtonPrimaryClass","kcButtonBlockClass","kcButtonLargeClass"),type:"submit",value:j("doSubmit")})}))}))]}))}))}))}))}export{O as default};
|
@ -0,0 +1 @@
|
||||
import{j as s}from"./index-6-NnS-wp.js";import{g as j,k}from"./KcPage-BgEBzPJc.js";function h(u){var t;const{kcContext:l,i18n:n,doUseDefaultCss:c,Template:d,classes:o}=u,{kcClsx:e}=j({doUseDefaultCss:c,classes:o}),{url:m,realm:i,auth:p,messagesPerField:r}=l,{msg:a,msgStr:g}=n;return s.jsx(d,Object.assign({kcContext:l,i18n:n,doUseDefaultCss:c,classes:o,displayInfo:!0,displayMessage:!r.existsError("username"),infoNode:i.duplicateEmailsAllowed?a("emailInstructionUsername"):a("emailInstruction"),headerNode:a("emailForgotTitle")},{children:s.jsxs("form",Object.assign({id:"kc-reset-password-form",className:e("kcFormClass"),action:m.loginAction,method:"post"},{children:[s.jsxs("div",Object.assign({className:e("kcFormGroupClass")},{children:[s.jsx("div",Object.assign({className:e("kcLabelWrapperClass")},{children:s.jsx("label",Object.assign({htmlFor:"username",className:e("kcLabelClass")},{children:i.loginWithEmailAllowed?i.registrationEmailAsUsername?a("email"):a("usernameOrEmail"):a("username")}))})),s.jsxs("div",Object.assign({className:e("kcInputWrapperClass")},{children:[s.jsx("input",{type:"text",id:"username",name:"username",className:e("kcInputClass"),autoFocus:!0,defaultValue:(t=p.attemptedUsername)!==null&&t!==void 0?t:"","aria-invalid":r.existsError("username")}),r.existsError("username")&&s.jsx("span",{id:"input-error-username",className:e("kcInputErrorMessageClass"),"aria-live":"polite",dangerouslySetInnerHTML:{__html:k(r.get("username"))}})]}))]})),s.jsxs("div",Object.assign({className:e("kcFormGroupClass","kcFormSettingClass")},{children:[s.jsx("div",Object.assign({id:"kc-form-options",className:e("kcFormOptionsClass")},{children:s.jsx("div",Object.assign({className:e("kcFormOptionsWrapperClass")},{children:s.jsx("span",{children:s.jsx("a",Object.assign({href:m.loginUrl},{children:a("backToLogin")}))})}))})),s.jsx("div",Object.assign({id:"kc-form-buttons",className:e("kcFormButtonsClass")},{children:s.jsx("input",{className:e("kcButtonClass","kcButtonPrimaryClass","kcButtonBlockClass","kcButtonLargeClass"),type:"submit",value:g("doSubmit")})}))]}))]}))}))}export{h as default};
|
@ -0,0 +1 @@
|
||||
import{j as s,r as m}from"./index-6-NnS-wp.js";import{g as x,k as u,a as k}from"./KcPage-BgEBzPJc.js";function h(c){const{kcContext:e,i18n:r,doUseDefaultCss:t,Template:d,classes:l}=c,{kcClsx:a}=x({doUseDefaultCss:t,classes:l}),{msg:n,msgStr:i}=r,{url:w,messagesPerField:o,isAppInitiatedAction:p}=e;return s.jsx(d,Object.assign({kcContext:e,i18n:r,doUseDefaultCss:t,classes:l,displayMessage:!o.existsError("password","password-confirm"),headerNode:n("updatePasswordTitle")},{children:s.jsxs("form",Object.assign({id:"kc-passwd-update-form",className:a("kcFormClass"),action:w.loginAction,method:"post"},{children:[s.jsxs("div",Object.assign({className:a("kcFormGroupClass")},{children:[s.jsx("div",Object.assign({className:a("kcLabelWrapperClass")},{children:s.jsx("label",Object.assign({htmlFor:"password-new",className:a("kcLabelClass")},{children:n("passwordNew")}))})),s.jsxs("div",Object.assign({className:a("kcInputWrapperClass")},{children:[s.jsx(j,Object.assign({kcClsx:a,i18n:r,passwordInputId:"password-new"},{children:s.jsx("input",{type:"password",id:"password-new",name:"password-new",className:a("kcInputClass"),autoFocus:!0,autoComplete:"new-password","aria-invalid":o.existsError("password","password-confirm")})})),o.existsError("password")&&s.jsx("span",{id:"input-error-password",className:a("kcInputErrorMessageClass"),"aria-live":"polite",dangerouslySetInnerHTML:{__html:u(o.get("password"))}})]}))]})),s.jsxs("div",Object.assign({className:a("kcFormGroupClass")},{children:[s.jsx("div",Object.assign({className:a("kcLabelWrapperClass")},{children:s.jsx("label",Object.assign({htmlFor:"password-confirm",className:a("kcLabelClass")},{children:n("passwordConfirm")}))})),s.jsxs("div",Object.assign({className:a("kcInputWrapperClass")},{children:[s.jsx(j,Object.assign({kcClsx:a,i18n:r,passwordInputId:"password-confirm"},{children:s.jsx("input",{type:"password",id:"password-confirm",name:"password-confirm",className:a("kcInputClass"),autoFocus:!0,autoComplete:"new-password","aria-invalid":o.existsError("password","password-confirm")})})),o.existsError("password-confirm")&&s.jsx("span",{id:"input-error-password-confirm",className:a("kcInputErrorMessageClass"),"aria-live":"polite",dangerouslySetInnerHTML:{__html:u(o.get("password-confirm"))}})]}))]})),s.jsxs("div",Object.assign({className:a("kcFormGroupClass")},{children:[s.jsx(g,{kcClsx:a,i18n:r}),s.jsxs("div",Object.assign({id:"kc-form-buttons",className:a("kcFormButtonsClass")},{children:[s.jsx("input",{className:a("kcButtonClass","kcButtonPrimaryClass",!p&&"kcButtonBlockClass","kcButtonLargeClass"),type:"submit",value:i("doSubmit")}),p&&s.jsx("button",Object.assign({className:a("kcButtonClass","kcButtonDefaultClass","kcButtonLargeClass"),type:"submit",name:"cancel-aia",value:"true"},{children:n("doCancel")}))]}))]}))]}))}))}function g(c){const{kcClsx:e,i18n:r}=c,{msg:t}=r;return s.jsx("div",Object.assign({id:"kc-form-options",className:e("kcFormOptionsClass")},{children:s.jsx("div",Object.assign({className:e("kcFormOptionsWrapperClass")},{children:s.jsx("div",Object.assign({className:"checkbox"},{children:s.jsxs("label",{children:[s.jsx("input",{type:"checkbox",id:"logout-sessions",name:"logout-sessions",value:"on",defaultChecked:!0}),t("logoutOtherSessions")]})}))}))}))}function j(c){const{kcClsx:e,i18n:r,passwordInputId:t,children:d}=c,{msgStr:l}=r,[a,n]=m.useReducer(i=>!i,!1);return m.useEffect(()=>{const i=document.getElementById(t);k(i instanceof HTMLInputElement),i.type=a?"text":"password"},[a]),s.jsxs("div",Object.assign({className:e("kcInputGroup")},{children:[d,s.jsx("button",Object.assign({type:"button",className:e("kcFormPasswordVisibilityButtonClass"),"aria-label":l(a?"hidePassword":"showPassword"),"aria-controls":t,onClick:n},{children:s.jsx("i",{className:e(a?"kcFormPasswordVisibilityIconHide":"kcFormPasswordVisibilityIconShow"),"aria-hidden":!0})}))]}))}export{h as default};
|
@ -0,0 +1 @@
|
||||
import{r as b,j as s}from"./index-6-NnS-wp.js";import{g as f}from"./KcPage-BgEBzPJc.js";function F(c){const{kcContext:t,i18n:a,doUseDefaultCss:o,Template:n,classes:i,UserProfileFormFields:m,doMakeUserConfirmPassword:d}=c,{kcClsx:e}=f({doUseDefaultCss:o,classes:i}),{messagesPerField:u,url:C,isAppInitiatedAction:l}=t,{msg:r,msgStr:k}=a,[p,x]=b.useState(!1);return s.jsx(n,Object.assign({kcContext:t,i18n:a,doUseDefaultCss:o,classes:i,displayRequiredFields:!0,headerNode:r("loginProfileTitle"),displayMessage:u.exists("global")},{children:s.jsxs("form",Object.assign({id:"kc-update-profile-form",className:e("kcFormClass"),action:C.loginAction,method:"post"},{children:[s.jsx(m,{kcContext:t,i18n:a,kcClsx:e,onIsFormSubmittableValueChange:x,doMakeUserConfirmPassword:d}),s.jsxs("div",Object.assign({className:e("kcFormGroupClass")},{children:[s.jsx("div",Object.assign({id:"kc-form-options",className:e("kcFormOptionsClass")},{children:s.jsx("div",{className:e("kcFormOptionsWrapperClass")})})),s.jsxs("div",Object.assign({id:"kc-form-buttons",className:e("kcFormButtonsClass")},{children:[s.jsx("input",{disabled:!p,className:e("kcButtonClass","kcButtonPrimaryClass",!l&&"kcButtonBlockClass","kcButtonLargeClass"),type:"submit",value:k("doSubmit")}),l&&s.jsx("button",Object.assign({className:e("kcButtonClass","kcButtonDefaultClass","kcButtonLargeClass"),type:"submit",name:"cancel-aia",value:"true",formNoValidate:!0},{children:r("doCancel")}))]}))]}))]}))}))}export{F as default};
|
@ -0,0 +1 @@
|
||||
import{r as N,j as s}from"./index-6-NnS-wp.js";import{g as O,c as j}from"./KcPage-BgEBzPJc.js";function A(b){var t;const{kcContext:c,i18n:l,doUseDefaultCss:d,Template:h,classes:m}=b,{kcClsx:e}=O({doUseDefaultCss:d,classes:m}),{social:n,realm:i,url:u,usernameHidden:g,login:x,registrationDisabled:p,messagesPerField:o}=c,{msg:a,msgStr:k}=l,[C,v]=N.useState(!1);return s.jsx(h,Object.assign({kcContext:c,i18n:l,doUseDefaultCss:d,classes:m,displayMessage:!o.existsError("username"),displayInfo:i.password&&i.registrationAllowed&&!p,infoNode:s.jsx("div",Object.assign({id:"kc-registration"},{children:s.jsxs("span",{children:[a("noAccount"),s.jsx("a",Object.assign({tabIndex:6,href:u.registrationUrl},{children:a("doRegister")}))]})})),headerNode:a("doLogIn"),socialProvidersNode:s.jsx(s.Fragment,{children:i.password&&(n==null?void 0:n.providers)!==void 0&&n.providers.length!==0&&s.jsxs("div",Object.assign({id:"kc-social-providers",className:e("kcFormSocialAccountSectionClass")},{children:[s.jsx("hr",{}),s.jsx("h2",{children:a("identity-provider-login-label")}),s.jsx("ul",Object.assign({className:e("kcFormSocialAccountListClass",n.providers.length>3&&"kcFormSocialAccountListGridClass")},{children:n.providers.map((...[r,,f])=>s.jsx("li",{children:s.jsxs("a",Object.assign({id:`social-${r.alias}`,className:e("kcFormSocialAccountListButtonClass",f.length>3&&"kcFormSocialAccountGridItem"),type:"button",href:r.loginUrl},{children:[r.iconClasses&&s.jsx("i",{className:j(e("kcCommonLogoIdP"),r.iconClasses),"aria-hidden":"true"}),s.jsx("span",Object.assign({className:j(e("kcFormSocialAccountNameClass"),r.iconClasses&&"kc-social-icon-text")},{children:r.displayName}))]}))},r.alias))}))]}))})},{children:s.jsx("div",Object.assign({id:"kc-form"},{children:s.jsx("div",Object.assign({id:"kc-form-wrapper"},{children:i.password&&s.jsxs("form",Object.assign({id:"kc-form-login",onSubmit:()=>(v(!0),!0),action:u.loginAction,method:"post"},{children:[!g&&s.jsxs("div",Object.assign({className:e("kcFormGroupClass")},{children:[s.jsx("label",Object.assign({htmlFor:"username",className:e("kcLabelClass")},{children:i.loginWithEmailAllowed?i.registrationEmailAsUsername?a("email"):a("usernameOrEmail"):a("username")})),s.jsx("input",{tabIndex:2,id:"username",className:e("kcInputClass"),name:"username",defaultValue:(t=x.username)!==null&&t!==void 0?t:"",type:"text",autoFocus:!0,autoComplete:"off","aria-invalid":o.existsError("username")}),o.existsError("username")&&s.jsx("span",Object.assign({id:"input-error",className:e("kcInputErrorMessageClass"),"aria-live":"polite"},{children:o.getFirstError("username")}))]})),s.jsx("div",Object.assign({className:e("kcFormGroupClass","kcFormSettingClass")},{children:s.jsx("div",Object.assign({id:"kc-form-options"},{children:i.rememberMe&&!g&&s.jsx("div",Object.assign({className:"checkbox"},{children:s.jsxs("label",{children:[s.jsx("input",{tabIndex:3,id:"rememberMe",name:"rememberMe",type:"checkbox",defaultChecked:!!x.rememberMe})," ",a("rememberMe")]})}))}))})),s.jsx("div",Object.assign({id:"kc-form-buttons",className:e("kcFormGroupClass")},{children:s.jsx("input",{tabIndex:4,disabled:C,className:e("kcButtonClass","kcButtonPrimaryClass","kcButtonBlockClass","kcButtonLargeClass"),name:"login",id:"kc-login",type:"submit",value:k("doLogIn")})}))]}))}))}))}))}export{A as default};
|
@ -0,0 +1 @@
|
||||
import{j as e}from"./index-6-NnS-wp.js";function f(r){var i;const{kcContext:t,i18n:o,doUseDefaultCss:a,Template:l,classes:c}=r,{msg:s}=o,{url:u,user:n}=t;return e.jsx(l,Object.assign({kcContext:t,i18n:o,doUseDefaultCss:a,classes:c,displayInfo:!0,headerNode:s("emailVerifyTitle"),infoNode:e.jsxs("p",Object.assign({className:"instruction"},{children:[s("emailVerifyInstruction2"),e.jsx("br",{}),e.jsx("a",Object.assign({href:u.loginAction},{children:s("doClickHere")}))," ",s("emailVerifyInstruction3")]}))},{children:e.jsx("p",Object.assign({className:"instruction"},{children:s("emailVerifyInstruction1",(i=n==null?void 0:n.email)!==null&&i!==void 0?i:"")}))}))}export{f as default};
|
@ -0,0 +1 @@
|
||||
import{j as s}from"./index-6-NnS-wp.js";import{g as j}from"./KcPage-BgEBzPJc.js";function g(o){const{kcContext:l,i18n:t,doUseDefaultCss:i,Template:m,classes:n}=o,{kcClsx:a}=j({doUseDefaultCss:i,classes:n}),{url:d,x509:e}=l,{msg:c,msgStr:r}=t;return s.jsx(m,Object.assign({kcContext:l,i18n:t,doUseDefaultCss:i,classes:n,headerNode:c("doLogIn")},{children:s.jsxs("form",Object.assign({id:"kc-x509-login-info",className:a("kcFormClass"),action:d.loginAction,method:"post"},{children:[s.jsxs("div",Object.assign({className:a("kcFormGroupClass")},{children:[s.jsx("div",Object.assign({className:a("kcLabelWrapperClass")},{children:s.jsx("label",Object.assign({htmlFor:"certificate_subjectDN",className:a("kcLabelClass")},{children:c("clientCertificate")}))})),e.formData.subjectDN?s.jsx("div",Object.assign({className:a("kcLabelWrapperClass")},{children:s.jsx("label",Object.assign({id:"certificate_subjectDN",className:a("kcLabelClass")},{children:e.formData.subjectDN}))})):s.jsx("div",Object.assign({className:a("kcLabelWrapperClass")},{children:s.jsx("label",Object.assign({id:"certificate_subjectDN",className:a("kcLabelClass")},{children:c("noCertificate")}))}))]})),s.jsx("div",Object.assign({className:a("kcFormGroupClass")},{children:e.formData.isUserEnabled&&s.jsxs(s.Fragment,{children:[s.jsx("div",Object.assign({className:a("kcLabelWrapperClass")},{children:s.jsx("label",Object.assign({htmlFor:"username",className:a("kcLabelClass")},{children:c("doX509Login")}))})),s.jsx("div",Object.assign({className:a("kcLabelWrapperClass")},{children:s.jsx("label",Object.assign({id:"username",className:a("kcLabelClass")},{children:e.formData.username}))}))]})})),s.jsxs("div",Object.assign({className:a("kcFormGroupClass")},{children:[s.jsx("div",Object.assign({id:"kc-form-options",className:a("kcFormOptionsClass")},{children:s.jsx("div",{className:a("kcFormOptionsWrapperClass")})})),s.jsx("div",Object.assign({id:"kc-form-buttons",className:a("kcFormButtonsClass")},{children:s.jsxs("div",Object.assign({className:a("kcFormButtonsWrapperClass")},{children:[s.jsx("input",{className:a("kcButtonClass","kcButtonPrimaryClass","kcButtonLargeClass"),name:"login",id:"kc-login",type:"submit",value:r("doContinue")}),e.formData.isUserEnabled&&s.jsx("input",{className:a("kcButtonClass","kcButtonDefaultClass","kcButtonLargeClass"),name:"cancel",id:"kc-cancel",type:"submit",value:r("doIgnore")})]}))}))]}))]}))}))}export{g as default};
|
@ -0,0 +1 @@
|
||||
import{j as s}from"./index-6-NnS-wp.js";import{g}from"./KcPage-BgEBzPJc.js";function p(l){const{kcContext:t,i18n:i,doUseDefaultCss:n,Template:m,classes:c}=l,{kcClsx:o}=g({doUseDefaultCss:n,classes:c}),{url:d,client:a,logoutConfirm:r}=t,{msg:e,msgStr:u}=i;return s.jsx(m,Object.assign({kcContext:t,i18n:i,doUseDefaultCss:n,classes:c,headerNode:e("logoutConfirmTitle")},{children:s.jsxs("div",Object.assign({id:"kc-logout-confirm",className:"content-area"},{children:[s.jsx("p",Object.assign({className:"instruction"},{children:e("logoutConfirmHeader")})),s.jsxs("form",Object.assign({className:"form-actions",action:d.logoutConfirmAction,method:"POST"},{children:[s.jsx("input",{type:"hidden",name:"session_code",value:r.code}),s.jsxs("div",Object.assign({className:o("kcFormGroupClass")},{children:[s.jsx("div",Object.assign({id:"kc-form-options"},{children:s.jsx("div",{className:o("kcFormOptionsWrapperClass")})})),s.jsx("div",Object.assign({id:"kc-form-buttons",className:o("kcFormGroupClass")},{children:s.jsx("input",{tabIndex:4,className:o("kcButtonClass","kcButtonPrimaryClass","kcButtonBlockClass","kcButtonLargeClass"),name:"confirmLogout",id:"kc-logout",type:"submit",value:u("doLogout")})}))]}))]})),s.jsx("div",Object.assign({id:"kc-info-message"},{children:!r.skipLink&&a.baseUrl&&s.jsx("p",{children:s.jsx("a",Object.assign({href:a.baseUrl},{children:e("backToApplication")}))})}))]}))}))}export{p as default};
|
1
dist_keycloak/theme/keycloakify-starter/login/resources/dist/assets/Register-2dGrulh1.js
vendored
Normal file
1
dist_keycloak/theme/keycloakify-starter/login/resources/dist/assets/Register-2dGrulh1.js
vendored
Normal file
@ -0,0 +1 @@
|
||||
import{r as C,j as s}from"./index-6-NnS-wp.js";import{g as F,c as T,k as B}from"./KcPage-BgEBzPJc.js";function P(l){const{kcContext:c,i18n:e,doUseDefaultCss:t,Template:o,classes:i,UserProfileFormFields:r,doMakeUserConfirmPassword:d}=l,{kcClsx:a}=F({doUseDefaultCss:t,classes:i}),{messageHeader:p,url:g,messagesPerField:u,recaptchaRequired:k,recaptchaVisible:j,recaptchaSiteKey:x,recaptchaAction:n,termsAcceptanceRequired:b}=c,{msg:m,msgStr:f,advancedMsg:N}=e,[O,A]=C.useState(!1),[h,v]=C.useState(!1);return s.jsx(o,Object.assign({kcContext:c,i18n:e,doUseDefaultCss:t,classes:i,headerNode:p!==void 0?N(p):m("registerTitle"),displayMessage:u.exists("global"),displayRequiredFields:!0},{children:s.jsxs("form",Object.assign({id:"kc-register-form",className:a("kcFormClass"),action:g.registrationAction,method:"post"},{children:[s.jsx(r,{kcContext:c,i18n:e,kcClsx:a,onIsFormSubmittableValueChange:A,doMakeUserConfirmPassword:d}),b&&s.jsx(y,{i18n:e,kcClsx:a,messagesPerField:u,areTermsAccepted:h,onAreTermsAcceptedValueChange:v}),k&&(j||n===void 0)&&s.jsx("div",Object.assign({className:"form-group"},{children:s.jsx("div",Object.assign({className:a("kcInputWrapperClass")},{children:s.jsx("div",{className:"g-recaptcha","data-size":"compact","data-sitekey":x,"data-action":n})}))})),s.jsxs("div",Object.assign({className:a("kcFormGroupClass")},{children:[s.jsx("div",Object.assign({id:"kc-form-options",className:a("kcFormOptionsClass")},{children:s.jsx("div",Object.assign({className:a("kcFormOptionsWrapperClass")},{children:s.jsx("span",{children:s.jsx("a",Object.assign({href:g.loginUrl},{children:m("backToLogin")}))})}))})),k&&!j&&n!==void 0?s.jsx("div",Object.assign({id:"kc-form-buttons",className:a("kcFormButtonsClass")},{children:s.jsx("button",Object.assign({className:T(a("kcButtonClass","kcButtonPrimaryClass","kcButtonBlockClass","kcButtonLargeClass"),"g-recaptcha"),"data-sitekey":x,"data-callback":()=>{document.getElementById("kc-register-form").submit()},"data-action":n,type:"submit"},{children:m("doRegister")}))})):s.jsx("div",Object.assign({id:"kc-form-buttons",className:a("kcFormButtonsClass")},{children:s.jsx("input",{disabled:!O||b&&!h,className:a("kcButtonClass","kcButtonPrimaryClass","kcButtonBlockClass","kcButtonLargeClass"),type:"submit",value:f("doRegister")})}))]}))]}))}))}function y(l){const{i18n:c,kcClsx:e,messagesPerField:t,areTermsAccepted:o,onAreTermsAcceptedValueChange:i}=l,{msg:r}=c;return s.jsxs(s.Fragment,{children:[s.jsx("div",Object.assign({className:"form-group"},{children:s.jsxs("div",Object.assign({className:e("kcInputWrapperClass")},{children:[r("termsTitle"),s.jsx("div",Object.assign({id:"kc-registration-terms-text"},{children:r("termsText")}))]}))})),s.jsxs("div",Object.assign({className:"form-group"},{children:[s.jsxs("div",Object.assign({className:e("kcLabelWrapperClass")},{children:[s.jsx("input",{type:"checkbox",id:"termsAccepted",name:"termsAccepted",className:e("kcCheckboxInputClass"),checked:o,onChange:d=>i(d.target.checked),"aria-invalid":t.existsError("termsAccepted")}),s.jsx("label",Object.assign({htmlFor:"termsAccepted",className:e("kcLabelClass")},{children:r("acceptTerms")}))]})),t.existsError("termsAccepted")&&s.jsx("div",Object.assign({className:e("kcLabelWrapperClass")},{children:s.jsx("span",{id:"input-error-terms-accepted",className:e("kcInputErrorMessageClass"),"aria-live":"polite",dangerouslySetInnerHTML:{__html:B(t.get("termsAccepted"))}})}))]}))]})}export{P as default};
|
1
dist_keycloak/theme/keycloakify-starter/login/resources/dist/assets/SamlPostForm-BB0kNYSy.js
vendored
Normal file
1
dist_keycloak/theme/keycloakify-starter/login/resources/dist/assets/SamlPostForm-BB0kNYSy.js
vendored
Normal file
@ -0,0 +1 @@
|
||||
import{r as o,j as e}from"./index-6-NnS-wp.js";function x(r){const{kcContext:a,i18n:l,doUseDefaultCss:i,Template:m,classes:u}=r,{msgStr:d,msg:t}=l,{samlPost:s}=a,[n,p]=o.useState(null);return o.useEffect(()=>{if(n!==null){if(s.url==="#"){alert("In a real Keycloak the user would be redirected immediately");return}n.submit()}},[n]),e.jsxs(m,Object.assign({kcContext:a,i18n:l,doUseDefaultCss:i,classes:u,headerNode:t("saml.post-form.title")},{children:[e.jsx("p",{children:t("saml.post-form.message")}),e.jsxs("form",Object.assign({name:"saml-post-binding",method:"post",action:s.url,ref:p},{children:[s.SAMLRequest&&e.jsx("input",{type:"hidden",name:"SAMLRequest",value:s.SAMLRequest}),s.SAMLResponse&&e.jsx("input",{type:"hidden",name:"SAMLResponse",value:s.SAMLResponse}),s.relayState&&e.jsx("input",{type:"hidden",name:"RelayState",value:s.relayState}),e.jsxs("noscript",{children:[e.jsx("p",{children:t("saml.post-form.js-disabled")}),e.jsx("input",{type:"submit",value:d("doContinue")})]})]}))]}))}export{x as default};
|
@ -0,0 +1 @@
|
||||
import{j as s}from"./index-6-NnS-wp.js";import{g as j}from"./KcPage-BgEBzPJc.js";function g(o){const{kcContext:c,i18n:a,doUseDefaultCss:l,Template:m,classes:i}=o,{url:r,auth:d}=c,{kcClsx:e}=j({doUseDefaultCss:l,classes:i}),{msg:h,advancedMsg:n}=a;return s.jsx(m,Object.assign({kcContext:c,i18n:a,doUseDefaultCss:l,classes:i,displayInfo:!1,headerNode:h("loginChooseAuthenticator")},{children:s.jsx("form",Object.assign({id:"kc-select-credential-form",className:e("kcFormClass"),action:r.loginAction,method:"post"},{children:s.jsx("div",Object.assign({className:e("kcSelectAuthListClass")},{children:d.authenticationSelections.map((t,u)=>s.jsxs("button",Object.assign({className:e("kcSelectAuthListItemClass"),type:"submit",name:"authenticationExecution",value:t.authExecId},{children:[s.jsx("div",Object.assign({className:e("kcSelectAuthListItemIconClass")},{children:s.jsx("i",{className:e("kcSelectAuthListItemIconPropertyClass",t.iconCssClass)})})),s.jsxs("div",Object.assign({className:e("kcSelectAuthListItemBodyClass")},{children:[s.jsx("div",Object.assign({className:e("kcSelectAuthListItemHeadingClass")},{children:n(t.displayName)})),s.jsx("div",Object.assign({className:e("kcSelectAuthListItemDescriptionClass")},{children:n(t.helpText)}))]})),s.jsx("div",{className:e("kcSelectAuthListItemFillClass")}),s.jsx("div",Object.assign({className:e("kcSelectAuthListItemArrowClass")},{children:s.jsx("i",{className:e("kcSelectAuthListItemArrowIconClass")})}))]}),u))}))}))}))}export{g as default};
|
1
dist_keycloak/theme/keycloakify-starter/login/resources/dist/assets/Terms-Cs1h3ohN.js
vendored
Normal file
1
dist_keycloak/theme/keycloakify-starter/login/resources/dist/assets/Terms-Cs1h3ohN.js
vendored
Normal file
@ -0,0 +1 @@
|
||||
import{j as s}from"./index-6-NnS-wp.js";import{g as u}from"./KcPage-BgEBzPJc.js";function k(i){const{kcContext:t,i18n:e,doUseDefaultCss:a,Template:r,classes:c}=i,{kcClsx:n}=u({doUseDefaultCss:a,classes:c}),{msg:l,msgStr:o}=e,{url:m}=t;return s.jsxs(r,Object.assign({kcContext:t,i18n:e,doUseDefaultCss:a,classes:c,displayMessage:!1,headerNode:l("termsTitle")},{children:[s.jsx("div",Object.assign({id:"kc-terms-text"},{children:l("termsText")})),s.jsxs("form",Object.assign({className:"form-actions",action:m.loginAction,method:"POST"},{children:[s.jsx("input",{className:n("kcButtonClass","kcButtonClass","kcButtonClass","kcButtonPrimaryClass","kcButtonLargeClass"),name:"accept",id:"kc-accept",type:"submit",value:o("doAccept")}),s.jsx("input",{className:n("kcButtonClass","kcButtonDefaultClass","kcButtonLargeClass"),name:"cancel",id:"kc-decline",type:"submit",value:o("doDecline")})]})),s.jsx("div",{className:"clearfix"})]}))}export{k as default};
|
1
dist_keycloak/theme/keycloakify-starter/login/resources/dist/assets/UpdateEmail-BIpOR2ao.js
vendored
Normal file
1
dist_keycloak/theme/keycloakify-starter/login/resources/dist/assets/UpdateEmail-BIpOR2ao.js
vendored
Normal file
@ -0,0 +1 @@
|
||||
import{r as j,j as s}from"./index-6-NnS-wp.js";import{g as b}from"./KcPage-BgEBzPJc.js";function O(i){const{kcContext:t,i18n:a,doUseDefaultCss:o,Template:r,classes:c,UserProfileFormFields:m,doMakeUserConfirmPassword:d}=i,{kcClsx:e}=b({doUseDefaultCss:o,classes:c}),{msg:l,msgStr:u}=a,[k,p]=j.useState(!1),{url:x,messagesPerField:C,isAppInitiatedAction:n}=t;return s.jsx(r,Object.assign({kcContext:t,i18n:a,doUseDefaultCss:o,classes:c,displayMessage:C.exists("global"),displayRequiredFields:!0,headerNode:l("updateEmailTitle")},{children:s.jsxs("form",Object.assign({id:"kc-update-email-form",className:e("kcFormClass"),action:x.loginAction,method:"post"},{children:[s.jsx(m,{kcContext:t,i18n:a,kcClsx:e,onIsFormSubmittableValueChange:p,doMakeUserConfirmPassword:d}),s.jsxs("div",Object.assign({className:e("kcFormGroupClass")},{children:[s.jsx("div",Object.assign({id:"kc-form-options",className:e("kcFormOptionsClass")},{children:s.jsx("div",{className:e("kcFormOptionsWrapperClass")})})),s.jsx(g,{kcClsx:e,i18n:a}),s.jsxs("div",Object.assign({id:"kc-form-buttons",className:e("kcFormButtonsClass")},{children:[s.jsx("input",{disabled:!k,className:e("kcButtonClass","kcButtonPrimaryClass",n&&"kcButtonBlockClass","kcButtonLargeClass"),type:"submit",value:u("doSubmit")}),n&&s.jsx("button",Object.assign({className:e("kcButtonClass","kcButtonDefaultClass","kcButtonLargeClass"),type:"submit",name:"cancel-aia",value:"true"},{children:l("doCancel")}))]}))]}))]}))}))}function g(i){const{kcClsx:t,i18n:a}=i,{msg:o}=a;return s.jsx("div",Object.assign({id:"kc-form-options",className:t("kcFormOptionsClass")},{children:s.jsx("div",Object.assign({className:t("kcFormOptionsWrapperClass")},{children:s.jsx("div",Object.assign({className:"checkbox"},{children:s.jsxs("label",{children:[s.jsx("input",{type:"checkbox",id:"logout-sessions",name:"logout-sessions",value:"on",defaultChecked:!0}),o("logoutOtherSessions")]})}))}))}))}export{O as default};
|
File diff suppressed because one or more lines are too long
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user