Compartilhar via


Elemento de localização

Importante

A partir de 1º de maio de 2025, o Azure AD B2C não estará mais disponível para compra para novos clientes. Saiba mais em nossas perguntas frequentes.

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ê ofereça suporte a várias localidades ou idiomas na política para os percursos do usuário. O suporte à localização em políticas permite que você:

  • Configure a lista explícita dos idiomas com suporte em uma política e escolha um idioma padrão.
  • Forneça cadeias de caracteres e coleções específicas do 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
Ativado Não Valores possíveis: true ou false.

O elemento Localization contém os seguintes elementos XML

Elemento Ocorrências Descrição
Idiomas suportados 1:n Lista de idiomas suportados.
Recursos localizados 0:n Lista de recursos localizados.

Idiomas suportados

O elemento SupportedLanguages contém os seguintes atributos:

Atributo Obrigatório Descrição
IdiomaPadrão Sim O idioma a ser usado como padrão para recursos localizados.
Comportamento de mesclagem Não Uma enumeração de valores que são mesclados com qualquer ClaimType presente em uma política pai com o mesmo identificador. Use esse atributo ao substituir uma declaração especificada na política base. Valores possíveis: Append, Prepend ou ReplaceAll. O Append valor especifica que a coleção de dados presentes deve ser acrescentada ao final da coleção especificada na política pai. O Prepend valor especifica que a coleção de dados presentes deve ser adicionada antes da coleção especificada na política pai. O ReplaceAll valor especifica que a coleta de dados definida na política pai deve ser ignorada, usando os dados definidos na política atual.

Idiomas suportados

O elemento SupportedLanguages contém os seguintes elementos:

Elemento Ocorrências Descrição
Linguagem suportada 1:n Exibe o conteúdo que está em conformidade com uma marca de idioma de acordo com RFC 5646 - Marcas para identificação de idiomas.

Recursos localizados

O elemento LocalizedResources contém os seguintes atributos:

Atributo Obrigatório Descrição
ID Sim Um identificador usado para identificar exclusivamente recursos localizados.

O elemento LocalizedResources contém os seguintes elementos:

Elemento Ocorrências Descrição
Coleções localizadas 0:n Define coleções inteiras em várias culturas. Uma coleção pode ter um número diferente de itens e cadeias de caracteres diferentes para várias culturas. Exemplos de coleções incluem as enumerações que aparecem em tipos de declaração. Por exemplo, uma lista de países/regiões é mostrada ao usuário em uma lista suspensa.
LocalizedStrings 0:n Define todas as cadeias de caracteres, exceto as cadeias de caracteres que aparecem em coleções, em várias culturas.

Coleções localizadas

O elemento LocalizedCollections contém os seguintes elementos:

Elemento Ocorrências Descrição
Coleção localizada 1:n Lista de idiomas suportados.

Coleção localizada

O elemento LocalizedCollection contém os seguintes atributos:

Atributo Obrigatório Descrição
Tipo de elemento Sim Faz referência a um elemento ClaimType ou a um elemento de interface do usuário no arquivo de política.
Identificação do elemento Sim Uma cadeia de caracteres que contém uma referência a um tipo de declaração já definido na seção ClaimsSchema que é usada se ElementType estiver definido como um ClaimType.
Coleção de alvos Sim A coleção de destino.

O elemento LocalizedCollection contém os seguintes elementos:

Elemento Ocorrências Descrição
Elemento 0:n Define uma opção disponível para o usuário selecionar para uma declaração na 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 Sim A cadeia de caracteres de exibição amigável que deve ser mostrada ao usuário na interface do usuário para esta opção.
Valor Sim O valor da declaração de cadeia de caracteres associado à seleção dessa opção.
SelecionarPor Padrão 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 Restriction 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
Tipo de elemento Sim Valores possíveis: ClaimsProvider, ClaimType, ErrorMessage, GetLocalizedStringsTransformationClaimType, FormatLocalizedStringTransformationClaimType, Predicate, PredicateValidation ou UxElement.
Identificação do elemento Sim 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 Sim 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 DisplayName valor é usado para definir o nome de exibição da declaração. O AdminHelpText valor é usado para definir o nome do texto de ajuda do usuário da declaração. O PatternHelpText valor é 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. Consulte IDs de cadeia de caracteres de localização para obter uma lista completa dos UxElement identificadores.

Tipo de elemento

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 Tipo de elemento Identificação do elemento 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, , DisplayNamee PatternHelpTextUserHelpText.
Mensagem de erro ErrorMessage O ID da mensagem de erro
Copia cadeias de caracteres localizadas em declarações GetLocalizedStringsTransformationClaimType O nome da declaração de saída
Mensagem do usuário de predicado Predicate O nome do predicado O atributo do predicado a ser localizado. Valores possíveis: HelpText.
Mensagem de usuário do grupo de predicados PredicateValidation A ID do elemento PredicateValidation. A ID do elemento PredicateGroup. O grupo de predicados deve ser filho do elemento de validação de predicado, conforme definido no ElementId.
Elementos da interface do usuário UxElement A ID do elemento da interface do usuário a ser localizado.
Controle de exibição DisplayControl A ID do controle de exibição. A ID do elemento da interface do usuário a ser localizado.

Exemplos

Provedor de Reivindicações

O valor ClaimsProvider é usado para localizar um dos nomes de exibição dos provedores de declarações.

<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ções.

<LocalizedString ElementType="ClaimsProvider" StringId="FacebookExchange">Facebook</LocalizedString>
<LocalizedString ElementType="ClaimsProvider" StringId="GoogleExchange">Google</LocalizedString>
<LocalizedString ElementType="ClaimsProvider" StringId="LinkedInExchange">LinkedIn</LocalizedString>

Tipo de declaração

O valor ClaimType é usado para localizar 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>

Mensagem de Erro

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 FormatLocalizedStringTransformationClaimType é usado para formatar declarações em uma cadeia de caracteres localizada. Para obter mais informações, consulte FormatLocalizedString transformação de declarações

<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>

O exemplo a seguir mostra como localizar o formato de cadeia de caracteres da transformação de declarações 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

O valor 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 declarações de saída da transformação de 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>

Elemento UxU

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>

Controle de exibição

O valor DisplayControl é usado para localizar um dos elementos da interface do usuário de controle de exibição . Quando habilitado, o controle de exibição localizedStrings tem precedência 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 Metadados de um perfil técnico autodeclarado, o ContentDefinition referenciado precisa ter DataUri definido como layout de página versão 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: