Udostępnij przez


Element lokalizacji

Ważne

Od 1 maja 2025 r. usługa Azure AD B2C nie będzie już dostępna do zakupu dla nowych klientów. Dowiedz się więcej w naszych często zadawanych pytaniach.

Uwaga / Notatka

W usłudze Azure Active Directory B2C niestandardowe zasady 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żytkownika. 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 Lokalizacja umożliwia obsługę wielu ustawień regionalnych lub języków w zasadach dotyczących 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 Lokalizacja zawiera następujące atrybuty:

Atrybut Wymagane Opis
Włączone Nie. Możliwe wartości: true lub false.

Element Lokalizacja zawiera następujące elementy XML

Składnik Wystąpień Opis
Obsługiwane języki 1:n Lista obsługiwanych języków.
Zlokalizowane zasoby 0:n Lista zlokalizowanych zasobów.

Obsługiwane języki

Element SupportedLanguages zawiera następujące atrybuty:

Atrybut Wymagane Opis
DomyślnyJęzyk Tak Język, który ma być używany jako domyślny dla zlokalizowanych zasobów.
Zachowanie scalania Nie. Wartości wyliczenia wartości, które są scalane razem z dowolnym typem oświadczenia, które znajdują się 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, lub PrependReplaceAll. 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 przed kolekcją określoną w zasadach nadrzędnych należy dodać zbieranie danych. Wartość ReplaceAll określa, że zbieranie danych zdefiniowanych w zasadach nadrzędnych powinno być ignorowane przy użyciu danych zdefiniowanych w bieżących zasadach.

Obsługiwane języki

Element SupportedLanguages zawiera następujące elementy:

Składnik Wystąpień Opis
Obsługiwany język 1:n Wyświetla zawartość zgodną z tagiem języka na RFC 5646 — tagi identyfikujące języki.

Zlokalizowane zasoby

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:

Składnik Wystąpień Opis
Zlokalizowanekolekcje 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.

Zlokalizowanekolekcje

Element LocalizedCollections zawiera następujące elementy:

Składnik Wystąpień Opis
Zlokalizowanakolekcja 1:n Lista obsługiwanych języków.

Zlokalizowanakolekcja

Element LocalizedCollection zawiera następujące atrybuty:

Atrybut Wymagane Opis
Typ elementu 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.
Kolekcja docelowa Tak Kolekcja docelowa.

Element LocalizedCollection zawiera następujące elementy:

Składnik Wystąpień Opis
Przedmiot 0:n Definiuje dostępną opcję, aby użytkownik wybrał oświadczenie 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. Oba zestawy 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:

Składnik Wystąpień Opis
Zlokalizowane ciągi 1:n Zlokalizowany ciąg.

Element LocalizedString zawiera następujące atrybuty:

Atrybut Wymagane Opis
Typ elementu 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.
Identyfikator ciągu Tak Jeśli parametr ElementType jest ustawiony na ClaimTypewartość , ten element zawiera odwołanie do atrybutu typu oświadczenia. Możliwe wartości: DisplayName, lub AdminHelpTextPatternHelpText. Wartość DisplayName jest używana do ustawiania nazwy wyświetlanej oświadczenia. Wartość AdminHelpText jest używana 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.

Typ elementu

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 Typ elementu Identyfikator elementu Identyfikator ciągu
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, , DisplayNamePatternHelpTexti UserHelpText.
Komunikat o błędzie ErrorMessage Identyfikator komunikatu o błędzie
Kopiuje zlokalizowane ciągi do oświadczeń GetLocalizedStringsTransformationClaimType Nazwa oświadczenia wyjściowego
Komunikat użytkownika predykatu Predicate Nazwa predykatu Atrybut predykatu, który ma być 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 zostać zlokalizowany.
Kontrolka wyświetlania DisplayControl Identyfikator kontrolki wyświetlania. Identyfikator elementu interfejsu użytkownika, który ma zostać zlokalizowany.

Przykłady

ClaimsProvider (Dostawca roszczeń)

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

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

Typ oświadczenia

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>

Komunikat o błędzie

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 zlokalizować 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="ResponseMessage_EmailExists" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="responseMsg" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>

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

Wartość GetLocalizedStringsTransformationClaimType służy do kopiowania zlokalizowanych ciągów do oświadczeń. Aby uzyskać więcej informacji, zobacz GetLocalizedStringsTransformation claims transformation

<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 tekstu 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 zlokalizować przyciski kontynuuj i anulować.

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

Sterowanie wyświetlaczem

Wartość DisplayControl służy do lokalizowania jednego z elementów interfejsu użytkownika kontrolki sterowania . Po włączeniu kontrolka wyświetlania zlokalizowanych ciągów 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 samodzielnego profilu technicznego przywoływane elementy ContentDefinition muszą mieć ustawioną wartość DataUri 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>
  ...

Dalsze kroki

Zobacz następujące artykuły, aby zapoznać się z przykładami lokalizacji: