Elemento de localização

Nota

No Azure Active Directory B2C, as políticas personalizadas são concebidas principalmente para abordar cenários complexos. Para a maioria dos cenários, recomendamos que utilize fluxos de utilizador incorporados. Se ainda não o fez, saiba mais sobre o pacote de introdução de políticas personalizadas em Introdução às políticas personalizadas no Active Directory B2C.

O elemento Localização permite-lhe suportar várias regiões ou idiomas na política para os percursos de utilizador. O suporte de localização em políticas permite-lhe:

  • Configure a lista explícita dos idiomas suportados numa política e escolha um idioma predefinido.
  • Forneça cadeias e coleções específicas de idiomas.
<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 Localização contém os seguintes atributos:

Atributo Necessário Descrição
Ativado Não Valores possíveis: true ou false.

O elemento Localização contém os seguintes elementos XML

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

SupportedLanguages

O elemento SupportedLanguages contém os seguintes atributos:

Atributo Necessário Descrição
DefaultLanguage Yes O idioma a utilizar como predefinição para recursos localizados.
MergeBehavior No Uma enumeração de valores que são intercalados juntamente com qualquer ClaimType presente numa política principal com o mesmo identificador. Utilize este atributo quando substituir uma afirmação especificada na política base. Valores possíveis: Append, Prependou ReplaceAll. O Append valor especifica que a recolha de dados presentes deve ser anexada ao final da coleção especificada na política principal. O Prepend valor especifica que a recolha de dados presentes deve ser adicionada antes da coleção especificada na política principal. O ReplaceAll valor especifica que a recolha de dados definidos na política principal deve ser ignorada, utilizando, 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 Apresenta conteúdo em conformidade com uma etiqueta de idioma por RFC 5646 – Etiquetas para Identificar Idiomas.

LocalizedResources

O elemento LocalizedResources contém os seguintes atributos:

Atributo Necessário Descrição
Id Yes Um identificador que é utilizado 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 cadeias diferentes para várias culturas. Exemplos de coleções incluem as enumerações que aparecem nos tipos de afirmações. Por exemplo, é apresentada uma lista de país/região ao utilizador numa lista pendente.
LocalizedStrings 0:n Define todas as cadeias, exceto as cadeias que aparecem 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 suportados.

LocalizedCollection

O elemento LocalizedCollection contém os seguintes atributos:

Atributo Necessário Descrição
ElementType Yes Referencia um elemento ClaimType ou um elemento de interface de utilizador no ficheiro de política.
ElementId Yes Uma cadeia que contém uma referência a um tipo de afirmação já definido na secção ClaimsSchema que é utilizada se ElementType estiver definido como 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 utilizador selecionar para uma afirmação na interface de utilizador, como um valor numa lista pendente.

O elemento Item contém os seguintes atributos:

Atributo Necessário Descrição
Texto Yes A cadeia de apresentação amigável que deve ser apresentada ao utilizador na interface de utilizador para esta opção.
Valor Yes O valor da afirmação de cadeia associado à seleção desta opção.
SelectByDefault No Indica se esta opção deve ou não ser selecionada por predefinição na IU. Valores possíveis: Verdadeiro ou Falso.

O exemplo seguinte mostra a utilização do elemento LocalizedCollections . Contém dois elementos LocalizedCollection , um para inglês e outro para espanhol. Ambos definem a Coleção de restrições da afirmação Gender com uma lista de itens para inglês e espanhol. Para obter mais exemplos, consulte a demonstração em direto da enumeração da restrição de afirmações.

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

O elemento LocalizedString contém os seguintes atributos:

Atributo Necessário Descrição
ElementType Yes Valores possíveis: ClaimsProvider, ClaimType, ErrorMessage, GetLocalizedStringsTransformationClaimType, FormatLocalizedStringTransformationClaimType, Predicate, PredicateValidation ou UxElement.
ElementId Yes Se ElementType estiver definido como ClaimType, Predicateou PredicateValidation, este elemento contém uma referência a um tipo de afirmação já definido na secção ClaimsSchema.
StringId Yes Se ElementType estiver definido como ClaimType, este elemento contém uma referência a um atributo de um tipo de afirmação. Valores possíveis: DisplayName, AdminHelpTextou PatternHelpText. O DisplayName valor é utilizado para definir o nome a apresentar da afirmação. O AdminHelpText valor é utilizado para definir o nome do texto da ajuda do utilizador da afirmação. O PatternHelpText valor é utilizado para definir o texto de ajuda do padrão de afirmação. Se ElementType estiver definido como UxElement, este elemento contém uma referência a um atributo de um elemento de interface de utilizador. Se ElementType estiver definido como ErrorMessage, este elemento especifica o identificador de uma mensagem de erro. Veja IDs da cadeia de localização para obter uma lista completa dos UxElement identificadores.

ElementType

A referência ElementType a um tipo de afirmação, uma transformação de afirmação ou um elemento de interface de utilizador na política a localizar.

Elemento a localizar ElementType ElementId StringId
Nome do fornecedor de identidade ClaimsProvider O ID do elemento ClaimsExchange
Atributos de tipo de afirmação ClaimType Nome do tipo de afirmação O atributo da afirmação a localizar. Valores possíveis: AdminHelpText, , DisplayNamePatternHelpTexte UserHelpText.
Mensagem de erro ErrorMessage O ID da mensagem de erro
Copia cadeias localizadas para afirmações GetLocalizedStringsTra nsformationClaimType O nome da afirmação de saída
Predicar mensagem de utilizador Predicate O nome do predicado O atributo do predicado a ser localizado. Valores possíveis: HelpText.
Predicar mensagem de utilizador do grupo PredicateValidation O ID do elemento PredicateValidation. O ID do elemento PredicateGroup. O grupo predicado tem de ser um subordinado do elemento de validação predicado, conforme definido no ElementId.
Elementos da interface de utilizador UxElement O ID do elemento da interface de utilizador a localizar.
Controlo de Apresentação DisplayControl O ID do controlo de apresentação. O ID do elemento da interface de utilizador a localizar.

Exemplos

ClaimsProvider

O valor ClaimsProvider é utilizado para localizar um dos fornecedores de afirmações com o nome a apresentar.

<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 seguinte mostra como localizar o nome a apresentar dos fornecedores de afirmações.

<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 é utilizado para localizar um dos atributos de afirmaçã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 seguinte mostra como localizar os atributos DisplayName, UserHelpText e PatternHelpText do tipo de afirmação de e-mail.

<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 é utilizado 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 seguinte 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 é utilizado para formatar afirmações numa cadeia localizada. Para obter mais informações, veja FormatLocalizedString claims transformation (Transformação de afirmaçõ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 seguinte mostra como localizar o formato de cadeia da transformação de afirmaçõ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 GetLocalizedStringsTransformationClaimType é utilizado para copiar cadeias localizadas para afirmações. Para obter mais informações, veja GetLocalizedStringsTransformation claims transformation (Transformação de afirmaçõ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 seguinte mostra como localizar afirmações de saída da transformação de afirmaçõ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>

Predicar

O valor Predicado é utilizado para localizar uma das mensagens de erro 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>

O exemplo seguinte mostra como localizar o texto de ajuda dos 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 é utilizado 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 seguinte mostra como localizar um texto de ajuda do grupo de validação de predicados.

<LocalizedString ElementType="PredicateValidation" ElementId="CustomPassword" StringId="CharacterClasses">The password must have at least 3 of the following:</LocalizedString>

UxElement

O valor UxElement é utilizado para localizar um dos elementos da interface de utilizador. O exemplo seguinte 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 é utilizado para localizar um dos elementos da interface de utilizador Controlo de apresentação . Quando ativado, o controlo de visualização localizedStrings tem precedência sobre alguns dos StringIDs do UxElement , como ver_but_send, ver_but_edit, ver_but_resend e ver_but_verify. O exemplo seguinte 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 secção Metadados de um perfil técnico auto-afirmado, a ContentDefinition referenciada tem de ter o DataUri definido para a versão de esquema de 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>
  ...

Passos seguintes

Veja os seguintes artigos para obter exemplos de localização: