Elemento de localização
Observação
No Azure Active Directory B2C, as políticas personalizadas são projetadas principalmente para tratar de cenários complexos. Para a maioria dos cenários, recomendamos que você use fluxos de usuários predefinidos. Se você ainda não fez isso, saiba mais sobre o pacote de início de política personalizado em Introdução às políticas personalizadas no Active Directory B2C.
O elemento Localization permite que você dê suporte a várias localidades ou idiomas na política para os percursos do usuário. O suporte de localização em políticas permite que você:
- Configure a lista explícita de idiomas com suporte em uma política e escolha um idioma padrão.
- Forneça coleções e cadeias de caracteres específicas a um 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">
...
O elemento Localization contém os seguintes atributos:
Atributo | Obrigatório | Descrição |
---|---|---|
habilitado | No | Valores possíveis: true ou false . |
O elemento Localization contém os seguintes elementos XML
Elemento | Ocorrências | Descrição |
---|---|---|
SupportedLanguages | 1:n | Lista de idiomas com suporte. |
LocalizedResources | 0:n | Lista de recursos localizados. |
SupportedLanguages
O elemento SupportedLanguages contém os seguintes atributos:
Atributo | Obrigatório | Descrição |
---|---|---|
DefaultLanguage | Yes | O idioma a ser usado como o padrão para recursos localizados. |
MergeBehavior | No | Valores de enumeração de valores mesclados junto com qualquer ClaimType presente em uma política pai com o mesmo identificador. Use esse atributo quando substituir uma declaração especificada na política de base. Valores possíveis: Append , Prepend ou ReplaceAll . O valor Append especifica que a coleta de dados presente deve ser acrescentada ao final da coleção especificada na política pai. O valor Prepend especifica que a coleta de dados presente deve ser adicionada antes da coleção especificada na política pai. O valor ReplaceAll especifica que a coleta de dados definida na política pai deve ser ignorada, em vez disso, usando, em vez disso, os dados definidos na política atual. |
SupportedLanguages
O elemento SupportedLanguages contém os seguintes elementos:
Elemento | Ocorrências | Descrição |
---|---|---|
SupportedLanguage | 1:n | Exibe o conteúdo que está em conformidade com uma marca de idioma conforme RFC 5646 – Marcas para Identificar Idiomas. |
LocalizedResources
O elemento LocalizedResources contém os seguintes atributos:
Atributo | Obrigatório | Descrição |
---|---|---|
ID | Yes | Um identificador usado para identificar exclusivamente os recursos localizados. |
O elemento LocalizedResources contém os seguintes elementos:
Elemento | Ocorrências | Descrição |
---|---|---|
LocalizedCollections | 0:n | Define coleções inteiras em várias culturas. Uma coleção pode ter um número diferente de itens e diferentes cadeias de caracteres para várias culturas. Exemplos de coleções incluem enumerações que aparecem em tipos de declaração. Por exemplo, é mostrada uma lista de país/região para o usuário em uma lista suspensa. |
LocalizedStrings | 0:n | Define todas as cadeias de caracteres, exceto pelas cadeias de caracteres exibidas em coleções, em várias culturas. |
LocalizedCollections
O elemento LocalizedCollections contém os seguintes elementos:
Elemento | Ocorrências | Descrição |
---|---|---|
LocalizedCollection | 1:n | Lista de idiomas com suporte. |
LocalizedCollection
O elemento LocalizedCollection contém os seguintes atributos:
Atributo | Obrigatório | Descrição |
---|---|---|
ElementType | Yes | Faz referência a um elemento ClaimType ou um elemento de interface do usuário no arquivo de política. |
ElementId | Yes | Uma cadeia de caracteres que contém uma referência a um tipo de declaração já definido na seção ClaimsSchema usada se ElementType está definido como um ClaimType. |
TargetCollection | Yes | A coleção de destino. |
O elemento LocalizedCollection contém os seguintes elementos:
Elemento | Ocorrências | Descrição |
---|---|---|
Item | 0:n | Define uma opção disponível para o usuário selecionar para uma declaração de interface do usuário, como um valor em uma lista suspensa. |
O elemento Item contém os seguintes atributos:
Atributo | Obrigatório | Descrição |
---|---|---|
Texto | Yes | A cadeia de caracteres de exibição amigável deve ser mostrada ao usuário na interface do usuário para essa opção. |
Valor | Yes | O valor da declaração da cadeia de caracteres associada com essa opção. |
SelectByDefault | Não | Indica se esta opção deve ser selecionada ou não por padrão na interface do usuário. Os valores possíveis: True ou False. |
O exemplo a seguir mostra o uso do elemento LocalizedCollections. Ele contém dois elementos LocalizedCollection, um para inglês e outro para espanhol. Ambos definem a coleção de Restrição da declaração Gender
com uma lista de itens para inglês e espanhol. Para obter mais amostras, confira a demonstração ao vivo de enumeração de restrição de declaração.
<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
O elemento LocalizedStrings contém os seguintes elementos:
Elemento | Ocorrências | Descrição |
---|---|---|
LocalizedString | 1:n | Uma cadeia de caracteres localizada. |
O elemento LocalizedString contém os seguintes atributos:
Atributo | Obrigatório | Descrição |
---|---|---|
ElementType | Yes | Valores possíveis: ClaimsProvider, ClaimType, ErrorMessage, GetLocalizedStringsTransformationClaimType, FormatLocalizedStringTransformationClaimType, Predicate, PredicateValidation ou UxElement. |
ElementId | Yes | Se ElementType for definido como ClaimType , Predicate ou PredicateValidation , esse elemento conterá uma referência a um tipo de declaração já definido na seção ClaimsSchema. |
StringId | Yes | Se ElementType for definido como ClaimType , esse elemento conterá uma referência a um atributo de um tipo de declaração. Valores possíveis: DisplayName , AdminHelpText ou PatternHelpText . O valor DisplayName é usado para definir o nome de exibição de declaração. O valor AdminHelpText é usado para definir o nome de texto de ajuda do usuário de declaração. O valor PatternHelpText é usado para definir o texto de ajuda do padrão de declaração. Se ElementType for definido como UxElement , esse elemento conterá uma referência a um atributo de um elemento de interface do usuário. Se ElementType for definido como ErrorMessage , esse elemento especificará o identificador de uma mensagem de erro. Veja IDs de cadeia de localização para obter uma lista completa de identificadores UxElement . |
ElementType
A referência ElementType a um tipo de declaração, uma transformação de declaração ou um elemento de interface do usuário na política a ser localizada.
Elemento a ser localizado | ElementType | ElementId | StringId |
---|---|---|---|
Nome do provedor de identidade | ClaimsProvider |
A ID do elemento ClaimsExchange | |
Atributos de tipo de declaração | ClaimType |
Nome do tipo de declaração | O atributo da declaração a ser localizada. Valores possíveis: AdminHelpText , DisplayName , PatternHelpText e UserHelpText . |
Mensagem de erro | ErrorMessage |
A ID da mensagem de erro | |
Copia cadeias de caracteres localizadas em declarações | GetLocalizedStringsTra nsformationClaimType |
O nome da declaração de saída | |
Mensagem de usuário de predicado | Predicate |
O nome do predicado | O atributo do predicado a ser localizado. Valores possíveis: HelpText . |
Mensagem do usuário do grupo de predicados | PredicateValidation |
A ID do elemento PredicateValidation. | A ID do elemento PredicateGroup. O grupo de predicados deve ser um filho do elemento de validação de predicado, conforme definido em ElementId. |
Elementos da interface do usuário | UxElement |
A ID do elemento de interface do usuário a ser localizado. | |
Controle de Exibição | DisplayControl |
A ID do controle de exibição. | A ID do elemento de interface do usuário a ser localizado. |
Exemplos
ClaimsProvider
O valor ClaimsProvider é usado para localizador um dos nomes de exibição de provedores de declaração.
<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>
O exemplo a seguir mostra como localizar o nome de exibição dos provedores de declaração.
<LocalizedString ElementType="ClaimsProvider" StringId="FacebookExchange">Facebook</LocalizedString>
<LocalizedString ElementType="ClaimsProvider" StringId="GoogleExchange">Google</LocalizedString>
<LocalizedString ElementType="ClaimsProvider" StringId="LinkedInExchange">LinkedIn</LocalizedString>
ClaimType
O valor ClaimType é usado para localizador um dos atributos de declaração.
<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>
O exemplo a seguir mostra como localizar os atributos DisplayName, UserHelpText e PatternHelpText do tipo de declaração de email.
<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>
ErrorMessage
O valor ErrorMessage é usado para localizar uma das mensagens de erro do 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>
O exemplo a seguir mostra como localizar a mensagem de erro UserMessageIfClaimsPrincipalAlreadyExists.
<LocalizedString ElementType="ErrorMessage" StringId="UserMessageIfClaimsPrincipalAlreadyExists">The account you are trying to create already exists, please sign-in.</LocalizedString>
FormatLocalizedStringTransformationClaimType
O valor de FormatLocalizedStringTransformationClaimType é usado para formatar declarações em uma cadeia de caracteres localizada. Para obter mais informações, consulte transformação de declarações FormatLocalizedString
<ClaimsTransformation Id="SetResponseMessageForEmailAlreadyExists" TransformationMethod="FormatLocalizedString">
<InputClaims>
<InputClaim ClaimTypeReferenceId="email" />
</InputClaims>
<InputParameters>
<InputParameter Id="stringFormatId" DataType="string" Value="ResponseMessge_EmailExists" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="responseMsg" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
O exemplo a seguir mostra como localizar o formato de cadeia de caracteres da transformação declarações FormatLocalizedStringTransformationClaimType.
<LocalizedString ElementType="FormatLocalizedStringTransformationClaimType" StringId="ResponseMessge_EmailExists">The email '{0}' is already an account in this organization. Click Next to sign in with that account.</LocalizedString>
GetLocalizedStringsTransformationClaimType
O valor de GetLocalizedStringsTransformationClaimType é usado para copiar cadeias de caracteres localizadas em declarações. Para obter mais informações, consulte transformação de declarações 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>
O exemplo a seguir mostra como localizar as declarações de saída da transformação declarações 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
O valor Predicate é usado para localizar uma das mensagens de erro Predicate.
<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>
O exemplo a seguir mostra como localizar o texto de ajuda de 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
O valor PredicateValidation é usado para localizar uma das mensagens de erro do 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>
O exemplo a seguir mostra como localizar um texto de ajuda do grupo de validação de predicado.
<LocalizedString ElementType="PredicateValidation" ElementId="CustomPassword" StringId="CharacterClasses">The password must have at least 3 of the following:</LocalizedString>
UxElement
O valor UxElement é usado para localizar um dos elementos da interface do usuário. O exemplo a seguir mostra como localizar os botões continuar e cancelar.
<LocalizedString ElementType="UxElement" StringId="button_continue">Create new account</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="button_cancel">Cancel</LocalizedString>
DisplayControl
O valor DisplayControl é usado para localizar um dos elementos de interface do usuário controle de exibição. Quando habilitado, o controle de exibição localizedStrings usa a precedence sobre alguns dos StringIDs UxElement como ver_but_send, ver_but_edit, ver_but_resend e ver_but_verify. O exemplo a seguir mostra como localizar os botões enviar e verificar.
<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>
Na seção de Metadados de um perfil técnico autodeclarado, o ContentDefinition referenciado precisa ter o DataUri definido como a versão do layout da página 2.1.0 ou superior. Por exemplo:
<ContentDefinition Id="api.selfasserted">
<DataUri>urn:com:microsoft:aad:b2c:elements:selfasserted:2.1.0</DataUri>
...
Próximas etapas
Consulte os seguintes artigos para obter exemplos de código completo: