Element lokalizacji

Uwaga

W usłudze Azure Active Directory B2C zasady niestandardowe są przeznaczone głównie do rozwiązywania złożonych scenariuszy. W przypadku większości scenariuszy zalecamy używanie wbudowanych przepływów użytkowników. Jeśli nie zostało to zrobione, dowiedz się więcej o niestandardowym pakiecie startowym zasad w temacie Wprowadzenie do zasad niestandardowych w usłudze Active Directory B2C.

Element Lokalizacji umożliwia obsługę wielu ustawień regionalnych lub języków w zasadach podróży użytkownika. Obsługa lokalizacji w zasadach umożliwia:

  • Skonfiguruj jawną listę obsługiwanych języków w zasadach i wybierz język domyślny.
  • Podaj ciągi i kolekcje specyficzne dla języka.
<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">
  ...

Element lokalizacji zawiera następujące atrybuty:

Atrybut Wymagane Opis
Enabled (Włączony) Nie Możliwe wartości: true lub false.

Element Lokalizacji zawiera następujące elementy XML

Element Wystąpień Opis
SupportedLanguages 1:n Lista obsługiwanych języków.
LocalizedResources 0:n Lista zlokalizowanych zasobów.

SupportedLanguages

Element SupportedLanguages zawiera następujące atrybuty:

Atrybut Wymagane Opis
DefaultLanguage Tak Język, który ma być używany jako domyślny dla zlokalizowanych zasobów.
Scalbehavior Nie Wartości wyliczenia wartości, które są scalane wraz z dowolnym atrybutem ClaimType obecnych w zasadach nadrzędnych z tym samym identyfikatorem. Użyj tego atrybutu podczas zastępowania oświadczenia określonego w zasadach podstawowych. Możliwe wartości: Append, Prependlub ReplaceAll. Wartość Append określa, że kolekcja obecnych danych powinna zostać dołączona na końcu kolekcji określonej w zasadach nadrzędnych. Wartość Prepend określa, że należy dodać kolekcję danych przed kolekcją określoną w zasadach nadrzędnych. Wartość ReplaceAll określa, że zbieranie danych zdefiniowanych w zasadach nadrzędnych powinno być ignorowane przy użyciu zamiast danych zdefiniowanych w bieżących zasadach.

SupportedLanguages

Element SupportedLanguages zawiera następujące elementy:

Element Wystąpień Opis
SupportedLanguage 1:n Wyświetla zawartość zgodną z tagiem języka na RFC 5646 — tagi identyfikujące języki.

LocalizedResources

Element LocalizedResources zawiera następujące atrybuty:

Atrybut Wymagane Opis
Id Tak Identyfikator używany do unikatowego identyfikowania zlokalizowanych zasobów.

Element LocalizedResources zawiera następujące elementy:

Element Wystąpień Opis
LocalizedCollections 0:n Definiuje całe kolekcje w różnych kulturach. Kolekcja może mieć różne elementy i różne ciągi dla różnych kultur. Przykłady kolekcji obejmują wyliczenia, które są wyświetlane w typach oświadczeń. Na przykład lista kraj/region jest wyświetlana użytkownikowi na liście rozwijanej.
Zlokalizowane ciągi 0:n Definiuje wszystkie ciągi, z wyjątkiem tych ciągów, które pojawiają się w kolekcjach, w różnych kulturach.

LocalizedCollections

Element LocalizedCollections zawiera następujące elementy:

Element Wystąpień Opis
LocalizedCollection 1:n Lista obsługiwanych języków.

LocalizedCollection

Element LocalizedCollection zawiera następujące atrybuty:

Atrybut Wymagane Opis
Elementtype Tak Odwołuje się do elementu ClaimType lub elementu interfejsu użytkownika w pliku zasad.
Identyfikator elementu Tak Ciąg zawierający odwołanie do typu oświadczenia zdefiniowanego już w sekcji ClaimsSchema, który jest używany, jeśli element ElementType jest ustawiony na Typ oświadczenia.
TargetCollection Tak Kolekcja docelowa.

Element LocalizedCollection zawiera następujące elementy:

Element Wystąpień Opis
Element 0:n Definiuje dostępną opcję, która ma być wybrana dla oświadczenia w interfejsie użytkownika, na przykład wartość na liście rozwijanej.

Element Item zawiera następujące atrybuty:

Atrybut Wymagane Opis
Tekst Tak Przyjazny dla użytkownika ciąg wyświetlania, który powinien być wyświetlany użytkownikowi w interfejsie użytkownika dla tej opcji.
Wartość Tak Wartość oświadczenia ciągu skojarzona z wybraniem tej opcji.
Wybierz pozycjęByDefault Nie Wskazuje, czy ta opcja powinna być domyślnie wybrana w interfejsie użytkownika. Możliwe wartości: Prawda lub Fałsz.

W poniższym przykładzie pokazano użycie elementu LocalizedCollections . Zawiera dwa elementy LocalizedCollection , jeden dla języka angielskiego i drugi dla języka hiszpańskiego. Obie ustawiają kolekcję ograniczeń oświadczenia Gender z listą elementów dla języka angielskiego i hiszpańskiego. Aby uzyskać więcej przykładów, zapoznaj się z pokazem na żywo wyliczenia ograniczeń oświadczeń.

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

Zlokalizowane ciągi

Element LocalizedStrings zawiera następujące elementy:

Element Wystąpień Opis
LocalizedString 1:n Zlokalizowany ciąg.

Element LocalizedString zawiera następujące atrybuty:

Atrybut Wymagane Opis
Elementtype Tak Możliwe wartości: ClaimsProvider, ClaimType, ErrorMessage, GetLocalizedStringsTransformationClaimType, FormatLocalizedStringTransformationClaimType, Predicate, PredicateValidation lub UxElement.
Identyfikator elementu Tak Jeśli element ElementType jest ustawiony na ClaimType, Predicatelub PredicateValidation, ten element zawiera odwołanie do typu oświadczenia już zdefiniowanego w sekcji ClaimsSchema.
StringId Tak Jeśli parametr ElementType jest ustawiony na ClaimTypewartość , ten element zawiera odwołanie do atrybutu typu oświadczenia. Możliwe wartości: DisplayName, AdminHelpTextlub PatternHelpText. Wartość DisplayName jest używana do ustawiania nazwy wyświetlanej oświadczenia. Wartość AdminHelpText służy do ustawiania nazwy tekstowej pomocy użytkownika oświadczenia. Wartość PatternHelpText jest używana do ustawiania tekstu pomocy wzorca oświadczenia. Jeśli parametr ElementType jest ustawiony na UxElementwartość , ten element zawiera odwołanie do atrybutu elementu interfejsu użytkownika. Jeśli parametr ElementType jest ustawiony na ErrorMessagewartość , ten element określa identyfikator komunikatu o błędzie. Zobacz Identyfikatory ciągów lokalizacji , aby uzyskać pełną listę UxElement identyfikatorów.

Elementtype

Odwołanie ElementType do typu oświadczenia, przekształcenia oświadczenia lub elementu interfejsu użytkownika w zasadach, które mają być zlokalizowane.

Element do lokalizowania Elementtype Identyfikator elementu StringId
Nazwa dostawcy tożsamości ClaimsProvider Identyfikator elementu ClaimsExchange
Atrybuty typu oświadczenia ClaimType Nazwa typu oświadczenia Atrybut oświadczenia, który ma zostać zlokalizowany. Możliwe wartości: AdminHelpText, , PatternHelpTextDisplayNamei UserHelpText.
Komunikat o błędzie ErrorMessage Identyfikator komunikatu o błędzie
Kopiuje zlokalizowane ciągi do oświadczeń GetLocalizedStringsTra nsformationClaimType Nazwa oświadczenia wyjściowego
Komunikat użytkownika predykatu Predicate Nazwa predykatu Atrybut predykatu, który ma zostać zlokalizowany. Możliwe wartości: HelpText.
Komunikat użytkownika grupy predykatu PredicateValidation Identyfikator elementu PredicateValidation. Identyfikator elementu PredicateGroup. Grupa predykatów musi być elementem podrzędnym elementu weryfikacji predykatu, zgodnie z definicją w elemedycie ElementId.
Elementy interfejsu użytkownika UxElement Identyfikator elementu interfejsu użytkownika, który ma być zlokalizowany.
Kontrolka wyświetlania DisplayControl Identyfikator kontrolki wyświetlania. Identyfikator elementu interfejsu użytkownika, który ma być zlokalizowany.

Przykłady

ClaimsProvider

Wartość ClaimsProvider służy do lokalizowania jednej z nazw wyświetlanych dostawców oświadczeń.

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

W poniższym przykładzie pokazano, jak lokalizować nazwę wyświetlaną dostawców oświadczeń.

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

Claimtype

Wartość ClaimType służy do lokalizowania jednego z atrybutów oświadczenia.

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

W poniższym przykładzie pokazano, jak lokalizować atrybuty DisplayName, UserHelpText i PatternHelpText typu oświadczenia 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

Wartość ErrorMessage służy do lokalizowania jednego z komunikatów o błędach systemowych.

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

W poniższym przykładzie pokazano, jak lokalizować komunikat o błędzie UserMessageIfClaimsPrincipalAlreadyExists.

<LocalizedString ElementType="ErrorMessage" StringId="UserMessageIfClaimsPrincipalAlreadyExists">The account you are trying to create already exists, please sign-in.</LocalizedString>

FormatLocalizedStringTransformationClaimType

Wartość FormatLocalizedStringTransformationClaimType służy do formatowania oświadczeń w zlokalizowany ciąg. Aby uzyskać więcej informacji, zobacz FormatLocalizedString claims transformation (Przekształcanie oświadczeń 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>

W poniższym przykładzie pokazano, jak lokalizować format ciągu przekształcenia oświadczeń 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

Wartość GetLocalizedStringsTransformationClaimType służy do kopiowania zlokalizowanych ciągów do oświadczeń. Aby uzyskać więcej informacji, zobacz GetLocalizedStringsTransformation claims transformations transformation (Przekształcanie oświadczeń 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>

W poniższym przykładzie pokazano, jak lokalizować oświadczenia wyjściowe przekształcenia oświadczeń 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>

Predykat

Wartość predykatu służy do lokalizowania jednego z komunikatów o błędach predykatu .

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

W poniższym przykładzie pokazano, jak lokalizować predykaty w tekście pomocy.

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

PredykatValidation

Wartość PredicateValidation służy do lokalizowania jednego z komunikatów o błędach grupy 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>

W poniższym przykładzie pokazano, jak lokalizować tekst pomocy grupy weryfikacji predykatu.

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

UxElement

Wartość UxElement służy do lokalizowania jednego z elementów interfejsu użytkownika. W poniższym przykładzie pokazano, jak lokalizować przyciski kontynuuj i anulować.

<LocalizedString ElementType="UxElement" StringId="button_continue">Create new account</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="button_cancel">Cancel</LocalizedString>

DisplayControl

Wartość DisplayControl służy do lokalizowania jednego z elementów interfejsu użytkownika kontrolki wyświetlania . Po włączeniu kontrolka wyświetlania zlokalizowaneStrings ma pierwszeństwo przed niektórymi identyfikatorami ciągów UxElement , takimi jak ver_but_send, ver_but_edit, ver_but_resend i ver_but_verify. W poniższym przykładzie pokazano, jak lokalizować przyciski wysyłania i weryfikowania.

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

W sekcji Metadane własnego profilu technicznego przywoływane wartości ContentDefinition musi mieć identyfikator DataUri ustawiony na układ strony w wersji 2.1.0 lub nowszej. Przykład:

<ContentDefinition Id="api.selfasserted">
  <DataUri>urn:com:microsoft:aad:b2c:elements:selfasserted:2.1.0</DataUri>
  ...

Następne kroki

Zapoznaj się z następującymi artykułami, aby zapoznać się z przykładami lokalizacji: