Localization-Element
Hinweis
In Azure Active Directory B2C sind benutzerdefinierte Richtlinien in erster Linie für komplexe Szenarien konzipiert. Für die meisten Szenarien empfehlen wir die Verwendung von integrierten Benutzerflows. Informieren Sie sich, sofern noch nicht geschehen, unter Tutorial: Erstellen von Benutzerflows und benutzerdefinierten Richtlinien in Azure Active Directory B2C über das Starter Pack für benutzerdefinierte Richtlinien.
Mithilfe des Localization-Elements können Sie mehrere Gebietsschemas oder Sprachen in der Richtlinie für die User Journeys unterstützen. Die Unterstützung der Lokalisierung in den Richtlinien ermöglicht Folgendes:
- Einrichten einer expliziten Liste der unterstützten Sprachen in einer Richtlinie und Auswählen einer Standardsprache
- Angeben von sprachspezifischen Zeichenfolgen und Sammlungen
<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">
...
Das Localization-Element enthält die folgenden Attribute:
attribute | Erforderlich | BESCHREIBUNG |
---|---|---|
Aktiviert | Nein | Mögliche Werte: true oder false . |
Das Localization-Element enthält die folgenden XML-Elemente:
Element | Vorkommen | BESCHREIBUNG |
---|---|---|
SupportedLanguages | 1:n | Liste der unterstützten Sprachen |
LocalizedResources | 0:n | Liste der lokalisierten Ressourcen |
SupportedLanguages
Das SupportedLanguages-Element enthält die folgenden Attribute:
attribute | Erforderlich | BESCHREIBUNG |
---|---|---|
DefaultLanguage | Ja | Die Sprache, die standardmäßig für lokalisierte Ressourcen verwendet werden soll |
MergeBehavior | Nein | Enumerationswerte von Werten, die mit jedem Anspruchstyp in übergeordneten Richtlinien mit dem gleichen Bezeichner zusammengeführt werden. Verwenden Sie dieses Attribut, wenn Sie einen Anspruch, der in der Basisrichtlinie angegeben ist, überschreiben. Mögliche Werte: Append , Prepend oder ReplaceAll . Der Wert Append gibt an, dass die Sammlung von Daten an das Ende der Sammlung, die in der übergeordneten Richtlinie angegebenen ist, angefügt werden soll. Der Wert Prepend gibt an, dass die Sammlung von Daten vor der Sammlung, die in der übergeordneten Richtlinie angegebenen ist, eingefügt werden soll. Der Wert ReplaceAll gibt an, dass die Sammlung von Daten, die in der übergeordneten Richtlinie definiert sind, ignoriert werden soll und stattdessen die in der aktuellen Richtlinie definierten Daten verwendet werden sollen. |
SupportedLanguages
Das SupportedLanguages-Element enthält die folgenden Elemente:
Element | Vorkommen | BESCHREIBUNG |
---|---|---|
SupportedLanguage | 1:n | Zeigt Inhalt an, der einem Sprachtag nach „RFC 5646 – Tags for Identifying Languages“ (Tags für das Angeben von Sprachen) entspricht. |
LocalizedResources
Das LocalizedResources-Element enthält die folgenden Attribute:
attribute | Erforderlich | BESCHREIBUNG |
---|---|---|
Id | Ja | Ein Bezeichner, der zur eindeutigen Identifizierung von lokalisierten Ressourcen verwendet wird. |
Das LocalizedResources-Element enthält die folgenden Elemente:
Element | Vorkommen | BESCHREIBUNG |
---|---|---|
LocalizedCollections | 0:n | Definiert vollständige Sammlungen in verschiedenen Kulturen. Eine Sammlung kann eine unterschiedliche Anzahl von Elementen und unterschiedliche Zeichenfolgen für verschiedene Kulturen aufweisen. Beispiele für Sammlung sind die Enumerationen, die in Anspruchstypen angezeigt werden. Beispielsweise wird dem Benutzer eine Liste mit Ländern/Regionen in einer Dropdownliste angezeigt. |
LocalizedStrings | 0:n | Definiert alle Zeichenfolgen in verschiedenen Kulturen, mit Ausnahme von Zeichenfolgen, die in Sammlungen enthalten sind. |
LocalizedCollections
Das LocalizedCollections-Element enthält die folgenden Elemente:
Element | Vorkommen | BESCHREIBUNG |
---|---|---|
LocalizedCollection | 1:n | Liste der unterstützten Sprachen |
LocalizedCollection
Das LocalizedCollection-Element enthält die folgenden Attribute:
attribute | Erforderlich | BESCHREIBUNG |
---|---|---|
ElementType | Ja | Verweist auf ein ClaimType-Element oder ein Element der Benutzeroberfläche in der Richtliniendatei. |
ElementId | Ja | Eine Zeichenfolge mit einem Verweis auf einen Anspruchstyp, der bereits in dem ClaimsSchema-Abschnitt, der bei Festlegung von ElementType auf einen Anspruchstyp verwendet wird, definiert wurde. |
TargetCollection | Ja | Die Zielsammlung. |
Das LocalizedCollection-Element enthält die folgenden Elemente:
Element | Vorkommen | BESCHREIBUNG |
---|---|---|
Element | 0:n | Definiert eine verfügbare Option für den Benutzer, über die dieser einen Anspruch in der Benutzeroberfläche auswählen kann, z.B. einen Wert in einer Dropdownliste. |
Das Item-Element enthält die folgenden Attribute:
attribute | Erforderlich | BESCHREIBUNG |
---|---|---|
Text | Ja | Die benutzerfreundliche Anzeigezeichenfolge, die dem Benutzer auf der Benutzeroberfläche für diese Option angezeigt werden soll. |
Wert | Ja | Der Wert des Zeichenfolgenanspruchs, der der Auswahl dieser Option zugeordnet ist. |
SelectByDefault | Nein | Gibt an, ob diese Option auf der Benutzeroberfläche standardmäßig ausgewählt werden soll. Mögliche Werte: „True“ oder „False“. |
Das folgende Beispiel zeigt die Verwendung des LocalizedCollections-Elements. Es enthält zwei LocalizedCollection-Elemente, eines für Englisch und ein anderes für Spanisch. Beide legen die Restriction-Sammlung des Anspruchs Gender
auf eine Liste von Elementen für Englisch und Spanisch fest. Weitere Beispiele finden Sie in der Livedemo zu Enumerationen für Anspruchseinschränkungen.
<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
Das LocalizedStrings-Element enthält die folgenden Elemente:
Element | Vorkommen | BESCHREIBUNG |
---|---|---|
LocalizedString | 1:n | Eine lokalisierte Zeichenfolge. |
Das LocalizedString-Element enthält die folgenden Attribute:
attribute | Erforderlich | BESCHREIBUNG |
---|---|---|
ElementType | Ja | Mögliche Werte: ClaimsProvider, ClaimType, ErrorMessage, GetLocalizedStringsTransformationClaimType, FormatLocalizedStringTransformationClaimType, Predicate, PredicateValidation oder UxElement. |
ElementId | Ja | Wenn ElementType auf ClaimType , Predicate oder PredicateValidation festgelegt wurde, enthält dieses Element einen Verweis auf einen Anspruchstyp, der bereits im ClaimsSchema-Abschnitt definiert wurde. |
StringId | Ja | Wenn ElementType auf ClaimType festgelegt ist, enthält dieses Element einen Verweis auf ein Attribut eines Anspruchstyps. Mögliche Werte: DisplayName , AdminHelpText oder PatternHelpText . Der Wert DisplayName wird verwendet, um den Anzeigenamen des Anspruchs festzulegen. Der Wert AdminHelpText wird verwendet, um den Namen des Hilfetexts des Anspruchsbenutzers festzulegen. Der Wert PatternHelpText wird verwendet, um den Hilfetext des Anspruchsmusters festzulegen. Wenn ElementType auf UxElement festgelegt ist, enthält dieses Element einen Verweis auf ein Attribut eines Elements der Benutzeroberfläche. Wenn ElementType auf ErrorMessage festgelegt ist, gibt dieses Element die ID einer Fehlermeldung an. Unter Lokalisierungszeichenfolgen-IDs finden Sie eine vollständige Liste der UxElement -Bezeichner. |
ElementType
Der „ElementType“-Verweis auf einen Anspruchstyp, eine Anspruchstransformation oder ein Benutzeroberflächenelement in der zu lokalisierenden Richtlinie.
Zu lokalisierendes Element | ElementType | ElementId | StringId |
---|---|---|---|
Identitätsanbietername | ClaimsProvider |
Die ID des „ClaimsExchange“-Elements | |
Anspruchstypattribute | ClaimType |
Der Name des Anspruchstyps | Das Attribut des zu lokalisierenden Anspruchs. Mögliche Werte: AdminHelpText , DisplayName , PatternHelpText und UserHelpText . |
Fehlermeldung | ErrorMessage |
Die ID der Fehlermeldung | |
Kopiert lokalisierte Zeichenfolgen in Ansprüche | GetLocalizedStringsTra nsformationClaimType |
Der Name des Ausgabeanspruchs | |
Prädikat, Benutzermeldung | Predicate |
Der Name des Prädikats | Das Attribut des zu lokalisierenden Prädikats. Mögliche Werte: HelpText . |
Prädikatgruppe, Benutzermeldung | PredicateValidation |
Die ID des „PredicateValidation“-Elements. | Die ID des „PredicateGroup“-Elements. Die Prädikatgruppe muss ein untergeordnetes Element des Prädikatüberprüfungselements gemäß der ElementId sein. |
Benutzeroberflächenelemente | UxElement |
Die ID des zu lokalisierenden Benutzeroberflächenelements. | |
Anzeigesteuerelement | DisplayControl |
Die ID des Anzeigesteuerelements. | Die ID des zu lokalisierenden Benutzeroberflächenelements. |
Beispiele
ClaimsProvider
Der Wert „ClaimsProvider“ wird verwendet, um einen der Anzeigenamen eines Anspruchsanbieters zu lokalisieren.
<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>
Im folgenden Beispiel wird gezeigt, wie der Anzeigename von Anspruchsanbietern lokalisiert wird.
<LocalizedString ElementType="ClaimsProvider" StringId="FacebookExchange">Facebook</LocalizedString>
<LocalizedString ElementType="ClaimsProvider" StringId="GoogleExchange">Google</LocalizedString>
<LocalizedString ElementType="ClaimsProvider" StringId="LinkedInExchange">LinkedIn</LocalizedString>
ClaimType
Der Wert „ClaimType“ wird verwendet, um eines der Anspruchsattribute zu lokalisieren.
<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>
Im folgenden Beispiel wird gezeigt, wie die Attribute „DisplayName“, „UserHelpText“ und „PatternHelpText“ des Anspruchstyps „email“ lokalisiert werden.
<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
Der Wert „ErrorMessage“ wird verwendet, um eine der Systemfehlermeldungen zu lokalisieren.
<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>
Im folgenden Beispiel wird gezeigt, wie die Fehlermeldung „UserMessageIfClaimsPrincipalAlreadyExists“ lokalisiert wird.
<LocalizedString ElementType="ErrorMessage" StringId="UserMessageIfClaimsPrincipalAlreadyExists">The account you are trying to create already exists, please sign-in.</LocalizedString>
FormatLocalizedStringTransformationClaimType
Der Wert „FormatLocalizedStringTransformationClaimType“ wird verwendet, um Ansprüche als lokalisierte Zeichenfolge zu formatieren. Weitere Informationen finden Sie unter Anspruchstransformation: 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>
Im folgenden Beispiel wird gezeigt, wie das Zeichenfolgeformat der Anspruchstransformation „FormatLocalizedStringTransformationClaimType“ lokalisiert wird.
<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
Der Wert „GetLocalizedStringsTransformationClaimType“ wird verwendet, um lokalisierte Zeichenfolgen in Ansprüche zu kopieren. Weitere Informationen finden Sie unter Anspruchstransformation „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>
Im folgenden Beispiel wird gezeigt, wie Ausgabeansprüche der Anspruchstransformation „GetLocalizedStringsTransformation“ lokalisiert werden.
<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>
Predicate
Der Wert „Predicate“ wird verwendet, um eine der Predicate-Fehlermeldungen zu lokalisieren.
<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>
Im folgenden Beispiel wird gezeigt, wie der Hilfetext für Prädikate lokalisiert wird.
<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
Der Wert „PredicateValidation“ wird verwendet, um eine der Fehlermeldungen der Gruppe PredicateValidation zu lokalisieren.
<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>
Im folgenden Beispiel wird gezeigt, wie der Hilfetext für eine Prädikatüberprüfungsgruppe lokalisiert wird.
<LocalizedString ElementType="PredicateValidation" ElementId="CustomPassword" StringId="CharacterClasses">The password must have at least 3 of the following:</LocalizedString>
UxElement
Der Wert „UxElement“ wird verwendet, um eines der Benutzeroberflächenelemente zu lokalisieren. Im folgenden Beispiel wird gezeigt, wie die Schaltflächen „continue“ (Weiter) und „Cancel“ (Abbrechen) lokalisiert werden.
<LocalizedString ElementType="UxElement" StringId="button_continue">Create new account</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="button_cancel">Cancel</LocalizedString>
DisplayControl
Der Wert „DisplayControl“ wird zum Lokalisieren eines der Benutzeroberflächenelemente des Typs Anzeigesteuerelement verwendet. Wenn diese Option aktiviert ist, hat das Anzeigesteuerelement „localizedStrings“ *Vorrang vor einigen der UxElement*-StringIDs wie ver_but_send, ver_but_editver_but_resend und ver_but_verify. Im folgenden Beispiel wird gezeigt, wie die Schaltflächen „send“ (Senden) und „verify“ (Überprüfen) lokalisiert werden.
<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>
Im Abschnitt „Metadaten“ eines selbstbestätigten technischen Profils muss für das „ContentDefinition“-Element, auf das verwiesen wird, der Wert „DataUri“ auf Seitenlayoutversion 2.1.0 oder höher festgelegt sein. Beispiel:
<ContentDefinition Id="api.selfasserted">
<DataUri>urn:com:microsoft:aad:b2c:elements:selfasserted:2.1.0</DataUri>
...
Nächste Schritte
Die folgenden Artikel enthalten Lokalisierungsbeispiele: