Freigeben über


Sprachanpassung in Azure Active Directory B2C

Von Bedeutung

Ab dem 1. Mai 2025 steht Azure AD B2C nicht mehr für neue Kunden zur Verfügung. Weitere Informationen finden Sie in unseren HÄUFIG gestellten Fragen.

Bevor Sie beginnen, verwenden Sie die Auswahl eines Richtlinientyps oben auf dieser Seite, um den Typ der Richtlinie auszuwählen, die Sie einrichten. Azure Active Directory B2C bietet zwei Methoden zum Definieren der Benutzerinteraktion mit Ihren Anwendungen: vordefinierte Benutzerflows oder vollständig konfigurierbare benutzerdefinierte Richtlinien. Die Schritte, die in diesem Artikel erforderlich sind, unterscheiden sich für jede Methode.

Die Sprachanpassung in Azure Active Directory B2C (Azure AD B2C) ermöglicht Es Ihrem Benutzerfluss, unterschiedliche Sprachen an Ihre Kundenanforderungen anzupassen. Microsoft stellt die Übersetzungen für 36 Sprachen bereit, Sie können aber auch eigene Übersetzungen für jede Sprache bereitstellen. Auch wenn Ihre Erfahrung nur für eine einzelne Sprache bereitgestellt wird, können Sie jeden Text auf den Seiten anpassen.

Funktionsweise der Sprachanpassung

Mithilfe der Sprachanpassung können Sie auswählen, in welchen Sprachen Ihr Benutzerablauf verfügbar ist. Nachdem das Feature aktiviert wurde, können Sie den Abfragezeichenfolgenparameter ui_localesaus Ihrer Anwendung bereitstellen. Wenn Sie Azure AD B2C aufrufen, wird Ihre Seite in das von Ihnen angegebene Gebietsschema übersetzt. Diese Art von Konfiguration bietet Ihnen die vollständige Kontrolle über die Sprachen in Ihrem Benutzerablauf und ignoriert die Spracheinstellungen des Browsers des Kunden.

Möglicherweise benötigen Sie nicht so viel Kontrolle darüber, welche Sprachen der Kunde sieht. Wenn Sie keinen Parameter angeben ui_locales , wird die Benutzeroberfläche des Kunden durch die Einstellungen des Browsers bestimmt. Sie können weiterhin steuern, in welche Sprachen Der Benutzerablauf übersetzt wird, indem Sie sie als unterstützte Sprache hinzufügen. Wenn der Browser eines Kunden so festgelegt ist, dass eine Sprache angezeigt wird, die Sie nicht unterstützen möchten, wird stattdessen die sprache angezeigt, die Sie als Standard in unterstützten Kulturen ausgewählt haben.

  • Für „ui-locales“ angegebene Sprache: Nach Aktivierung der Sprachanpassung wird der Benutzerflow in die hier angegebene Sprache übersetzt.
  • Vom Browser angeforderte Sprache: Wenn kein ui_locales Parameter angegeben wurde, wird der Benutzerfluss in die vom Browser angeforderte Sprache übersetzt, wenn die Sprache unterstützt wird.
  • Richtlinienstandardsprache: Wenn der Browser keine Sprache angibt oder eine Sprache angibt, die nicht unterstützt wird, wird der Benutzerfluss in die Standardsprache des Benutzerflusses übersetzt.

Hinweis

Wenn Sie benutzerdefinierte Benutzerattribute verwenden, müssen Sie eigene Übersetzungen bereitstellen. Weitere Informationen finden Sie unter Anpassen Ihrer Zeichenfolgen.

Schauen Sie sich dieses Video an, um zu erfahren, wie Sie die Sprache mithilfe von Azure AD B2C lokalisieren oder anpassen.

Lokalisierung erfordert drei Schritte:

  1. Einrichten der expliziten Liste der unterstützten Sprachen
  2. Angeben der sprachspezifischen Zeichenfolgen und Sammlungen
  3. Bearbeiten Sie die Inhaltsdefinition für die Seite.

Voraussetzungen

Unterstützung angeforderter Sprachen für ui_locales

Richtlinien, die vor der allgemeinen Verfügbarkeit der Sprachanpassung erstellt wurden, müssen dieses Feature zuerst aktivieren. Bei später erstellten Richtlinien und Benutzerflows ist die Sprachanpassung standardmäßig aktiviert.

Wenn Sie die Sprachanpassung für einen Benutzerablauf aktivieren, können Sie die Sprache des Benutzerflusses steuern, indem Sie den ui_locales Parameter hinzufügen.

  1. Wählen Sie in Ihrem Azure AD B2C-Mandanten Benutzerflüsse aus.
  2. Klicken Sie auf den Benutzerfluss, den Sie für Übersetzungen aktivieren möchten.
  3. Wählen Sie "Sprachen" aus.
  4. Wählen Sie "Sprachanpassung aktivieren" aus.

Wählen Sie aus, welche Sprachen in Ihrem Benutzerablauf aktiviert sind.

Aktivieren Sie eine Reihe von Sprachen, in die der Benutzerablauf übersetzt werden kann, wenn sie vom Browser ohne den ui_locales Parameter angefordert wird.

  1. Stellen Sie anhand der oben genannten Anweisungen sicher, dass die Sprachanpassung für Ihren Benutzerflow aktiviert ist.
  2. Wählen Sie auf der Seite "Sprachen " für den Benutzerablauf eine Sprache aus, die Sie unterstützen möchten.
  3. Ändern Sie im Eigenschaftenbereich "Aktiviert" in "Ja".
  4. Wählen Sie oben im Eigenschaftenbereich " Speichern " aus.

Hinweis

Wenn kein ui_locales Parameter angegeben wird, wird die Seite nur dann in die Browsersprache des Kunden übersetzt, wenn er aktiviert ist.

Anpassen von Zeichenfolgen

Mit der Sprachanpassung können Sie alle Zeichenfolgen Ihres Benutzerflows anpassen.

  1. Stellen Sie sicher, dass in Ihrem Benutzerablauf die Sprachanpassung gemäß den vorherigen Anweisungen aktiviert ist.
  2. Wählen Sie auf der Seite "Sprachen " für den Benutzerablauf die Sprache aus, die Sie anpassen möchten.
  3. Wählen Sie unter "Ressourcendateien auf Seitenebene" die Seite aus, die Sie bearbeiten möchten.
  4. Wählen Sie "Standardwerte herunterladen" aus (oder "Außerkraftsetzungen herunterladen" , wenn Sie diese Sprache zuvor bearbeitet haben).

Bei diesen Schritten erhalten Sie eine JSON-Datei, die Sie nutzen können, um mit dem Bearbeiten Ihrer Zeichenfolgen zu beginnen.

Ändern einer beliebigen Zeichenfolge auf der Seite

  1. Öffnen Sie die JSON-Datei, die Sie im Rahmen der obigen Anleitung heruntergeladen haben, in einem JSON-Editor.
  2. Suchen Sie nach dem Element, das Sie ändern möchten. Sie können nach der StringId der gewünschten Zeichenfolge oder nach dem Attribut Value suchen, das Sie ändern möchten.
  3. Aktualisieren Sie das Value-Attribut mit den Daten, die angezeigt werden sollen.
  4. Ändern Sie Override für jede Zeichenfolge, die Sie ändern möchten, in true.
  5. Speichern Sie die Datei, und laden Sie Ihre Änderungen hoch. (Sie können das Uploadsteuerelement an derselben Stelle finden, an der Sie die JSON-Datei heruntergeladen haben.)

Von Bedeutung

Wenn Sie eine Zeichenfolge überschreiben müssen, stellen Sie sicher, dass Sie den Override-Wert auf true setzen. Wenn der Wert nicht geändert wird, wird der Eintrag ignoriert.

Ändern von Erweiterungsattributen

Wenn Sie die Zeichenfolge für ein benutzerdefiniertes Benutzerattribut ändern oder dem JSON-Code eine Zeichenfolge hinzufügen möchten, verwenden Sie das folgende Format:

{
  "LocalizedStrings": [
    {
      "ElementType": "ClaimType",
      "ElementId": "extension_<ExtensionAttribute>",
      "StringId": "DisplayName",
      "Override": true,
      "Value": "<ExtensionAttributeValue>"
    }
    [...]
  ]
}

Ersetzen Sie <ExtensionAttribute> durch den Namen Ihres benutzerdefinierten Benutzerattributs.

Ersetzen Sie <ExtensionAttributeValue> durch die neue Zeichenfolge, die angezeigt werden soll.

Angeben einer Liste mit Werten mithilfe von „LocalizedCollections“

Wenn Sie eine feste Liste mit Werten für Antworten bereitstellen möchten, müssen Sie ein Attribut vom Typ LocalizedCollections erstellen. Bei LocalizedCollections handelt es sich um ein Array mit Paaren aus Name und Value. Die Reihenfolge der Elemente ist dieselbe, in der sie angezeigt werden. Verwenden Sie zum Hinzufügen von LocalizedCollections das folgende Format:

{
  "LocalizedStrings": [...],
  "LocalizedCollections": [
    {
      "ElementType":"ClaimType",
      "ElementId":"<UserAttribute>",
      "TargetCollection":"Restriction",
      "Override": true,
      "Items":[
        {
          "Name":"<Response1>",
          "Value":"<Value1>"
        },
        {
          "Name":"<Response2>",
          "Value":"<Value2>"
        }
      ]
    }
  ]
}
  • ElementId ist das Benutzerattribut, für das dieses Attribut vom Typ LocalizedCollections eine Antwort darstellt.
  • Name ist der Wert, der dem Benutzer angezeigt wird.
  • Value wird im Anspruch zurückgegeben, wenn diese Option ausgewählt wird.

Hochladen von Änderungen

  1. Nachdem Sie die Änderungen an Ihrer JSON-Datei abgeschlossen haben, kehren Sie zu Ihrem B2C-Mandanten zurück.
  2. Wählen Sie Benutzerflüsse aus, und klicken Sie auf den Benutzerfluss, den Sie für Übersetzungen aktivieren möchten.
  3. Wählen Sie "Sprachen" aus.
  4. Wählen Sie die gewünschte Zielsprache für die Übersetzung aus.
  5. Wählen Sie die Seite aus, auf der Sie Übersetzungen bereitstellen möchten.
  6. Klicken Sie auf das Ordnersymbol, und wählen Sie die hochzuladende JSON-Datei aus.

Die Änderungen werden automatisch in Ihrem Benutzerflow gespeichert.

Anpassen der Seiten-UI mithilfe der Sprachanpassung

Es gibt zwei Möglichkeiten zum Lokalisieren von HTML-Inhalten. Eine Möglichkeit besteht darin, die Sprachanpassung zu aktivieren. Durch aktivieren dieses Feature kann Azure AD B2C den OpenID Connect-Parameter ui-localesan Ihren Endpunkt weiterleiten. Ihr Inhaltsserver kann diesen Parameter verwenden, um benutzerdefinierte HTML-Seiten bereitzustellen, die sprachspezifisch sind.

Alternativ können Sie Inhalte aus verschiedenen Quellen basierend auf der verwendeten Regionseinstellung abrufen. In Ihrem CORS-fähigen Endpunkt können Sie eine Ordnerstruktur einrichten, um Inhalte für bestimmte Sprachen zu hosten. Wenn Sie den Platzhalterwert {Culture:RFC5646} verwenden, wird der passende Inhalt abgerufen. Gehen Sie beispielsweise davon aus, dass es sich um ihren benutzerdefinierten Seiten-URI handelt:

https://wingtiptoysb2c.blob.core.windows.net/{Culture:RFC5646}/wingtip/unified.html

Sie können die Seite in fr laden. Wenn die Seite HTML- und CSS-Inhalte abruft, erfolgt dies von:

https://wingtiptoysb2c.blob.core.windows.net/fr/wingtip/unified.html

Hinzufügen von benutzerdefinierten Sprachen

Sie können auch Sprachen hinzufügen, für die Microsoft derzeit keine Übersetzungen bereitstellt. Sie müssen die Übersetzungen für alle Zeichenfolgen im Benutzerablauf bereitstellen. Sprach- und Gebietsschemacodes sind auf diejenigen im ISO 639-1-Standard beschränkt. Das Lokale-Code-Format sollte „ISO_639-1_code“-„CountryCode“, beispielsweise en-GB, sein. Weitere Informationen finden Sie unter Gebietsschema-ID-Formate.

  1. Wählen Sie in Ihrem Azure AD B2C-Mandanten Benutzerflüsse aus.
  2. Klicken Sie auf den Benutzerfluss, in dem Sie benutzerdefinierte Sprachen hinzufügen möchten, und klicken Sie dann auf "Sprachen".
  3. Wählen Sie oben auf der Seite "Benutzerdefinierte Sprache hinzufügen " aus.
  4. Identifizieren Sie im daraufhin geöffneten Kontextbereich, für welche Sprache Sie Übersetzungen bereitstellen, indem Sie einen gültigen Gebietsschemacode eingeben.
  5. Für jede Seite können Sie eine Reihe von Überschreibungen für Englisch herunterladen und die Übersetzungen bearbeiten.
  6. Nachdem Sie mit den JSON-Dateien fertig sind, können Sie sie für jede Seite hochladen.
  7. Wählen Sie "Aktivieren" aus, und Ihr Benutzerablauf kann jetzt diese Sprache für Ihre Benutzer anzeigen.
  8. Speichern Sie die Sprache.

Von Bedeutung

Sie müssen entweder die benutzerdefinierten Sprachen aktivieren oder Außerkraftsetzungen dafür hochladen, bevor Sie speichern können.

Einrichten der Liste der unterstützten Sprachen

Öffnen Sie die Erweiterungsdatei Ihrer Richtlinie. Beispiel: SocialAndLocalAccounts/TrustFrameworkExtensions.xml.

  1. Suchen Sie nach dem BuildingBlocks-Element . Wenn das Element nicht vorhanden ist, fügen Sie es hinzu.
  2. Fügen Sie das Localization Element mit den unterstützten Sprachen hinzu: Englisch (Standard) und Spanisch.
<Localization Enabled="true">
  <SupportedLanguages DefaultLanguage="en" MergeBehavior="ReplaceAll">
    <SupportedLanguage>en</SupportedLanguage>
    <SupportedLanguage>es</SupportedLanguage>
  </SupportedLanguages>
</Localization>

Bereitstellen sprachspezifischer Bezeichnungen

Die LocalizedResources des Localization Elements enthält die Liste der lokalisierten Zeichenfolgen. Das lokalisierte Ressourcenelement verfügt über einen Bezeichner, der verwendet wird, um lokalisierte Ressourcen eindeutig zu identifizieren. Dieser Bezeichner wird später im Inhaltsdefinitionselement verwendet.

Sie konfigurieren lokalisierte Ressourcenelemente für die Inhaltsdefinition und jede sprache, die Sie unterstützen möchten. Um die einheitlichen Registrierungs- oder Anmeldeseiten für Englisch und Spanisch anzupassen, fügen Sie die folgenden LocalizedResources Elemente nach dem Schließen des </SupportedLanguages> Elements hinzu.

Hinweis

Im folgenden Beispiel haben wir das Pfundzeichen # am Anfang jeder Zeile hinzugefügt, sodass Sie die lokalisierten Beschriftungen auf dem Bildschirm problemlos finden können.

