Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Importante
A partir del 1 de mayo de 2025, Azure AD B2C ya no estará disponible para la compra por parte de nuevos clientes. Obtenga más información en nuestras preguntas más frecuentes.
Nota:
En Azure Active Directory B2C, las directivas personalizadas se han diseñado principalmente para abordar escenarios complejos. Para la mayoría de los escenarios, se recomienda usar flujos de usuario integrados. Si no lo ha hecho, obtenga información sobre el paquete de inicio de directivas personalizadas en Introducción a las directivas personalizadas en Active Directory B2C.
El elemento Localization permite admitir varias configuraciones regionales o idiomas en la política para los recorridos del usuario. El soporte de localización en las políticas le permite:
- Configure la lista explícita de los idiomas admitidos en una política y elija un idioma predeterminado.
- Proporcione cadenas y colecciones específicas del idioma.
<Localization Enabled="true">
<SupportedLanguages DefaultLanguage="en" MergeBehavior="ReplaceAll">
<SupportedLanguage>en</SupportedLanguage>
<SupportedLanguage>es</SupportedLanguage>
</SupportedLanguages>
<LocalizedResources Id="api.localaccountsignup.en">
<LocalizedResources Id="api.localaccountsignup.es">
...
El elemento Localization contiene los siguientes atributos:
| Atributo | Obligatorio | Descripción |
|---|---|---|
| Activado | No | Valores posibles: true o false. |
El elemento Localization contiene los siguientes elementos XML
| Elemento | Repeticiones | Descripción |
|---|---|---|
| Idiomas admitidos | 1:n | Lista de idiomas admitidos. |
| Recursos localizados | 0:n | Lista de recursos localizados. |
Idiomas admitidos
El elemento SupportedLanguages contiene los siguientes atributos:
| Atributo | Obligatorio | Descripción |
|---|---|---|
| DefaultLanguage | Sí | El idioma que se utilizará como predeterminado para los recursos localizados. |
| MergeBehavior (Comportamiento de fusión) | No | Valores de enumeración de valores que se combinan con cualquier ClaimType presente en una directiva primaria con el mismo identificador. Utilice este atributo cuando sobrescriba una notificación especificada en la directiva base. Valores posibles: Append, Prepend o ReplaceAll. El Append valor especifica que la colección de datos presentes debe anexarse al final de la recopilación especificada en la directiva principal. El Prepend valor especifica que la recopilación de datos presentes debe agregarse antes de la recopilación especificada en la política principal. El ReplaceAll valor especifica que se debe omitir la recopilación de datos definida en la política principal, utilizando en su lugar los datos definidos en la política actual. |
Idiomas admitidos
El elemento SupportedLanguages contiene los siguientes elementos:
| Elemento | Repeticiones | Descripción |
|---|---|---|
| SupportedLanguage | 1:n | Muestra el contenido que se ajusta a una etiqueta de idioma según RFC 5646 - Etiquetas para identificar idiomas. |
Recursos localizados
El elemento LocalizedResources contiene los siguientes atributos:
| Atributo | Obligatorio | Descripción |
|---|---|---|
| Identificación | Sí | Identificador que se utiliza para identificar de forma única los recursos localizados. |
El elemento LocalizedResources contiene los siguientes elementos:
| Elemento | Repeticiones | Descripción |
|---|---|---|
| LocalizedCollections | 0:n | Define colecciones enteras en varias culturas. Una colección puede tener un número diferente de elementos y cadenas diferentes para varias referencias culturales. Entre los ejemplos de colecciones se incluyen las enumeraciones que aparecen en los tipos de notificación. Por ejemplo, una lista de países o regiones se muestra al usuario en una lista desplegable. |
| LocalizedStrings | 0:n | Define todas las cadenas, excepto las cadenas que aparecen en colecciones, en varias referencias culturales. |
LocalizedCollections
El elemento LocalizedCollections contiene los siguientes elementos:
| Elemento | Repeticiones | Descripción |
|---|---|---|
| LocalizedCollection | 1:n | Lista de idiomas admitidos. |
LocalizedCollection
El elemento LocalizedCollection contiene los siguientes atributos:
| Atributo | Obligatorio | Descripción |
|---|---|---|
| ElementType (Tipo de elemento) | Sí | Hace referencia a un elemento ClaimType o a un elemento de interfaz de usuario en el archivo de directiva. |
| ElementId | Sí | Cadena que contiene una referencia a un tipo de notificación ya definido en la sección ClaimsSchema que se usa si ElementType se establece en ClaimType. |
| TargetCollection | Sí | La colección de destino. |
El elemento LocalizedCollection contiene los siguientes elementos:
| Elemento | Repeticiones | Descripción |
|---|---|---|
| Elemento | 0:n | Define una opción disponible para que el usuario seleccione una notificación en la interfaz de usuario, como un valor en una lista desplegable. |
El elemento Item contiene los siguientes atributos:
| Atributo | Obligatorio | Descripción |
|---|---|---|
| Mensaje de texto | Sí | La cadena de visualización fácil de usar que se debe mostrar al usuario en la interfaz de usuario para esta opción. |
| Importancia | Sí | Valor de notificación de cadena asociado a la selección de esta opción. |
| SeleccionePorPredeterminado | No | Indica si esta opción se puede seleccionar o no de forma predeterminada en la interfaz de usuario. Valores posibles: True o False. |
En el ejemplo siguiente se muestra el uso del elemento LocalizedCollections . Contiene dos elementos LocalizedCollection , uno para inglés y otro para español. Ambos establecen la colección Restriction de la notificación Gender con una lista de elementos para inglés y español. Para obtener más muestras, consulte la Demo en directo de enumeración de restricciones de notificación.
<LocalizedResources Id="api.selfasserted.en">
<LocalizedCollections>
<LocalizedCollection ElementType="ClaimType" ElementId="Gender" TargetCollection="Restriction">
<Item Text="Female" Value="F" />
<Item Text="Male" Value="M" />
</LocalizedCollection>
</LocalizedCollections>
</LocalizedResources>
<LocalizedResources Id="api.selfasserted.es">
<LocalizedCollections>
<LocalizedCollection ElementType="ClaimType" ElementId="Gender" TargetCollection="Restriction">
<Item Text="Femenino" Value="F" />
<Item Text="Masculino" Value="M" />
</LocalizedCollection>
</LocalizedCollections>
</LocalizedResources>
LocalizedStrings
El elemento LocalizedStrings contiene los siguientes elementos:
| Elemento | Repeticiones | Descripción |
|---|---|---|
| LocalizedString | 1:n | Cadena traducida. |
El elemento LocalizedString contiene los siguientes atributos:
| Atributo | Obligatorio | Descripción |
|---|---|---|
| ElementType (Tipo de elemento) | Sí | Valores posibles: ClaimsProvider, ClaimType, ErrorMessage, GetLocalizedStringsTransformationClaimType, FormatLocalizedStringTransformationClaimType, Predicate, PredicateValidation o UxElement. |
| ElementId | Sí | Si ElementType se establece en ClaimType, Predicateo PredicateValidation, este elemento contiene una referencia a un tipo de notificación ya definido en la sección ClaimsSchema. |
| StringId | Sí | Si ElementType se establece en ClaimType, este elemento contiene una referencia a un atributo de un tipo de notificación. Valores posibles: DisplayName, AdminHelpText o PatternHelpText. El DisplayName valor se usa para establecer el nombre para mostrar de la notificación. El AdminHelpText valor se usa para establecer el nombre del texto de ayuda del usuario de notificación. El PatternHelpText valor se usa para establecer el texto de ayuda del patrón de notificación. Si ElementType se establece en UxElement, este elemento contiene una referencia a un atributo de un elemento de la interfaz de usuario. Si ElementType se establece en ErrorMessage, este elemento especifica el identificador de un mensaje de error. Consulte Identificadores de cadena de localización para obtener una lista completa de los UxElement identificadores. |
ElementType (Tipo de elemento)
Referencia ElementType a un tipo de notificación, una transformación de notificación o un elemento de interfaz de usuario de la directiva que se va a localizar.
| Elemento a localizar | ElementType (Tipo de elemento) | ElementId | StringId |
|---|---|---|---|
| Nombre del proveedor de identidades | ClaimsProvider |
El identificador del elemento ClaimsExchange | |
| Atributos de tipo de notificación | ClaimType |
Nombre del tipo de notificación | Atributo de la notificación que se va a localizar. Valores posibles: AdminHelpText, DisplayName, PatternHelpTexty UserHelpText. |
| Mensaje de error | ErrorMessage |
El ID del mensaje de error | |
| Copia las cadenas localizadas en notificaciones | GetLocalizedStringsTransformationClaimType |
El nombre de la notificación de salida | |
| Mensaje de usuario de predicado | Predicate |
El nombre del predicado | Atributo del predicado que se va a localizar. Valores posibles: HelpText. |
| Mensaje de usuario del grupo de predicados | PredicateValidation |
Id. del elemento PredicateValidation. | Identificador del elemento PredicateGroup. El grupo de predicados debe ser un elemento secundario del elemento de validación de predicados, tal como se define en ElementId. |
| Elementos de la interfaz de usuario | UxElement |
Id. del elemento de la interfaz de usuario que se va a localizar. | |
| Control de pantalla | DisplayControl |
Id. del control de pantalla. | Id. del elemento de la interfaz de usuario que se va a localizar. |
Ejemplos
ClaimsProvider (Proveedor de reclamaciones)
El valor ClaimsProvider se usa para localizar el nombre para mostrar de uno de los proveedores de notificaciones.
<OrchestrationStep Order="2" Type="ClaimsExchange">
...
<ClaimsExchanges>
<ClaimsExchange Id="FacebookExchange" TechnicalProfileReferenceId="Facebook-OAUTH" />
<ClaimsExchange Id="GoogleExchange" TechnicalProfileReferenceId="Google-OAUTH" />
<ClaimsExchange Id="LinkedInExchange" TechnicalProfileReferenceId="LinkedIn-OAUTH" />
</ClaimsExchanges>
</OrchestrationStep>
En el ejemplo siguiente se muestra cómo localizar el nombre para mostrar de los proveedores de notificaciones.
<LocalizedString ElementType="ClaimsProvider" StringId="FacebookExchange">Facebook</LocalizedString>
<LocalizedString ElementType="ClaimsProvider" StringId="GoogleExchange">Google</LocalizedString>
<LocalizedString ElementType="ClaimsProvider" StringId="LinkedInExchange">LinkedIn</LocalizedString>
Tipo de Reclamación
El valor ClaimType se usa para localizar uno de los atributos de notificación.
<ClaimType Id="email">
<DisplayName>Email Address</DisplayName>
<DataType>string</DataType>
<UserHelpText>Email address that can be used to contact you.</UserHelpText>
<UserInputType>TextBox</UserInputType>
</ClaimType>
En el ejemplo siguiente se muestra cómo localizar los atributos DisplayName, UserHelpText y PatternHelpText del tipo de notificación de correo electrónico.
<LocalizedString ElementType="ClaimType" ElementId="email" StringId="DisplayName">Email</LocalizedString>
<LocalizedString ElementType="ClaimType" ElementId="email" StringId="UserHelpText">Please enter your email</LocalizedString>
<LocalizedString ElementType="ClaimType" ElementId="email" StringId="PatternHelpText">Please enter a valid email address</LocalizedString>
Mensaje de error
El valor ErrorMessage se utiliza para localizar uno de los mensajes de error del sistema.
<TechnicalProfile Id="AAD-UserWriteUsingAlternativeSecurityId">
<Metadata>
<Item Key="RaiseErrorIfClaimsPrincipalAlreadyExists">true</Item>
<Item Key="UserMessageIfClaimsPrincipalAlreadyExists">You are already registered, please press the back button and sign in instead.</Item>
</Metadata>
...
</TechnicalProfile>
En el ejemplo siguiente se muestra cómo localizar el mensaje de error UserMessageIfClaimsPrincipalAlreadyExists.
<LocalizedString ElementType="ErrorMessage" StringId="UserMessageIfClaimsPrincipalAlreadyExists">The account you are trying to create already exists, please sign-in.</LocalizedString>
FormatLocalizedStringTransformationClaimType
El valor FormatLocalizedStringTransformationClaimType se usa para dar formato a las notificaciones en una cadena localizada. Para obtener más información, vea Transformación de notificaciones FormatLocalizedString
<ClaimsTransformation Id="SetResponseMessageForEmailAlreadyExists" TransformationMethod="FormatLocalizedString">
<InputClaims>
<InputClaim ClaimTypeReferenceId="email" />
</InputClaims>
<InputParameters>
<InputParameter Id="stringFormatId" DataType="string" Value="ResponseMessage_EmailExists" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="responseMsg" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
En el ejemplo siguiente se muestra cómo localizar el formato de cadena de la transformación de notificaciones FormatLocalizedStringTransformationClaimType.
<LocalizedString ElementType="FormatLocalizedStringTransformationClaimType" StringId="ResponseMessage_EmailExists">The email '{0}' is already an account in this organization. Click Next to sign in with that account.</LocalizedString>
GetLocalizedStringsTransformationClaimType
El valor GetLocalizedStringsTransformationClaimType se usa para copiar cadenas localizadas en notificaciones. Para obtener más información, vea Transformación de notificaciones GetLocalizedStringsTransformation
<ClaimsTransformation Id="GetLocalizedStringsForEmail" TransformationMethod="GetLocalizedStringsTransformation">
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="subject" TransformationClaimType="email_subject" />
<OutputClaim ClaimTypeReferenceId="message" TransformationClaimType="email_message" />
<OutputClaim ClaimTypeReferenceId="codeIntro" TransformationClaimType="email_code" />
<OutputClaim ClaimTypeReferenceId="signature" TransformationClaimType="email_signature" />
</OutputClaims>
</ClaimsTransformation>
En el ejemplo siguiente se muestra cómo localizar las notificaciones de salida de la transformación de notificaciones GetLocalizedStringsTransformation.
<LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_subject">Contoso account email verification code</LocalizedString>
<LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_message">Thanks for verifying your account!</LocalizedString>
<LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_code">Your code is</LocalizedString>
<LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_signature">Sincerely</LocalizedString>
Predicado
El valor del predicado se utiliza para localizar uno de los mensajes de error del predicado .
<Predicates>
<Predicate Id="LengthRange" Method="IsLengthRange" HelpText="The password must be between 6 and 64 characters.">
<Parameters>
<Parameter Id="Minimum">6</Parameter>
<Parameter Id="Maximum">64</Parameter>
</Parameters>
</Predicate>
<Predicate Id="Lowercase" Method="IncludesCharacters" HelpText="a lowercase letter">
<Parameters>
<Parameter Id="CharacterSet">a-z</Parameter>
</Parameters>
</Predicate>
<Predicate Id="Uppercase" Method="IncludesCharacters" HelpText="an uppercase letter">
<Parameters>
<Parameter Id="CharacterSet">A-Z</Parameter>
</Parameters>
</Predicate>
</Predicates>
En el ejemplo siguiente se muestra cómo localizar el texto de ayuda de los predicados.
<LocalizedString ElementType="Predicate" ElementId="LengthRange" StringId="HelpText">The password must be between 6 and 64 characters.</LocalizedString>
<LocalizedString ElementType="Predicate" ElementId="Lowercase" StringId="HelpText">a lowercase letter</LocalizedString>
<LocalizedString ElementType="Predicate" ElementId="Uppercase" StringId="HelpText">an uppercase letter</LocalizedString>
PredicateValidation
El valor de PredicateValidation se usa para localizar uno de los mensajes de error del grupo PredicateValidation .
<PredicateValidations>
<PredicateValidation Id="CustomPassword">
<PredicateGroups>
<PredicateGroup Id="LengthGroup">
<PredicateReferences MatchAtLeast="1">
<PredicateReference Id="LengthRange" />
</PredicateReferences>
</PredicateGroup>
<PredicateGroup Id="CharacterClasses">
<UserHelpText>The password must have at least 3 of the following:</UserHelpText>
<PredicateReferences MatchAtLeast="3">
<PredicateReference Id="Lowercase" />
<PredicateReference Id="Uppercase" />
<PredicateReference Id="Number" />
<PredicateReference Id="Symbol" />
</PredicateReferences>
</PredicateGroup>
</PredicateGroups>
</PredicateValidation>
</PredicateValidations>
En el ejemplo siguiente se muestra cómo localizar el texto de ayuda de un grupo de validación de predicados.
<LocalizedString ElementType="PredicateValidation" ElementId="CustomPassword" StringId="CharacterClasses">The password must have at least 3 of the following:</LocalizedString>
UxElement
El valor UxElement se usa para localizar uno de los elementos de la interfaz de usuario. En el ejemplo siguiente se muestra cómo localizar los botones Continuar y Cancelar.
<LocalizedString ElementType="UxElement" StringId="button_continue">Create new account</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="button_cancel">Cancel</LocalizedString>
DisplayControl
El valor de DisplayControl se usa para localizar uno de los elementos de la interfaz de usuario de control de visualización . Cuando se habilita, el control de pantalla localizedStrings tiene prioridad sobre algunos de los StringID de UxElement , como ver_but_send, ver_but_edit, ver_but_resend y ver_but_verify. En el ejemplo siguiente se muestra cómo localizar los botones de envío y verificación.
<LocalizedString ElementType="DisplayControl" ElementId="emailVerificationControl" StringId="but_send_code">Send verification code</LocalizedString>
<LocalizedString ElementType="DisplayControl" ElementId="emailVerificationControl" StringId="but_verify_code">Verify code</LocalizedString>
En la sección Metadatos de un perfil técnico autoafirmado, el ContentDefinition al que se hace referencia debe tener DataUri establecido en la versión 2.1.0 o superior del diseño de página . Por ejemplo:
<ContentDefinition Id="api.selfasserted">
<DataUri>urn:com:microsoft:aad:b2c:elements:selfasserted:2.1.0</DataUri>
...
Pasos siguientes
Consulte los siguientes artículos para obtener ejemplos de localización: