Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Importante
A partire dal 1° maggio 2025, Azure AD B2C non sarà più disponibile per l'acquisto per i nuovi clienti. Altre informazioni sono disponibili nelle domande frequenti.
Prima di iniziare, utilizza il selettore Scegli un tipo di criterio nella parte superiore di questa pagina per scegliere il tipo di criterio che si sta configurando. Azure Active Directory B2C offre due metodi per definire il modo in cui gli utenti interagiscono con le applicazioni: tramite flussi utente predefiniti o tramite criteri personalizzati completamente configurabili. I passaggi necessari in questo articolo sono diversi per ogni metodo.
La personalizzazione della lingua in Azure Active Directory B2C (Azure AD B2C) consente al flusso utente di adattarsi alle diverse lingue in base alle esigenze dei clienti. Microsoft fornisce le traduzioni per 36 lingue, ma è anche possibile fornire traduzioni personalizzate per qualsiasi lingua. Anche se l'esperienza viene fornita solo per una sola lingua, è possibile personalizzare qualsiasi testo nelle pagine.
Funzionamento della personalizzazione della lingua
È possibile usare la personalizzazione della lingua per selezionare le lingue in cui è disponibile il flusso utente. Dopo aver abilitato la funzionalità, è possibile specificare il parametro della stringa di query, ui_locales
, dall'applicazione. Quando si chiama Azure AD B2C, la pagina viene convertita nelle impostazioni locali indicate. Questo tipo di configurazione offre il controllo completo sulle lingue nel flusso utente e ignora le impostazioni della lingua del browser del cliente.
Potrebbe non essere necessario tale livello di controllo sulle lingue visualizzate dal cliente. Se non si specifica un ui_locales
parametro, l'esperienza del cliente dipende dalle impostazioni del browser. È comunque possibile controllare le lingue in cui viene tradotto il flusso utente aggiungendolo come lingua supportata. Se il browser di un cliente è impostato per mostrare una lingua che non si vuole supportare, viene invece visualizzata la lingua selezionata come impostazione predefinita nelle impostazioni cultura supportate.
- lingua specificata dalle impostazioni locali dell'interfaccia utente: dopo aver abilitato la personalizzazione della lingua, il flusso utente viene tradotto nella lingua specificata qui.
-
Lingua richiesta dal browser: se non è stato specificato alcun
ui_locales
parametro, il flusso utente viene tradotto nella lingua richiesta dal browser, se la lingua è supportata. - Lingua predefinita dei criteri: se il browser non specifica una lingua o ne specifica una non supportata, il flusso utente viene tradotto nella lingua predefinita del flusso utente.
Annotazioni
Se si usano attributi utente personalizzati, è necessario fornire traduzioni personalizzate. Per altre informazioni, vedere Personalizzare le stringhe.
Guardare questo video per informazioni su come localizzare o personalizzare la lingua usando Azure AD B2C.
La localizzazione richiede tre passaggi:
- Configurare l'elenco esplicito delle lingue supportate
- Fornire stringhe e raccolte specifiche del linguaggio
- Modificare la definizione del contenuto per la pagina.
Prerequisiti
- Creare un flusso utente in modo tale che gli utenti possano iscriversi e accedere all'applicazione.
- Registrare un'applicazione Web.
- Completare i passaggi descritti in Introduzione ai criteri personalizzati in Active Directory B2C. Questa esercitazione illustra come aggiornare i file di criteri personalizzati per usare la configurazione del tenant di Azure AD B2C.
- Registrare un'applicazione Web.
Lingue richieste di supporto per ui_locales
I criteri creati prima della disponibilità generale della personalizzazione della lingua devono prima abilitare questa funzionalità. Politiche e flussi utente che, dopo la loro creazione, hanno la personalizzazione della lingua abilitata per impostazione predefinita.
Quando si abilita la personalizzazione della lingua in un flusso utente, è possibile controllare la lingua del flusso utente aggiungendo il ui_locales
parametro .
- Nel tenant di Azure AD B2C selezionare Flussi utente.
- Fare clic sul flusso utente che si vuole abilitare per le traduzioni.
- Selezionare Lingue.
- Selezionare Abilita personalizzazione della lingua.
Selezionare quali lingue nel flusso utente sono abilitate
Abilitare un set di lingue in cui il flusso utente deve essere tradotto quando richiesto dal browser senza il ui_locales
parametro .
- Assicurati che, dalle istruzioni precedenti, il flusso utente abbia abilitato la personalizzazione della lingua.
- Nella pagina Lingue per il flusso utente selezionare una lingua che si vuole supportare.
- Nel riquadro delle proprietà impostare Abilitato su Sì.
- Selezionare Salva nella parte superiore del riquadro delle proprietà.
Annotazioni
Se non viene specificato un ui_locales
parametro, la pagina viene tradotta nella lingua del browser del cliente solo se è abilitata.
Personalizzazione delle stringhe
La personalizzazione della lingua consente di personalizzare qualsiasi stringa nel flusso utente.
- Assicurati che il flusso utente abbia la personalizzazione della lingua abilitata come indicato nelle istruzioni precedenti.
- Nella pagina Lingua del flusso utente selezionare la lingua che si vuole personalizzare.
- In File di risorse a livello di pagina selezionare la pagina da modificare.
- Selezionare Scarica impostazioni predefinite (o Scarica override se in precedenza si è già modificata questa lingua).
Questa procedura permette di ottenere un file JSON con cui iniziare a modificare le stringhe.
Modificare stringhe nella pagina
- In un editor JSON aprire il file JSON scaricato seguendo le istruzioni precedenti.
- Trovare l'elemento da modificare. È possibile trovare il valore
StringId
della stringa che si sta cercando o cercare l'attributoValue
che si vuole modificare. - Aggiornare l'attributo
Value
con i dati da visualizzare. - Per ogni stringa che si vuole modificare impostare
Override
sutrue
. - Salvare il file e caricare le modifiche. È possibile trovare il controllo di caricamento nella stessa posizione in cui è stato scaricato il file JSON.
Importante
Se è necessario eseguire l'override di una stringa, assicurarsi di impostare il Override
valore su true
. Se il valore non viene modificato, la voce sarà ignorata.
Cambiare gli attributi di estensione
Per modificare la stringa di un attributo utente personalizzato o aggiungerne uno al file JSON, usare il formato seguente:
{
"LocalizedStrings": [
{
"ElementType": "ClaimType",
"ElementId": "extension_<ExtensionAttribute>",
"StringId": "DisplayName",
"Override": true,
"Value": "<ExtensionAttributeValue>"
}
[...]
]
}
Sostituire <ExtensionAttribute>
con il nome dell'attributo utente personalizzato.
Sostituire <ExtensionAttributeValue>
con la nuova stringa da visualizzare.
Fornire un elenco di valori usando LocalizedCollections
Se si vuole specificare un elenco preimpostato di valori per le risposte, è necessario creare un attributo LocalizedCollections
.
LocalizedCollections
è una matrice di coppie Name
-Value
. L'ordine per gli elementi sarà l'ordine in cui vengono visualizzati. Per aggiungere LocalizedCollections
, usare il formato seguente:
{
"LocalizedStrings": [...],
"LocalizedCollections": [
{
"ElementType":"ClaimType",
"ElementId":"<UserAttribute>",
"TargetCollection":"Restriction",
"Override": true,
"Items":[
{
"Name":"<Response1>",
"Value":"<Value1>"
},
{
"Name":"<Response2>",
"Value":"<Value2>"
}
]
}
]
}
-
ElementId
è l'attributo utente per il quale l'attributoLocalizedCollections
rappresenta una risposta. -
Name
è il valore visualizzato all'utente. -
Value
è il valore restituito nell'attestazione quando questa opzione è selezionata.
Caricamento delle modifiche
- Dopo aver completato le modifiche apportate al file JSON, tornare al tenant B2C.
- Selezionare Flussi utente e fare clic sul flusso utente che si vuole abilitare per le traduzioni.
- Selezionare Lingue.
- Selezionare la lingua in cui si vuole tradurre.
- Selezionare la pagina in cui si desidera fornire traduzioni.
- Selezionare l'icona della cartella e selezionare il file JSON da caricare.
Le modifiche vengono salvate automaticamente nel flusso utente.
Personalizzare l'interfaccia utente della pagina usando la personalizzazione della lingua
Esistono due modi per localizzare il contenuto HTML. Un modo consiste nell'attivare la personalizzazione della lingua. L'abilitazione di questa funzionalità consente ad Azure AD B2C di inoltrare il parametro OpenID Connect, ui-locales
, all'endpoint. Il server di contenuto può usare questo parametro per fornire pagine HTML personalizzate specifiche della lingua.
In alternativa, è possibile eseguire il pull del contenuto da posizioni diverse in base alle impostazioni locali usate. Nell'endpoint abilitato per CORS è possibile configurare una struttura di cartelle per ospitare il contenuto per lingue specifiche. Se si usa il valore con caratteri jolly {Culture:RFC5646}
, si chiamerà quello corretto. Si supponga, ad esempio, che si tratti dell'URI di pagina personalizzato:
https://wingtiptoysb2c.blob.core.windows.net/{Culture:RFC5646}/wingtip/unified.html
È possibile caricare la pagina in fr
. Quando la pagina recupera il contenuto HTML e CSS, lo recupera da:
https://wingtiptoysb2c.blob.core.windows.net/fr/wingtip/unified.html
Aggiungere lingue personalizzate
È anche possibile aggiungere lingue per cui Microsoft attualmente non fornisce traduzioni. Sarà necessario fornire le traduzioni per tutte le stringhe nel flusso utente. I codici lingua e impostazioni locali sono limitati a quelli nello standard ISO 639-1. Il formato del codice delle impostazioni locali deve essere "ISO_639-1_code"-"CountryCode", ad esempio en-GB
. Per altre informazioni, vedere formati ID locali.
- Nel tenant di Azure AD B2C selezionare Flussi utente.
- Fare clic sul flusso utente in cui si desidera aggiungere lingue personalizzate e quindi fare clic su Lingue.
- Selezionare Aggiungi lingua personalizzata nella parte superiore della pagina.
- Nel riquadro di contesto visualizzato identificare la lingua per cui si forniscono le traduzioni immettendo un codice delle impostazioni locali valido.
- Per ogni pagina, è possibile scaricare un set di sostituzioni per l'inglese e lavorare sulle traduzioni.
- Dopo aver completato i file JSON, è possibile caricarli per ogni pagina.
- Selezionare Abilita e il flusso utente può ora visualizzare questa lingua per gli utenti.
- Salvare la lingua.
Importante
Prima di poter salvare, è necessario abilitare le lingue personalizzate o caricarne le sostituzioni.
Configurare l'elenco delle lingue supportate
Apri il file delle estensioni della tua policy. Ad esempio: SocialAndLocalAccounts/
TrustFrameworkExtensions.xml
.
- Cercare l'elemento BuildingBlocks. Se l'elemento non esiste, aggiungerlo.
- Aggiungere l'elemento
Localization
con le lingue supportate: inglese (impostazione predefinita) e spagnolo.
<Localization Enabled="true">
<SupportedLanguages DefaultLanguage="en" MergeBehavior="ReplaceAll">
<SupportedLanguage>en</SupportedLanguage>
<SupportedLanguage>es</SupportedLanguage>
</SupportedLanguages>
</Localization>
Specificare etichette specifiche della lingua
LocalizedResources dell'elemento contiene l'elenco Localization
di stringhe localizzate. L'elemento risorse localizzate ha un identificatore usato per identificare in modo univoco le risorse localizzate. Questo identificatore viene usato più avanti nell'elemento di definizione del contenuto .
È possibile configurare gli elementi delle risorse localizzate per la definizione del contenuto e qualsiasi lingua che si vuole supportare. Per personalizzare le pagine di iscrizione o di accesso unificate per l'inglese e lo spagnolo, aggiungere gli elementi seguenti LocalizedResources
dopo la chiusura dell'elemento </SupportedLanguages>
.
Annotazioni
Nell'esempio seguente è stato aggiunto il simbolo di cancelletto #
all'inizio di ogni riga, in modo da trovare facilmente le etichette localizzate sullo schermo.
<!--Local account sign-up or sign-in page English-->
<Localization Enabled="true">
...
<LocalizedResources Id="api.signuporsignin.en">
<LocalizedStrings>
<LocalizedString ElementType="ClaimType" ElementId="signInName" StringId="DisplayName">Email Address</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="heading">Sign in</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="social_intro">Sign in with your social account</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="local_intro_generic">Sign in with your {0}</LocalizedString>
<LocalizedString ElementType="ClaimType" ElementId="password" StringId="DisplayName">Password</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="requiredField_password">Please enter your password</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="requiredField_generic">Please enter your {0}</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="invalid_generic">Please enter a valid {0}</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="createaccount_one_link">Sign up now</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="createaccount_two_links">Sign up with {0} or {1}</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="createaccount_three_links">Sign up with {0}, {1}, or {2}</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="forgotpassword_link">Forgot your password?</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="button_signin">Sign in</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="divider_title">OR</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="createaccount_intro">Don't have an account?</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="unknown_error">We are having trouble signing you in. Please try again later.</LocalizedString>
<!-- Uncomment the remember_me only if the keep me signed in is activated.
<LocalizedString ElementType="UxElement" StringId="remember_me">Keep me signed in</LocalizedString> -->
<LocalizedString ElementType="ClaimsProvider" StringId="FacebookExchange">Facebook</LocalizedString>
<LocalizedString ElementType="ErrorMessage" StringId="ResourceOwnerFlowInvalidCredentials">Your password is incorrect.</LocalizedString>
<LocalizedString ElementType="ErrorMessage" StringId="UserMessageIfInvalidPassword">Your password is incorrect.</LocalizedString>
<LocalizedString ElementType="ErrorMessage" StringId="UserMessageIfPasswordExpired">Your password has expired.</LocalizedString>
<LocalizedString ElementType="ErrorMessage" StringId="UserMessageIfClaimsPrincipalDoesNotExist">We can't seem to find your account.</LocalizedString>
<LocalizedString ElementType="ErrorMessage" StringId="UserMessageIfOldPasswordUsed">Looks like you used an old password.</LocalizedString>
<LocalizedString ElementType="ErrorMessage" StringId="DefaultMessage">Invalid username or password.</LocalizedString>
<LocalizedString ElementType="ErrorMessage" StringId="UserMessageIfUserAccountDisabled">Your account has been locked. Contact your support person to unlock it, then try again.</LocalizedString>
<LocalizedString ElementType="ErrorMessage" StringId="UserMessageIfUserAccountLocked">Your account is temporarily locked to prevent unauthorized use. Try again later.</LocalizedString>
<LocalizedString ElementType="ErrorMessage" StringId="AADRequestsThrottled">There are too many requests at this moment. Please wait for some time and try again.</LocalizedString>
</LocalizedStrings>
</LocalizedResources>
<!--Local account sign-up or sign-in page Spanish-->
<LocalizedResources Id="api.signuporsignin.es">
<LocalizedStrings>
<LocalizedString ElementType="UxElement" StringId="logonIdentifier_email">#Correo electrónico</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="requiredField_email">#Este campo es obligatorio</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="logonIdentifier_username">#Nombre de usuario</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="password">#Contraseña</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="createaccount_link">#Registrarse ahora</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="requiredField_username">#Escriba su nombre de usuario</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="createaccount_intro">#¿No tiene una cuenta?</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="forgotpassword_link">#¿Olvidó su contraseña?</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="divider_title">#O</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="cancel_message">#El usuario ha olvidado su contraseña</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="button_signin">#Iniciar sesión</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="social_intro">#Iniciar sesión con su cuenta de redes sociales</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="requiredField_password">#Escriba su contraseña</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="invalid_password">#La contraseña que ha escrito no está en el formato esperado.</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="local_intro_username">#Iniciar sesión con su nombre de usuario</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="local_intro_email">#Iniciar sesión con su cuenta existente</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="invalid_email">#Escriba una dirección de correo electrónico válida</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="unknown_error">#Tenemos problemas para iniciar su sesión. Vuelva a intentarlo más tarde. </LocalizedString>
<LocalizedString ElementType="UxElement" StringId="email_pattern">^[a-zA-Z0-9.!#$%&'^_`\{\}~\-]+@[a-zA-Z0-9\-]+(?:\.[a-zA-Z0-9\-]+)*$</LocalizedString>
<LocalizedString ElementType="ErrorMessage" StringId="UserMessageIfInvalidPassword">#Su contraseña es incorrecta.</LocalizedString>
<LocalizedString ElementType="ErrorMessage" StringId="UserMessageIfClaimsPrincipalDoesNotExist">#Parece que no podemos encontrar su cuenta.</LocalizedString>
<LocalizedString ElementType="ErrorMessage" StringId="UserMessageIfOldPasswordUsed">#Parece que ha usado una contraseña antigua.</LocalizedString>
<LocalizedString ElementType="ErrorMessage" StringId="DefaultMessage">#El nombre de usuario o la contraseña no son válidos.</LocalizedString>
<LocalizedString ElementType="ErrorMessage" StringId="UserMessageIfUserAccountDisabled">#Se bloqueó su cuenta. Póngase en contacto con la persona responsable de soporte técnico para desbloquearla y vuelva a intentarlo.</LocalizedString>
<LocalizedString ElementType="ErrorMessage" StringId="UserMessageIfUserAccountLocked">#Su cuenta se bloqueó temporalmente para impedir un uso no autorizado. Vuelva a intentarlo más tarde.</LocalizedString>
<LocalizedString ElementType="ErrorMessage" StringId="AADRequestsThrottled">#Hay demasiadas solicitudes en este momento. Espere un momento y vuelva a intentarlo.</LocalizedString>
</LocalizedStrings>
</LocalizedResources>
<!--Local account sign-up page English-->
<LocalizedResources Id="api.localaccountsignup.en">
<LocalizedStrings>
<LocalizedString ElementType="ClaimType" ElementId="email" StringId="DisplayName">#Email Address</LocalizedString>
<LocalizedString ElementType="ClaimType" ElementId="email" StringId="UserHelpText">#Email address that can be used to contact you.</LocalizedString>
<LocalizedString ElementType="ClaimType" ElementId="email" StringId="PatternHelpText">#Please enter a valid email address.</LocalizedString>
<LocalizedString ElementType="ClaimType" ElementId="newPassword" StringId="DisplayName">#New Password</LocalizedString>
<LocalizedString ElementType="ClaimType" ElementId="newPassword" StringId="UserHelpText">#Enter new password</LocalizedString>
<LocalizedString ElementType="ClaimType" ElementId="newPassword" StringId="PatternHelpText">#8-16 characters, containing 3 out of 4 of the following: Lowercase characters, uppercase characters, digits (0-9), and one or more of the following symbols: @ # $ % ^ & * - _ + = [ ] { } | \ : ' , ? / ` ~ " ( ) ; .</LocalizedString>
<LocalizedString ElementType="ClaimType" ElementId="reenterPassword" StringId="DisplayName">#Confirm New Password</LocalizedString>
<LocalizedString ElementType="ClaimType" ElementId="reenterPassword" StringId="UserHelpText">#Confirm new password</LocalizedString>
<LocalizedString ElementType="ClaimType" ElementId="reenterPassword" StringId="PatternHelpText">#8-16 characters, containing 3 out of 4 of the following: Lowercase characters, uppercase characters, digits (0-9), and one or more of the following symbols: @ # $ % ^ & * - _ + = [ ] { } | \ : ' , ? / ` ~ " ( ) ; .</LocalizedString>
<LocalizedString ElementType="ClaimType" ElementId="displayName" StringId="DisplayName">#Display Name</LocalizedString>
<LocalizedString ElementType="ClaimType" ElementId="displayName" StringId="UserHelpText">#Your display name.</LocalizedString>
<LocalizedString ElementType="ClaimType" ElementId="surname" StringId="DisplayName">#Surname</LocalizedString>
<LocalizedString ElementType="ClaimType" ElementId="surname" StringId="UserHelpText">#Your surname (also known as family name or last name). </LocalizedString>
<LocalizedString ElementType="ClaimType" ElementId="givenName" StringId="DisplayName">#Given Name</LocalizedString>
<LocalizedString ElementType="ClaimType" ElementId="givenName" StringId="UserHelpText">#Your given name (also known as first name).</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="button_continue">#Create</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="error_fieldIncorrect">#One or more fields are filled out incorrectly. Please check your entries and try again.</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="error_passwordEntryMismatch">#The password entry fields do not match. Please enter the same password in both fields and try again.</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="error_requiredFieldMissing">#A required field is missing. Please fill out all required fields and try again.</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="helplink_text">#What is this?</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="initial_intro">#Please provide the following details.</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="preloader_alt">#Please wait</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="required_field">#This information is required.</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="ver_but_edit">#Change e-mail</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="ver_but_resend">#Send new code</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="ver_but_send">#Send verification code</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="ver_but_verify">#Verify code</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="ver_fail_code_expired">#That code is expired. Please request a new code.</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="ver_fail_no_retry">#You've made too many incorrect attempts. Please try again later.</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="ver_fail_retry">#That code is incorrect. Please try again.</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="ver_fail_server">#We are having trouble verifying your email address. Please enter a valid email address and try again.</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="ver_fail_throttled">#There have been too many requests to verify this email address. Please wait a while, then try again.</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="ver_info_msg">#Verification code has been sent to your inbox. Please copy it to the input box below.</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="ver_input">#Verification code</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="ver_intro_msg">#Verification is necessary. Please click Send button.</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="ver_success_msg">#E-mail address verified. You can now continue.</LocalizedString>
<LocalizedString ElementType="ErrorMessage" StringId="ServiceThrottled">#There are too many requests at this moment. Please wait for some time and try again.</LocalizedString>
<LocalizedString ElementType="ErrorMessage" StringId="UserMessageIfClaimNotVerified">#Claim not verified: {0}</LocalizedString>
<LocalizedString ElementType="ErrorMessage" StringId="UserMessageIfClaimsPrincipalAlreadyExists">#A user with the specified ID already exists. Please choose a different one.</LocalizedString>
<LocalizedString ElementType="ErrorMessage" StringId="UserMessageIfIncorrectPattern">#Incorrect pattern for: {0}</LocalizedString>
<LocalizedString ElementType="ErrorMessage" StringId="UserMessageIfInvalidInput">#{0} has invalid input.</LocalizedString>
<LocalizedString ElementType="ErrorMessage" StringId="UserMessageIfMissingRequiredElement">#Missing required element: {0}</LocalizedString>
<LocalizedString ElementType="ErrorMessage" StringId="UserMessageIfValidationError">#Error in validation by: {0}</LocalizedString>
</LocalizedStrings>
</LocalizedResources>
<!--Local account sign-up page Spanish-->
<LocalizedResources Id="api.localaccountsignup.es">
<LocalizedStrings>
<LocalizedString ElementType="ClaimType" ElementId="email" StringId="DisplayName">#Dirección de correo electrónico</LocalizedString>
<LocalizedString ElementType="ClaimType" ElementId="email" StringId="UserHelpText">#Dirección de correo electrónico que puede usarse para ponerse en contacto con usted.</LocalizedString>
<LocalizedString ElementType="ClaimType" ElementId="email" StringId="PatternHelpText">#Introduzca una dirección de correo electrónico válida. </LocalizedString>
<LocalizedString ElementType="ClaimType" ElementId="newPassword" StringId="DisplayName">#Nueva contraseña</LocalizedString>
<LocalizedString ElementType="ClaimType" ElementId="newPassword" StringId="UserHelpText">#Escriba la contraseña nueva</LocalizedString>
<LocalizedString ElementType="ClaimType" ElementId="newPassword" StringId="PatternHelpText">#De 8 a 16 caracteres, que contengan 3 de los 4 tipos siguientes: caracteres en minúsculas, caracteres en mayúsculas, dígitos (0-9) y uno o más de los siguientes símbolos: @ # $ % ^ & * - _ + = [ ] { } | \\ : ' , ? / ` ~ \" ( ) ; .</LocalizedString>
<LocalizedString ElementType="ClaimType" ElementId="reenterPassword" StringId="DisplayName">#Confirmar nueva contraseña</LocalizedString>
<LocalizedString ElementType="ClaimType" ElementId="reenterPassword" StringId="UserHelpText">#Confirmar nueva contraseña</LocalizedString>
<LocalizedString ElementType="ClaimType" ElementId="reenterPassword" StringId="PatternHelpText">#8 a 16 caracteres, que contengan 3 de los 4 tipos siguientes: caracteres en minúsculas, caracteres en mayúsculas, dígitos (0-9) y uno o más de los siguientes símbolos: @ # $ % ^ & * - _ + = [ ] { } | \\ : ' , ? / ` ~ \" ( ) ; .</LocalizedString>
<LocalizedString ElementType="ClaimType" ElementId="displayName" StringId="DisplayName">#Nombre para mostrar</LocalizedString>
<LocalizedString ElementType="ClaimType" ElementId="displayName" StringId="UserHelpText">#Su nombre para mostrar.</LocalizedString>
<LocalizedString ElementType="ClaimType" ElementId="surname" StringId="DisplayName">#Apellido</LocalizedString>
<LocalizedString ElementType="ClaimType" ElementId="surname" StringId="UserHelpText">#Su apellido.</LocalizedString>
<LocalizedString ElementType="ClaimType" ElementId="givenName" StringId="DisplayName">#Nombre</LocalizedString>
<LocalizedString ElementType="ClaimType" ElementId="givenName" StringId="UserHelpText">#Su nombre (también conocido como nombre de pila).</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="button_continue">#Crear</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="error_fieldIncorrect">#Hay uno o varios campos rellenados de forma incorrecta. Compruebe las entradas y vuelva a intentarlo.</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="error_passwordEntryMismatch">#Los campos de entrada de contraseña no coinciden. Escriba la misma contraseña en ambos campos y vuelva a intentarlo.</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="error_requiredFieldMissing">#Falta un campo obligatorio. Rellene todos los campos necesarios y vuelva a intentarlo.</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="helplink_text">#¿Qué es esto?</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="initial_intro">#Proporcione los siguientes detalles.</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="preloader_alt">#Espere</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="required_field">#Esta información es obligatoria.</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="ver_but_edit">#Cambiar correo electrónico</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="ver_but_resend">#Enviar nuevo código</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="ver_but_send">#Enviar código de comprobación</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="ver_but_verify">#Comprobar código</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="ver_fail_code_expired">#El código ha expirado. Solicite otro nuevo.</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="ver_fail_no_retry">#Ha realizado demasiados intentos incorrectos. Vuelva a intentarlo más tarde.</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="ver_fail_retry">#Ese código es incorrecto. Inténtelo de nuevo.</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="ver_fail_server">#Tenemos problemas para comprobar la dirección de correo electrónico. Escriba una dirección de correo electrónico válida y vuelva a intentarlo.</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="ver_fail_throttled">#Ha habido demasiadas solicitudes para comprobar esta dirección de correo electrónico. Espere un poco y vuelva a intentarlo.</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="ver_info_msg">#Se ha enviado el código de verificación a su Bandeja de entrada. Cópielo en el siguiente cuadro de entrada.</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="ver_input">#Código de verificación</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="ver_intro_msg">#La comprobación es obligatoria. Haga clic en el botón Enviar.</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="ver_success_msg">#Dirección de correo electrónico comprobada. Puede continuar.</LocalizedString>
<LocalizedString ElementType="ErrorMessage" StringId="ServiceThrottled">#Hay demasiadas solicitudes en este momento. Espere un momento y vuelva a intentarlo.</LocalizedString>
<LocalizedString ElementType="ErrorMessage" StringId="UserMessageIfClaimNotVerified">#Reclamación no comprobada: {0}</LocalizedString>
<LocalizedString ElementType="ErrorMessage" StringId="UserMessageIfClaimsPrincipalAlreadyExists">#Ya existe un usuario con el id. especificado. Elija otro diferente.</LocalizedString>
<LocalizedString ElementType="ErrorMessage" StringId="UserMessageIfIncorrectPattern">#Patrón incorrecto para: {0}</LocalizedString>
<LocalizedString ElementType="ErrorMessage" StringId="UserMessageIfInvalidInput">#{0} tiene una entrada no válida.</LocalizedString>
<LocalizedString ElementType="ErrorMessage" StringId="UserMessageIfMissingRequiredElement">#Falta un elemento obligatorio: {0}</LocalizedString>
<LocalizedString ElementType="ErrorMessage" StringId="UserMessageIfValidationError">#Error en la validación de: {0}</LocalizedString>
</LocalizedStrings>
</LocalizedResources>
</Localization>
Modificare la definizione del contenuto con la localizzazione
Incollare l'intero contenuto dell'elemento ContentDefinitions copiato come elemento figlio dell'elemento BuildingBlocks.
Nell'esempio seguente, le stringhe personalizzate inglese (en) e spagnolo (es) vengono aggiunte alla pagina di iscrizione o di accesso e alla pagina di iscrizione dell'account locale. LocalizedResourcesReferenceId per ogni LocalizedResourcesReference corrisponde alle impostazioni locali, ma è possibile usare qualsiasi stringa come identificatore. Per ogni combinazione di lingua e pagina, si fa riferimento all'oggetto LocalizedResources corrispondente creato in precedenza.
<ContentDefinitions>
<ContentDefinition Id="api.signuporsignin">
<LocalizedResourcesReferences MergeBehavior="Prepend">
<LocalizedResourcesReference Language="en" LocalizedResourcesReferenceId="api.signuporsignin.en" />
<LocalizedResourcesReference Language="es" LocalizedResourcesReferenceId="api.signuporsignin.es" />
</LocalizedResourcesReferences>
</ContentDefinition>
<ContentDefinition Id="api.localaccountsignup">
<LocalizedResourcesReferences MergeBehavior="Prepend">
<LocalizedResourcesReference Language="en" LocalizedResourcesReferenceId="api.localaccountsignup.en" />
<LocalizedResourcesReference Language="es" LocalizedResourcesReferenceId="api.localaccountsignup.es" />
</LocalizedResourcesReferences>
</ContentDefinition>
</ContentDefinitions>
Caricare e testare i criteri personalizzati aggiornati
Caricare i criteri personalizzati
- Salvare il file delle estensioni.
- Se si dispone dell'accesso a più tenant, selezionare l'icona Impostazioni nel menu superiore per passare al tenant di Azure AD B2C dal menu Directory + sottoscrizioni.
- Cerca e seleziona Azure AD B2C.
- Sotto Politiche, selezionare Identity Experience Framework.
- Selezionare Carica criteri personalizzati.
- Caricare il file delle estensioni modificato in precedenza.
Testare i criteri personalizzati usando Esegui ora
- Selezionare la politica caricata e quindi selezionare Esegui adesso.
- Dovrebbe essere possibile visualizzare la pagina di iscrizione o accesso localizzata.
- Fare clic sul collegamento di iscrizione e si dovrebbe essere in grado di visualizzare la pagina di iscrizione localizzata.
- Passare alla lingua predefinita del browser in spagnolo. È possibile aggiungere il parametro della stringa di query
ui_locales
alla richiesta di autorizzazione. Per esempio:
https://<tenant-name>.b2clogin.com/<tenant-name>.onmicrosoft.com/B2C_1A_signup_signin/oauth2/v2.0/authorize&client_id=00001111-aaaa-2222-bbbb-3333cccc4444&nonce=defaultNonce&redirect_uri=https%3A%2F%2Fjwt.ms&scope=openid&response_type=id_token&prompt=login&ui_locales=es
Informazioni aggiuntive
Etichette di personalizzazione dell'interfaccia utente della pagina come sostituzioni
Quando si abilita la personalizzazione della lingua, le modifiche precedenti apportate alle etichette usando la personalizzazione dell'interfaccia utente della pagina vengono rese persistenti in un file JSON per la lingua Inglese (en). È possibile continuare a modificare le etichette e le altre stringhe caricando le risorse di lingua nella funzionalità di personalizzazione della lingua.
Traduzioni aggiornate
Microsoft si impegna a fornire le traduzioni più aggiornate. Continuerà a migliorare le traduzioni e a garantirne la conformità. Microsoft identificherà bug e modifiche nella terminologia globale e renderà gli aggiornamenti che funzioneranno senza problemi nel flusso utente.
Supporto per lingue da destra a sinistra
Microsoft attualmente non fornisce supporto per le lingue da destra a sinistra. A tale scopo, è possibile usare impostazioni locali personalizzate e usare CSS per modificare la modalità di visualizzazione delle stringhe. Se è necessaria questa funzionalità, votarla in Commenti e suggerimenti su Azure.
Traduzioni per provider di identità basati su social network
Microsoft fornisce il parametro OIDC ui_locales
per gli account di accesso ai social network, che però non viene riconosciuto da alcuni provider di identità basati su social network, tra cui Facebook e Google.
Comportamento dei browser
Microsoft Edge, Chrome e Firefox richiedono la lingua impostata. Se si tratta di una lingua supportata, viene visualizzata prima dell'impostazione predefinita.
Lingue disponibili
Azure AD B2C include il supporto per le lingue seguenti usando codici ISO 639-1. Le lingue del flusso utente vengono fornite da Azure AD B2C. I linguaggi di notifica di autenticazione a più fattori sono forniti dall'autenticazione a più fattori di Microsoft Entra.
Lingua | Codice lingua | Flussi utenti | Notifiche MFA |
---|---|---|---|
Arabo | Ar |
![]() |
![]() |
Bulgaro | Bg |
![]() |
![]() |
Bengalese | Bn |
![]() |
![]() |
Catalano | circa |
![]() |
![]() |
Ceco | Cs |
![]() |
![]() |
Danese | da |
![]() |
![]() |
Tedesco | de |
![]() |
![]() |
Greco | El |
![]() |
![]() |
Inglese | En |
![]() |
![]() |
Spagnolo | ES |
![]() |
![]() |
Estone | Et |
![]() |
![]() |
Basco | UE |
![]() |
![]() |
Finlandese | Fi |
![]() |
![]() |
Francese | Fr |
![]() |
![]() |
Galiziano | Gl |
![]() |
![]() |
Gujarati | gu |
![]() |
![]() |
Ebraico | lui |
![]() |
![]() |
hindi | ciao |
![]() |
![]() |
Croato | ora |
![]() |
![]() |
Ungherese | Hu |
![]() |
![]() |
Indonesiano | Id |
![]() |
![]() |
Italiano | esso |
![]() |
![]() |
Giapponese | Ja |
![]() |
![]() |
Kazako | okay |
![]() |
![]() |
Kannada | Kn |
![]() |
![]() |
Coreano | Ko |
![]() |
![]() |
Lituano | litri |
![]() |
![]() |
Lettone | Lv |
![]() |
![]() |
Malayalam | Ml |
![]() |
![]() |
Marathi | signor |
![]() |
![]() |
Malese | ms |
![]() |
![]() |
Norvegese Bokmål | Nb |
![]() |
![]() |
Olandese | Nl |
![]() |
![]() |
Norvegese | No |
![]() |
![]() |
Punjabi | papà |
![]() |
![]() |
Polacco | Pl |
![]() |
![]() |
Portoghese - Brasile | pt-br |
![]() |
![]() |
Portoghese - Portogallo | pt-pt |
![]() |
![]() |
Rumeno | Ro |
![]() |
![]() |
Russo | Ru |
![]() |
![]() |
Slovacco | Sk |
![]() |
![]() |
Sloveno | Sl |
![]() |
![]() |
Serbo - Alfabeto cirillico | sr-cryl-cs |
![]() |
![]() |
Serbo - latino | sr-latn-cs |
![]() |
![]() |
Svedese | Sv |
![]() |
![]() |
Tamil | grazie |
![]() |
![]() |
Telugu | te |
![]() |
![]() |
Tailandese | giovedì |
![]() |
![]() |
Turco | Tr |
![]() |
![]() |
Ucraino | Regno Unito |
![]() |
![]() |
Vietnamita | vi |
![]() |
![]() |
Gallese | Cy |
![]() |
![]() |
Cinese - Semplificato | zh-hans |
![]() |
![]() |
Cinese - Tradizionale | zh-hant |
![]() |
![]() |
Passaggi successivi
Altre informazioni su come personalizzare l'interfaccia utente delle applicazioni in Personalizzare l'interfaccia utente dell'applicazione in Azure Active Directory B2C.
- Altre informazioni sull'elemento di localizzazione sono disponibili nelle informazioni di riferimento su IEF.
- Vedere l'elenco degli ID stringa di localizzazione disponibili in Azure AD B2C.