<!--Local account sign-up or sign-in page English-->
<Localization Enabled="true">
  ...
 <LocalizedResources Id="api.signuporsignin.en">
        <LocalizedStrings>
          <LocalizedString ElementType="ClaimType" ElementId="signInName" StringId="DisplayName">Email Address</LocalizedString>
          <LocalizedString ElementType="UxElement" StringId="heading">Sign in</LocalizedString>
          <LocalizedString ElementType="UxElement" StringId="social_intro">Sign in with your social account</LocalizedString>
          <LocalizedString ElementType="UxElement" StringId="local_intro_generic">Sign in with your {0}</LocalizedString>
          <LocalizedString ElementType="ClaimType" ElementId="password" StringId="DisplayName">Password</LocalizedString>
          <LocalizedString ElementType="UxElement" StringId="requiredField_password">Please enter your password</LocalizedString>
          <LocalizedString ElementType="UxElement" StringId="requiredField_generic">Please enter your {0}</LocalizedString>
          <LocalizedString ElementType="UxElement" StringId="invalid_generic">Please enter a valid {0}</LocalizedString>
          <LocalizedString ElementType="UxElement" StringId="createaccount_one_link">Sign up now</LocalizedString>
          <LocalizedString ElementType="UxElement" StringId="createaccount_two_links">Sign up with {0} or {1}</LocalizedString>
          <LocalizedString ElementType="UxElement" StringId="createaccount_three_links">Sign up with {0}, {1}, or {2}</LocalizedString>
          <LocalizedString ElementType="UxElement" StringId="forgotpassword_link">Forgot your password?</LocalizedString>
          <LocalizedString ElementType="UxElement" StringId="button_signin">Sign in</LocalizedString>
          <LocalizedString ElementType="UxElement" StringId="divider_title">OR</LocalizedString>
          <LocalizedString ElementType="UxElement" StringId="createaccount_intro">Don't have an account?</LocalizedString>
          <LocalizedString ElementType="UxElement" StringId="unknown_error">We are having trouble signing you in. Please try again later.</LocalizedString>
          <!-- Uncomment the remember_me only if the keep me signed in is activated. 
          <LocalizedString ElementType="UxElement" StringId="remember_me">Keep me signed in</LocalizedString> -->
          <LocalizedString ElementType="ClaimsProvider" StringId="FacebookExchange">Facebook</LocalizedString>
          <LocalizedString ElementType="ErrorMessage" StringId="ResourceOwnerFlowInvalidCredentials">Your password is incorrect.</LocalizedString>
          <LocalizedString ElementType="ErrorMessage" StringId="UserMessageIfInvalidPassword">Your password is incorrect.</LocalizedString>
          <LocalizedString ElementType="ErrorMessage" StringId="UserMessageIfPasswordExpired">Your password has expired.</LocalizedString>
          <LocalizedString ElementType="ErrorMessage" StringId="UserMessageIfClaimsPrincipalDoesNotExist">We can't seem to find your account.</LocalizedString>
          <LocalizedString ElementType="ErrorMessage" StringId="UserMessageIfOldPasswordUsed">Looks like you used an old password.</LocalizedString>
          <LocalizedString ElementType="ErrorMessage" StringId="DefaultMessage">Invalid username or password.</LocalizedString>
          <LocalizedString ElementType="ErrorMessage" StringId="UserMessageIfUserAccountDisabled">Your account has been locked. Contact your support person to unlock it, then try again.</LocalizedString>
          <LocalizedString ElementType="ErrorMessage" StringId="UserMessageIfUserAccountLocked">Your account is temporarily locked to prevent unauthorized use. Try again later.</LocalizedString>
          <LocalizedString ElementType="ErrorMessage" StringId="AADRequestsThrottled">There are too many requests at this moment. Please wait for some time and try again.</LocalizedString>
        </LocalizedStrings>
      </LocalizedResources>
  <!--Local account sign-up or sign-in page Spanish-->
  <LocalizedResources Id="api.signuporsignin.es">
    <LocalizedStrings>
      <LocalizedString ElementType="UxElement" StringId="logonIdentifier_email">#Correo electrónico</LocalizedString>
      <LocalizedString ElementType="UxElement" StringId="requiredField_email">#Este campo es obligatorio</LocalizedString>
      <LocalizedString ElementType="UxElement" StringId="logonIdentifier_username">#Nombre de usuario</LocalizedString>
      <LocalizedString ElementType="UxElement" StringId="password">#Contraseña</LocalizedString>
      <LocalizedString ElementType="UxElement" StringId="createaccount_link">#Registrarse ahora</LocalizedString>
      <LocalizedString ElementType="UxElement" StringId="requiredField_username">#Escriba su nombre de usuario</LocalizedString>
      <LocalizedString ElementType="UxElement" StringId="createaccount_intro">#¿No tiene una cuenta?</LocalizedString>
      <LocalizedString ElementType="UxElement" StringId="forgotpassword_link">#¿Olvidó su contraseña?</LocalizedString>
      <LocalizedString ElementType="UxElement" StringId="divider_title">#O</LocalizedString>
      <LocalizedString ElementType="UxElement" StringId="cancel_message">#El usuario ha olvidado su contraseña</LocalizedString>
      <LocalizedString ElementType="UxElement" StringId="button_signin">#Iniciar sesión</LocalizedString>
      <LocalizedString ElementType="UxElement" StringId="social_intro">#Iniciar sesión con su cuenta de redes sociales</LocalizedString>
      <LocalizedString ElementType="UxElement" StringId="requiredField_password">#Escriba su contraseña</LocalizedString>
      <LocalizedString ElementType="UxElement" StringId="invalid_password">#La contraseña que ha escrito no está en el formato esperado.</LocalizedString>
      <LocalizedString ElementType="UxElement" StringId="local_intro_username">#Iniciar sesión con su nombre de usuario</LocalizedString>
      <LocalizedString ElementType="UxElement" StringId="local_intro_email">#Iniciar sesión con su cuenta existente</LocalizedString>
      <LocalizedString ElementType="UxElement" StringId="invalid_email">#Escriba una dirección de correo electrónico válida</LocalizedString>
      <LocalizedString ElementType="UxElement" StringId="unknown_error">#Tenemos problemas para iniciar su sesión. Vuelva a intentarlo más tarde.  </LocalizedString>
      <LocalizedString ElementType="UxElement" StringId="email_pattern">^[a-zA-Z0-9.!#$%&amp;'^_`\{\}~\-]+@[a-zA-Z0-9\-]+(?:\.[a-zA-Z0-9\-]+)*$</LocalizedString>
      <LocalizedString ElementType="ErrorMessage" StringId="UserMessageIfInvalidPassword">#Su contraseña es incorrecta.</LocalizedString>
      <LocalizedString ElementType="ErrorMessage" StringId="UserMessageIfClaimsPrincipalDoesNotExist">#Parece que no podemos encontrar su cuenta.</LocalizedString>
      <LocalizedString ElementType="ErrorMessage" StringId="UserMessageIfOldPasswordUsed">#Parece que ha usado una contraseña antigua.</LocalizedString>
      <LocalizedString ElementType="ErrorMessage" StringId="DefaultMessage">#El nombre de usuario o la contraseña no son válidos.</LocalizedString>
      <LocalizedString ElementType="ErrorMessage" StringId="UserMessageIfUserAccountDisabled">#Se bloqueó su cuenta. Póngase en contacto con la persona responsable de soporte técnico para desbloquearla y vuelva a intentarlo.</LocalizedString>
      <LocalizedString ElementType="ErrorMessage" StringId="UserMessageIfUserAccountLocked">#Su cuenta se bloqueó temporalmente para impedir un uso no autorizado. Vuelva a intentarlo más tarde.</LocalizedString>
      <LocalizedString ElementType="ErrorMessage" StringId="AADRequestsThrottled">#Hay demasiadas solicitudes en este momento. Espere un momento y vuelva a intentarlo.</LocalizedString>
    </LocalizedStrings>
  </LocalizedResources>
  <!--Local account sign-up page English-->
  <LocalizedResources Id="api.localaccountsignup.en">
    <LocalizedStrings>
      <LocalizedString ElementType="ClaimType" ElementId="email" StringId="DisplayName">#Email Address</LocalizedString>
      <LocalizedString ElementType="ClaimType" ElementId="email" StringId="UserHelpText">#Email address that can be used to contact you.</LocalizedString>
      <LocalizedString ElementType="ClaimType" ElementId="email" StringId="PatternHelpText">#Please enter a valid email address.</LocalizedString>
      <LocalizedString ElementType="ClaimType" ElementId="newPassword" StringId="DisplayName">#New Password</LocalizedString>
      <LocalizedString ElementType="ClaimType" ElementId="newPassword" StringId="UserHelpText">#Enter new password</LocalizedString>
      <LocalizedString ElementType="ClaimType" ElementId="newPassword" StringId="PatternHelpText">#8-16 characters, containing 3 out of 4 of the following: Lowercase characters, uppercase characters, digits (0-9), and one or more of the following symbols: @ # $ % ^ &amp; * - _ + = [ ] { } | \ : ' , ? / ` ~ " ( ) ; .</LocalizedString>
      <LocalizedString ElementType="ClaimType" ElementId="reenterPassword" StringId="DisplayName">#Confirm New Password</LocalizedString>
      <LocalizedString ElementType="ClaimType" ElementId="reenterPassword" StringId="UserHelpText">#Confirm new password</LocalizedString>
      <LocalizedString ElementType="ClaimType" ElementId="reenterPassword" StringId="PatternHelpText">#8-16 characters, containing 3 out of 4 of the following: Lowercase characters, uppercase characters, digits (0-9), and one or more of the following symbols: @ # $ % ^ &amp; * - _ + = [ ] { } | \ : ' , ? / ` ~ " ( ) ; .</LocalizedString>
      <LocalizedString ElementType="ClaimType" ElementId="displayName" StringId="DisplayName">#Display Name</LocalizedString>
      <LocalizedString ElementType="ClaimType" ElementId="displayName" StringId="UserHelpText">#Your display name.</LocalizedString>
      <LocalizedString ElementType="ClaimType" ElementId="surname" StringId="DisplayName">#Surname</LocalizedString>
      <LocalizedString ElementType="ClaimType" ElementId="surname" StringId="UserHelpText">#Your surname (also known as family name or last name).  </LocalizedString>
      <LocalizedString ElementType="ClaimType" ElementId="givenName" StringId="DisplayName">#Given Name</LocalizedString>
      <LocalizedString ElementType="ClaimType" ElementId="givenName" StringId="UserHelpText">#Your given name (also known as first name).</LocalizedString>
      <LocalizedString ElementType="UxElement" StringId="button_continue">#Create</LocalizedString>
      <LocalizedString ElementType="UxElement" StringId="error_fieldIncorrect">#One or more fields are filled out incorrectly. Please check your entries and try again.</LocalizedString>
      <LocalizedString ElementType="UxElement" StringId="error_passwordEntryMismatch">#The password entry fields do not match. Please enter the same password in both fields and try again.</LocalizedString>
      <LocalizedString ElementType="UxElement" StringId="error_requiredFieldMissing">#A required field is missing. Please fill out all required fields and try again.</LocalizedString>
      <LocalizedString ElementType="UxElement" StringId="helplink_text">#What is this?</LocalizedString>
      <LocalizedString ElementType="UxElement" StringId="initial_intro">#Please provide the following details.</LocalizedString>
      <LocalizedString ElementType="UxElement" StringId="preloader_alt">#Please wait</LocalizedString>
      <LocalizedString ElementType="UxElement" StringId="required_field">#This information is required.</LocalizedString>
      <LocalizedString ElementType="UxElement" StringId="ver_but_edit">#Change e-mail</LocalizedString>
      <LocalizedString ElementType="UxElement" StringId="ver_but_resend">#Send new code</LocalizedString>
      <LocalizedString ElementType="UxElement" StringId="ver_but_send">#Send verification code</LocalizedString>
      <LocalizedString ElementType="UxElement" StringId="ver_but_verify">#Verify code</LocalizedString>
      <LocalizedString ElementType="UxElement" StringId="ver_fail_code_expired">#That code is expired. Please request a new code.</LocalizedString>
      <LocalizedString ElementType="UxElement" StringId="ver_fail_no_retry">#You've made too many incorrect attempts. Please try again later.</LocalizedString>
      <LocalizedString ElementType="UxElement" StringId="ver_fail_retry">#That code is incorrect. Please try again.</LocalizedString>
      <LocalizedString ElementType="UxElement" StringId="ver_fail_server">#We are having trouble verifying your email address. Please enter a valid email address and try again.</LocalizedString>
      <LocalizedString ElementType="UxElement" StringId="ver_fail_throttled">#There have been too many requests to verify this email address. Please wait a while, then try again.</LocalizedString>
      <LocalizedString ElementType="UxElement" StringId="ver_info_msg">#Verification code has been sent to your inbox. Please copy it to the input box below.</LocalizedString>
      <LocalizedString ElementType="UxElement" StringId="ver_input">#Verification code</LocalizedString>
      <LocalizedString ElementType="UxElement" StringId="ver_intro_msg">#Verification is necessary. Please click Send button.</LocalizedString>
      <LocalizedString ElementType="UxElement" StringId="ver_success_msg">#E-mail address verified. You can now continue.</LocalizedString>
      <LocalizedString ElementType="ErrorMessage" StringId="ServiceThrottled">#There are too many requests at this moment. Please wait for some time and try again.</LocalizedString>
      <LocalizedString ElementType="ErrorMessage" StringId="UserMessageIfClaimNotVerified">#Claim not verified: {0}</LocalizedString>
      <LocalizedString ElementType="ErrorMessage" StringId="UserMessageIfClaimsPrincipalAlreadyExists">#A user with the specified ID already exists. Please choose a different one.</LocalizedString>
      <LocalizedString ElementType="ErrorMessage" StringId="UserMessageIfIncorrectPattern">#Incorrect pattern for: {0}</LocalizedString>
      <LocalizedString ElementType="ErrorMessage" StringId="UserMessageIfInvalidInput">#{0} has invalid input.</LocalizedString>
      <LocalizedString ElementType="ErrorMessage" StringId="UserMessageIfMissingRequiredElement">#Missing required element: {0}</LocalizedString>
      <LocalizedString ElementType="ErrorMessage" StringId="UserMessageIfValidationError">#Error in validation by: {0}</LocalizedString>
    </LocalizedStrings>
  </LocalizedResources>
  <!--Local account sign-up page Spanish-->
  <LocalizedResources Id="api.localaccountsignup.es">
    <LocalizedStrings>
      <LocalizedString ElementType="ClaimType" ElementId="email" StringId="DisplayName">#Dirección de correo electrónico</LocalizedString>
      <LocalizedString ElementType="ClaimType" ElementId="email" StringId="UserHelpText">#Dirección de correo electrónico que puede usarse para ponerse en contacto con usted.</LocalizedString>
      <LocalizedString ElementType="ClaimType" ElementId="email" StringId="PatternHelpText">#Introduzca una dirección de correo electrónico válida.  </LocalizedString>
      <LocalizedString ElementType="ClaimType" ElementId="newPassword" StringId="DisplayName">#Nueva contraseña</LocalizedString>
      <LocalizedString ElementType="ClaimType" ElementId="newPassword" StringId="UserHelpText">#Escriba la contraseña nueva</LocalizedString>
      <LocalizedString ElementType="ClaimType" ElementId="newPassword" StringId="PatternHelpText">#De 8 a 16 caracteres, que contengan 3 de los 4 tipos siguientes: caracteres en minúsculas, caracteres en mayúsculas, dígitos (0-9) y uno o más de los siguientes símbolos: @ # $ % ^ &amp; * - _ + = [ ] { } | \\ : ' , ? / ` ~ \" ( ) ; .</LocalizedString>
      <LocalizedString ElementType="ClaimType" ElementId="reenterPassword" StringId="DisplayName">#Confirmar nueva contraseña</LocalizedString>
      <LocalizedString ElementType="ClaimType" ElementId="reenterPassword" StringId="UserHelpText">#Confirmar nueva contraseña</LocalizedString>
      <LocalizedString ElementType="ClaimType" ElementId="reenterPassword" StringId="PatternHelpText">#8 a 16 caracteres, que contengan 3 de los 4 tipos siguientes: caracteres en minúsculas, caracteres en mayúsculas, dígitos (0-9) y uno o más de los siguientes símbolos: @ # $ % ^ &amp; * - _ + = [ ] { } | \\ : ' , ? / ` ~ \" ( ) ; .</LocalizedString>
      <LocalizedString ElementType="ClaimType" ElementId="displayName" StringId="DisplayName">#Nombre para mostrar</LocalizedString>
      <LocalizedString ElementType="ClaimType" ElementId="displayName" StringId="UserHelpText">#Su nombre para mostrar.</LocalizedString>
      <LocalizedString ElementType="ClaimType" ElementId="surname" StringId="DisplayName">#Apellido</LocalizedString>
      <LocalizedString ElementType="ClaimType" ElementId="surname" StringId="UserHelpText">#Su apellido.</LocalizedString>
      <LocalizedString ElementType="ClaimType" ElementId="givenName" StringId="DisplayName">#Nombre</LocalizedString>
      <LocalizedString ElementType="ClaimType" ElementId="givenName" StringId="UserHelpText">#Su nombre (también conocido como nombre de pila).</LocalizedString>
      <LocalizedString ElementType="UxElement" StringId="button_continue">#Crear</LocalizedString>
      <LocalizedString ElementType="UxElement" StringId="error_fieldIncorrect">#Hay uno o varios campos rellenados de forma incorrecta. Compruebe las entradas y vuelva a intentarlo.</LocalizedString>
      <LocalizedString ElementType="UxElement" StringId="error_passwordEntryMismatch">#Los campos de entrada de contraseña no coinciden. Escriba la misma contraseña en ambos campos y vuelva a intentarlo.</LocalizedString>
      <LocalizedString ElementType="UxElement" StringId="error_requiredFieldMissing">#Falta un campo obligatorio. Rellene todos los campos necesarios y vuelva a intentarlo.</LocalizedString>
      <LocalizedString ElementType="UxElement" StringId="helplink_text">#¿Qué es esto?</LocalizedString>
      <LocalizedString ElementType="UxElement" StringId="initial_intro">#Proporcione los siguientes detalles.</LocalizedString>
      <LocalizedString ElementType="UxElement" StringId="preloader_alt">#Espere</LocalizedString>
      <LocalizedString ElementType="UxElement" StringId="required_field">#Esta información es obligatoria.</LocalizedString>
      <LocalizedString ElementType="UxElement" StringId="ver_but_edit">#Cambiar correo electrónico</LocalizedString>
      <LocalizedString ElementType="UxElement" StringId="ver_but_resend">#Enviar nuevo código</LocalizedString>
      <LocalizedString ElementType="UxElement" StringId="ver_but_send">#Enviar código de comprobación</LocalizedString>
      <LocalizedString ElementType="UxElement" StringId="ver_but_verify">#Comprobar código</LocalizedString>
      <LocalizedString ElementType="UxElement" StringId="ver_fail_code_expired">#El código ha expirado. Solicite otro nuevo.</LocalizedString>
      <LocalizedString ElementType="UxElement" StringId="ver_fail_no_retry">#Ha realizado demasiados intentos incorrectos. Vuelva a intentarlo más tarde.</LocalizedString>
      <LocalizedString ElementType="UxElement" StringId="ver_fail_retry">#Ese código es incorrecto. Inténtelo de nuevo.</LocalizedString>
      <LocalizedString ElementType="UxElement" StringId="ver_fail_server">#Tenemos problemas para comprobar la dirección de correo electrónico. Escriba una dirección de correo electrónico válida y vuelva a intentarlo.</LocalizedString>
      <LocalizedString ElementType="UxElement" StringId="ver_fail_throttled">#Ha habido demasiadas solicitudes para comprobar esta dirección de correo electrónico. Espere un poco y vuelva a intentarlo.</LocalizedString>
      <LocalizedString ElementType="UxElement" StringId="ver_info_msg">#Se ha enviado el código de verificación a su Bandeja de entrada. Cópielo en el siguiente cuadro de entrada.</LocalizedString>
      <LocalizedString ElementType="UxElement" StringId="ver_input">#Código de verificación</LocalizedString>
      <LocalizedString ElementType="UxElement" StringId="ver_intro_msg">#La comprobación es obligatoria. Haga clic en el botón Enviar.</LocalizedString>
      <LocalizedString ElementType="UxElement" StringId="ver_success_msg">#Dirección de correo electrónico comprobada. Puede continuar.</LocalizedString>
      <LocalizedString ElementType="ErrorMessage" StringId="ServiceThrottled">#Hay demasiadas solicitudes en este momento. Espere un momento y vuelva a intentarlo.</LocalizedString>
      <LocalizedString ElementType="ErrorMessage" StringId="UserMessageIfClaimNotVerified">#Reclamación no comprobada: {0}</LocalizedString>
      <LocalizedString ElementType="ErrorMessage" StringId="UserMessageIfClaimsPrincipalAlreadyExists">#Ya existe un usuario con el id. especificado. Elija otro diferente.</LocalizedString>
      <LocalizedString ElementType="ErrorMessage" StringId="UserMessageIfIncorrectPattern">#Patrón incorrecto para: {0}</LocalizedString>
      <LocalizedString ElementType="ErrorMessage" StringId="UserMessageIfInvalidInput">#{0} tiene una entrada no válida.</LocalizedString>
      <LocalizedString ElementType="ErrorMessage" StringId="UserMessageIfMissingRequiredElement">#Falta un elemento obligatorio: {0}</LocalizedString>
      <LocalizedString ElementType="ErrorMessage" StringId="UserMessageIfValidationError">#Error en la validación de: {0}</LocalizedString>
    </LocalizedStrings>
  </LocalizedResources>
</Localization>

Bearbeiten der Inhaltsdefinition mit der Lokalisierung

Fügen Sie den gesamten Inhalt des ContentDefinitions-Elements ein, das Sie als untergeordnetes Element des BuildingBlocks-Elements kopiert haben.

Im folgenden Beispiel werden der Anmelde- oder Anmeldeseite sowie der lokalen Kontoanmeldeseite die benutzerdefinierten Zeichenfolgen Englisch (en) und Spanisch (es) hinzugefügt. Die LocalizedResourcesReferenceId für jede LocalizedResourcesReference ist identisch mit ihrem Gebietsschema, Sie können jedoch eine beliebige Zeichenfolge als Bezeichner verwenden. Für jede Sprach- und Seitenkombination zeigen Sie auf die entsprechenden LocalizedResources die Sie zuvor erstellt haben.

<ContentDefinitions>
  <ContentDefinition Id="api.signuporsignin">
    <LocalizedResourcesReferences MergeBehavior="Prepend">
        <LocalizedResourcesReference Language="en" LocalizedResourcesReferenceId="api.signuporsignin.en" />
        <LocalizedResourcesReference Language="es" LocalizedResourcesReferenceId="api.signuporsignin.es" />
    </LocalizedResourcesReferences>
  </ContentDefinition>

  <ContentDefinition Id="api.localaccountsignup">
    <LocalizedResourcesReferences MergeBehavior="Prepend">
        <LocalizedResourcesReference Language="en" LocalizedResourcesReferenceId="api.localaccountsignup.en" />
        <LocalizedResourcesReference Language="es" LocalizedResourcesReferenceId="api.localaccountsignup.es" />
    </LocalizedResourcesReferences>
  </ContentDefinition>
</ContentDefinitions>

Hochladen und Testen der aktualisierten benutzerdefinierten Richtlinie

Hochladen der benutzerdefinierten Richtlinie

  1. Speichern Sie die Erweiterungsdatei.
  2. Wenn Sie Zugriff auf mehrere Mandanten haben, wählen Sie das Symbol Einstellungen im Menü oben aus, um über das Menü Verzeichnisse + Abonnements zu Ihrem Azure AD B2C-Mandanten zu wechseln.
  3. Suchen Sie nach Azure AD B2C, und wählen Sie es aus.
  4. Wählen Sie unter "Richtlinien" die Option "Identity Experience Framework" aus.
  5. Wählen Sie "Benutzerdefinierte Richtlinie hochladen" aus.
  6. Laden Sie die Erweiterungsdatei hoch, die Sie zuvor geändert haben.

Testen der benutzerdefinierten Richtlinie mithilfe von "Jetzt ausführen"

  1. Wählen Sie die Richtlinie aus, die Sie hochgeladen haben, und wählen Sie dann "Jetzt ausführen" aus.
  2. Sie sollten die lokalisierte Registrierungs- oder Anmeldeseite sehen können.
  3. Klicken Sie auf den Registrierungslink, und Sie sollten die lokalisierte Registrierungsseite sehen können.
  4. Wechseln Sie die Standardsprache Ihres Browsers zu Spanisch. Alternativ können Sie der Autorisierungsanforderung den Abfragezeichenfolgenparameter ui_locales hinzufügen. Beispiel:
https://<tenant-name>.b2clogin.com/<tenant-name>.onmicrosoft.com/B2C_1A_signup_signin/oauth2/v2.0/authorize&client_id=00001111-aaaa-2222-bbbb-3333cccc4444&nonce=defaultNonce&redirect_uri=https%3A%2F%2Fjwt.ms&scope=openid&response_type=id_token&prompt=login&ui_locales=es

Zusatzinformation

Bezeichnungen der Seite für die Benutzeroberflächenanpassung als Außerkraftsetzungen

Wenn Sie die Sprachanpassung aktivieren, werden Ihre bisherigen Bearbeitungen für Bezeichnungen, die Sie auf der Seite für die Benutzeroberflächenanpassung vorgenommen haben, in einer JSON-Datei für Englisch (en) gespeichert. Sie können Ihre Bezeichnungen und anderen Zeichenfolgen weiterhin ändern, indem Sie Sprachressourcen in die Sprachanpassung hochladen.

Aktuelle Übersetzungen

Microsoft ist bemüht, Ihnen möglichst aktuelle Übersetzungen zur Verfügung zu stellen. Die Übersetzungen werden kontinuierlich optimiert und auf ihre Konformität überprüft. Microsoft ermittelt Fehler und Änderungen für die globale Terminologie und nimmt geeignete Aktualisierungen in Ihrem Benutzerflow vor.

Unterstützung für von rechts nach links geschriebene Sprachen

Von rechts nach links geschriebene Sprachen werden von Microsoft derzeit nicht unterstützt. Dies erreichen Sie, indem Sie benutzerdefinierte Gebietsschemas verwenden und mithilfe von CSS ändern, wie Zeichenfolgen angezeigt werden. Sollten Sie dieses Feature benötigen, stimmen Sie im Azure-Feedback dafür ab.

Übersetzungen für den Fall „Soziales Netzwerk als Identitätsanbieter“

Für Anmeldungen per sozialem Netzwerk stellt Microsoft den OIDC-Parameter ui_locales bereit. Einige soziale Netzwerke, die als Identitätsanbieter fungieren, erkennen diesen jedoch nicht an. Dazu zählen auch Facebook und Google.

Browserverhalten

Microsoft Edge, Chrome und Firefox fordern ihre festgelegte Sprache an. Wenn es sich dabei um eine unterstützte Sprache handelt, wird sie vor der Standardsprache angezeigt.

Unterstützte Sprachen

Azure AD B2C enthält Unterstützung für die folgenden Sprachen mithilfe von ISO 639-1-Codes. Benutzerflusssprachen werden von Azure AD B2C bereitgestellt. Die Sprachen für mehrstufige Authentifizierungsbenachrichtigungen werden von Microsoft Entra Mehrstufige Authentifizierung bereitgestellt.

Sprache Sprachcode Benutzerabläufe MFA-Benachrichtigungen
Arabisch Ar X, das Grünes Häkchen.
Bulgarisch Bg X, das Grünes Häkchen.
Bangla Mrd. Grünes Häkchen. X, das
Katalanisch ca X, das Grünes Häkchen.
Tschechisch Cs Grünes Häkchen. Grünes Häkchen.
Dänisch da Grünes Häkchen. Grünes Häkchen.
Deutsch de Grünes Häkchen. Grünes Häkchen.
Griechisch El Grünes Häkchen. Grünes Häkchen.
Englisch De Grünes Häkchen. Grünes Häkchen.
Spanisch es Grünes Häkchen. Grünes Häkchen.
Estnisch Et X, das Grünes Häkchen.
Baskisch EU X, das Grünes Häkchen.
Finnisch Fi Grünes Häkchen. Grünes Häkchen.
Französisch fr Grünes Häkchen. Grünes Häkchen.
Galizisch Gl X, das Grünes Häkchen.
Gujarati Gu Grünes Häkchen. X, das
Hebräisch er X, das Grünes Häkchen.
Hindi Hallo Grünes Häkchen. Grünes Häkchen.
Kroatisch Hr Grünes Häkchen. Grünes Häkchen.
Ungarisch Hu Grünes Häkchen. Grünes Häkchen.
Indonesisch id X, das Grünes Häkchen.
Italienisch es Grünes Häkchen. Grünes Häkchen.
Japanisch ja Grünes Häkchen. Grünes Häkchen.
Kasachisch kkkk X, das Grünes Häkchen.
Kannada Kn Grünes Häkchen. X, das
Koreanisch Ko Grünes Häkchen. Grünes Häkchen.
Litauisch Lt X, das Grünes Häkchen.
Lettisch Lv X, das Grünes Häkchen.
Malayalam Milliliter Grünes Häkchen. X, das
Marathi Herr Grünes Häkchen. X, das
Malaiisch Frau Grünes Häkchen. Grünes Häkchen.
Norwegisch Bokmål Nb Grünes Häkchen. X, das
Holländisch Nl Grünes Häkchen. Grünes Häkchen.
Norwegisch nein X, das Grünes Häkchen.
Punjabi Papa Grünes Häkchen. X, das
Polnisch Pl Grünes Häkchen. Grünes Häkchen.
Portugiesisch - Brasilien pt-br Grünes Häkchen. Grünes Häkchen.
Portugiesisch (Portugal) pt-pt Grünes Häkchen. Grünes Häkchen.
Rumänisch Ro Grünes Häkchen. Grünes Häkchen.
Russisch ru Grünes Häkchen. Grünes Häkchen.
Slowakisch Sk Grünes Häkchen. Grünes Häkchen.
Slowenisch Sl X, das Grünes Häkchen.
Serbisch (Kyrillisch) sr-cryl-cs X, das Grünes Häkchen.
Serbisch (Lateinisch) sr-latn-cs X, das Grünes Häkchen.
Schwedisch Sv Grünes Häkchen. Grünes Häkchen.
Tamilisch danke Grünes Häkchen. X, das
Telugu Te Grünes Häkchen. X, das
Thailändisch heit Grünes Häkchen. Grünes Häkchen.
Türkisch Tr Grünes Häkchen. Grünes Häkchen.
Ukrainisch Vereinigtes Königreich X, das Grünes Häkchen.
Vietnamesisch Vi X, das Grünes Häkchen.
Walisisch Cy X, das X, das
Chinesisch - vereinfacht zh-hans Grünes Häkchen. Grünes Häkchen.
Chinesisch - traditionell zh-hant Grünes Häkchen. Grünes Häkchen.

Nächste Schritte

Weitere Informationen dazu, wie Sie die Benutzeroberfläche Ihrer Anwendungen anpassen können, finden Sie unter Anpassen der Benutzeroberfläche Ihrer Anwendung in Azure Active Directory B2C.