Lokaliseringselement

Anteckning

I Azure Active Directory B2C är anpassade principer främst utformade för att hantera komplexa scenarier. I de flesta scenarier rekommenderar vi att du använder inbyggda användarflöden. Om du inte har gjort det kan du läsa mer om startpaketet för anpassad princip i Kom igång med anpassade principer i Active Directory B2C.

Med elementet Lokalisering kan du stödja flera nationella inställningar eller språk i principen för användarresorna. Med lokaliseringsstödet i principer kan du:

  • Konfigurera den explicita listan över språk som stöds i en princip och välj ett standardspråk.
  • Ange språkspecifika strängar och samlingar.
<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">
  ...

Lokaliseringselementet innehåller följande attribut:

Attribut Krävs Description
Enabled No Möjliga värden: true eller false.

Lokaliseringselementet innehåller följande XML-element

Element Händelser Description
SupportedLanguages 1:n Lista över språk som stöds.
LocalizedResources 0:n Lista över lokaliserade resurser.

SupportedLanguages

Elementet SupportedLanguages innehåller följande attribut:

Attribut Krävs Beskrivning
DefaultLanguage Yes Det språk som ska användas som standard för lokaliserade resurser.
MergeBehavior No Uppräkningsvärden för värden som sammanfogas tillsammans med alla ClaimType-värden som finns i en överordnad princip med samma identifierare. Använd det här attributet när du skriver över ett anspråk som anges i basprincipen. Möjliga värden: Append, Prependeller ReplaceAll. Värdet Append anger att insamlingen av data som finns ska läggas till i slutet av samlingen som anges i den överordnade principen. Värdet Prepend anger att insamlingen av data som finns ska läggas till innan samlingen som anges i den överordnade principen. Värdet ReplaceAll anger att datainsamlingen som definierats i den överordnade principen ska ignoreras, med hjälp av de data som definierats i den aktuella principen i stället.

SupportedLanguages

Elementet SupportedLanguages innehåller följande element:

Element Händelser Description
SupportedLanguage 1:n Visar innehåll som överensstämmer med en språktagg per RFC 5646 – Taggar för att identifiera språk.

LocalizedResources

Elementet LocalizedResources innehåller följande attribut:

Attribut Krävs Beskrivning
Id Yes En identifierare som används för att unikt identifiera lokaliserade resurser.

Elementet LocalizedResources innehåller följande element:

Element Händelser Description
LocalizedCollections 0:n Definierar hela samlingar i olika kulturer. En samling kan ha olika antal objekt och olika strängar för olika kulturer. Exempel på samlingar är uppräkningar som visas i anspråkstyper. Till exempel visas en land-/regionlista för användaren i en listruta.
LocalizedStrings 0:n Definierar alla strängar, förutom de strängar som visas i samlingar, i olika kulturer.

LocalizedCollections

Elementet LocalizedCollections innehåller följande element:

Element Händelser Description
LocalizedCollection 1:n Lista över språk som stöds.

LocalizedCollection

Elementet LocalizedCollection innehåller följande attribut:

Attribut Krävs Beskrivning
ElementType Yes Refererar till ett ClaimType-element eller ett användargränssnittselement i principfilen.
ElementId Yes En sträng som innehåller en referens till en anspråkstyp som redan har definierats i avsnittet ClaimsSchema som används om ElementType är inställt på en ClaimType.
TargetCollection Yes Målsamlingen.

Elementet LocalizedCollection innehåller följande element:

Element Händelser Description
Objekt 0:n Definierar ett tillgängligt alternativ för användaren att välja för ett anspråk i användargränssnittet, till exempel ett värde i en listruta.

Elementet Item innehåller följande attribut:

Attribut Krävs Beskrivning
Text Yes Den användarvänliga visningssträngen som ska visas för användaren i användargränssnittet för det här alternativet.
Värde Yes Det stränganspråksvärde som är associerat med att välja det här alternativet.
SelectByDefault No Anger om det här alternativet ska väljas som standard i användargränssnittet. Möjliga värden: Sant eller Falskt.

I följande exempel visas användningen av elementet LocalizedCollections . Den innehåller två LocalizedCollection-element , ett för engelska och ett annat för spanska. Båda anger begränsningssamlingen för anspråket Gender med en lista över objekt för engelska och spanska. Fler exempel finns i liveuppräkningen för anspråksbegränsning.

<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

Elementet LocalizedStrings innehåller följande element:

Element Händelser Description
LocalizedString 1:n En lokaliserad sträng.

Elementet LocalizedString innehåller följande attribut:

Attribut Krävs Beskrivning
ElementType Yes Möjliga värden: ClaimsProvider, ClaimType, ErrorMessage, GetLocalizedStringsTransformationClaimType, FormatLocalizedStringTransformationClaimType, Predicate, PredicateValidation eller UxElement.
ElementId Yes Om ElementType är inställt på ClaimType, Predicateeller PredicateValidation, innehåller det här elementet en referens till en anspråkstyp som redan har definierats i avsnittet ClaimsSchema.
StringId Yes Om ElementType är inställt på ClaimTypeinnehåller det här elementet en referens till ett attribut av en anspråkstyp. Möjliga värden: DisplayName, AdminHelpTexteller PatternHelpText. Värdet DisplayName används för att ange anspråksvisningsnamnet. Värdet AdminHelpText används för att ange hjälptextnamnet för anspråksanvändaren. Värdet PatternHelpText används för att ange hjälptexten för anspråksmönster. Om ElementType är inställt på UxElementinnehåller det här elementet en referens till ett attribut för ett användargränssnittselement. Om ElementType är inställt på ErrorMessageanger det här elementet identifieraren för ett felmeddelande. Se Lokaliseringssträngs-ID: t för en fullständig lista över identifierarna UxElement .

ElementType

ElementType-referensen till en anspråkstyp, en anspråkstransformering eller ett användargränssnittselement i principen som ska lokaliseras.

Element som ska lokaliseras ElementType ElementId StringId
Identitetsproviderns namn ClaimsProvider ID för elementet ClaimsExchange
Anspråkstypattribut ClaimType Namn på anspråkstypen Attributet för anspråket som ska lokaliseras. Möjliga värden: AdminHelpText, DisplayName, PatternHelpTextoch UserHelpText.
Felmeddelande ErrorMessage ID:t för felmeddelandet
Kopierar lokaliserade strängar till anspråk GetLocalizedStringsTra nsformationClaimType Namnet på utdataanspråket
Predikat användarmeddelande Predicate Namnet på predikatet Attributet för predikatet som ska lokaliseras. Möjliga värden: HelpText.
Användarmeddelande för predikatgrupp PredicateValidation ID för elementet PredicateValidation. ID för elementet PredicateGroup. Predikatgruppen måste vara underordnad det predikatvalideringselement som definieras i ElementId.
Element för användargränssnitt UxElement ID för användargränssnittselementet som ska lokaliseras.
Visningskontroll DisplayControl ID för visningskontrollen. ID för användargränssnittselementet som ska lokaliseras.

Exempel

ClaimsProvider

Värdet ClaimsProvider används för att lokalisera en av anspråksproviderns visningsnamn.

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

I följande exempel visas hur du lokaliserar anspråksproviders visningsnamn.

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

ClaimType

Värdet ClaimType används för att lokalisera ett av anspråksattributen.

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

I följande exempel visas hur du lokaliserar attributen DisplayName, UserHelpText och PatternHelpText för anspråkstypen för e-post.

<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

Värdet ErrorMessage används för att lokalisera ett av systemfelmeddelandena.

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

I följande exempel visas hur du lokaliserar felmeddelandet UserMessageIfClaimsPrincipalAlreadyExists.

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

FormatLocalizedStringTransformationClaimType

Värdet FormatLocalizedStringTransformationClaimType används för att formatera anspråk till en lokaliserad sträng. Mer information finns i FormatLocalizedString-anspråkstransformering

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

I följande exempel visas hur du lokaliserar strängformatet för anspråkstransformationen 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

Värdet GetLocalizedStringsTransformationClaimType används för att kopiera lokaliserade strängar till anspråk. Mer information finns i 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>

I följande exempel visas hur du lokaliserar utdataanspråk för anspråkstransformationen 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>

Predikat

Predikatvärdet används för att lokalisera ett av de predikatfelmeddelandena .

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

I följande exempel visas hur du lokaliserar predikathjälptext.

<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

Värdet PredicateValidation används för att lokalisera ett av felmeddelandena för gruppen 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>

I följande exempel visas hur du lokaliserar hjälptexten för en predikatverifieringsgrupp.

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

UxElement

Värdet UxElement används för att lokalisera ett av användargränssnittselementen. I följande exempel visas hur du lokaliserar knapparna Fortsätt och Avbryt.

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

DisplayControl

DisplayControl-värdet används för att lokalisera ett av gränssnittselementen för visningskontroll . När den är aktiverad har visningskontrollen localizedStrings företräde framför några av UxElement StringID:erna som ver_but_send, ver_but_edit, ver_but_resend och ver_but_verify. I följande exempel visas hur du lokaliserar knapparna skicka och verifiera.

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

I avsnittet Metadata i en självsäkrad teknisk profil måste det refererade ContentDefinition ha DataUri inställt på sidlayout version 2.1.0 eller senare. Exempel:

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

Nästa steg

Se följande artiklar för lokaliseringsexempel: