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 , Prepend lub 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 , Predicate lub PredicateValidation , ten element zawiera odwołanie do typu oświadczenia już zdefiniowanego w sekcji ClaimsSchema. |
StringId | Tak | Jeśli parametr ElementType jest ustawiony na ClaimType wartość , ten element zawiera odwołanie do atrybutu typu oświadczenia. Możliwe wartości: DisplayName , AdminHelpText lub 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 UxElement wartość , ten element zawiera odwołanie do atrybutu elementu interfejsu użytkownika. Jeśli parametr ElementType jest ustawiony na ErrorMessage wartość , 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 , , PatternHelpText DisplayName i 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: