Delen via


Taalmaatwerk in Azure Active Directory B2C

Belangrijk

Vanaf 1 mei 2025 is Azure AD B2C niet meer beschikbaar voor nieuwe klanten. Meer informatie vindt u in onze veelgestelde vragen.

Voordat u begint, gebruikt u de selector Een beleidstype kiezen boven aan deze pagina om het type beleid te kiezen dat u instelt. U kunt in Azure Active Directory B2C op twee manieren definiëren hoe gebruikers met uw toepassingen communiceren: via vooraf gedefinieerde gebruikersstromen of via volledig configureerbaar aangepast beleid. De stappen die in dit artikel zijn vereist, verschillen voor elke methode.

Met taalaanpassing in Azure Active Directory B2C (Azure AD B2C) kan uw gebruikersstroom geschikt zijn voor verschillende talen die aansluiten bij de behoeften van uw klant. Microsoft biedt de vertalingen voor 36 talen, maar u kunt ook uw eigen vertalingen voor elke taal opgeven. Zelfs als uw ervaring slechts voor één taal wordt geboden, kunt u alle tekst op de pagina's aanpassen.

Hoe taalaanpassing werkt

U gebruikt taalaanpassing om te selecteren in welke talen uw gebruikersstroom beschikbaar is. Nadat de functie is ingeschakeld, kunt u de querytekenreeksparameter opgeven, ui_localesvanuit uw toepassing. Wanneer u Azure AD B2C aanroept, wordt uw pagina vertaald naar de landinstelling die u hebt aangegeven. Dit type configuratie geeft u volledige controle over de talen in uw gebruikersstroom en negeert de taalinstellingen van de browser van de klant.

Mogelijk hebt u dat controleniveau niet nodig over de talen die uw klant ziet. Als u geen parameter opgeeft ui_locales , wordt de ervaring van de klant bepaald door de instellingen van de browser. U kunt nog steeds bepalen in welke talen uw gebruikersstroom wordt vertaald door deze toe te voegen als een ondersteunde taal. Als de browser van een klant is ingesteld om een taal weer te geven die u niet wilt ondersteunen, wordt in plaats daarvan de taal die u hebt geselecteerd als standaardtaal in ondersteunde culturen weergegeven.

  • opgegeven taal voor gebruikersinterfaces: Nadat u taalaanpassing hebt ingeschakeld, wordt uw gebruikersstroom vertaald naar de taal die hier is opgegeven.
  • Door de browser aangevraagde taal: als er geen ui_locales parameter is opgegeven, wordt uw gebruikersstroom vertaald naar de door de browser aangevraagde taal , als de taal wordt ondersteund.
  • Standaardtaal voor beleid: als de browser geen taal opgeeft of een taal opgeeft die niet wordt ondersteund, wordt de gebruikersstroom vertaald naar de standaardtaal van de gebruikersstroom.

Opmerking

Als u aangepaste gebruikerskenmerken gebruikt, moet u uw eigen vertalingen opgeven. Zie Uw tekenreeksen aanpassen voor meer informatie.

Bekijk deze video voor meer informatie over het lokaliseren of aanpassen van taal met behulp van Azure AD B2C.

Lokalisatie vereist drie stappen:

  1. De expliciete lijst met ondersteunde talen instellen
  2. Taalspecifieke tekenreeksen en verzamelingen opgeven
  3. Bewerk de inhoudsdefinitie voor de pagina.

Vereiste voorwaarden

Ondersteun aangevraagde talen voor ui_locales

Beleidsregels die zijn gemaakt vóór de algemene beschikbaarheid van taalaanpassing moeten deze functie eerst inschakelen. Beleidsregels en gebruikersstromen die zijn gemaakt nadat taalaanpassing standaard is ingeschakeld.

Wanneer u taalaanpassing inschakelt voor een gebruikersstroom, kunt u de taal van de gebruikersstroom beheren door de ui_locales parameter toe te voegen.

  1. Selecteer gebruikersstromen in uw Azure AD B2C-tenant.
  2. Klik op de gebruikersstroom die u wilt inschakelen voor vertalingen.
  3. Selecteer Talen.
  4. Selecteer Taalaanpassing inschakelen.

Selecteren welke talen in uw gebruikersstroom zijn ingeschakeld

Schakel een set talen in waarmee uw gebruikersstroom kan worden vertaald wanneer dit door de browser wordt aangevraagd zonder de ui_locales parameter.

  1. Zorg ervoor dat de gebruikersstroom taalaanpassing heeft ingeschakeld op basis van eerdere instructies.
  2. Selecteer op de pagina Talen voor de gebruikersstroom een taal die u wilt ondersteunen.
  3. Wijzig in het deelvenster Eigenschappen ingeschakeld in Ja.
  4. Selecteer Opslaan bovenaan het deelvenster Eigenschappen.

Opmerking

Als er ui_locales geen parameter is opgegeven, wordt de pagina alleen vertaald naar de browsertaal van de klant als deze is ingeschakeld.

Uw tekenreeksen aanpassen

Met taalaanpassing kunt u elke tekenreeks in uw gebruikersstroom aanpassen.

  1. Zorg ervoor dat de gebruikersstroom taalaanpassing heeft ingeschakeld op basis van de vorige instructies.
  2. Selecteer op de pagina Talen voor de gebruikersstroom de taal die u wilt aanpassen.
  3. Selecteer onder Bestanden met resources op paginaniveau de pagina die u wilt bewerken.
  4. Selecteer Standaardversies downloaden (of Overschreven versies downloaden als u deze taal eerder hebt bewerkt).

Met deze stappen krijgt u een JSON-bestand dat u kunt gebruiken om uw tekenreeksen te bewerken.

Een tekenreeks op de pagina wijzigen

  1. Open het JSON-bestand dat u in eerdere instructies hebt gedownload in een JSON-editor.
  2. Zoek het element dat u wilt wijzigen. U kunt StringId vinden voor de tekenreeks die u zoekt of zoeken naar het Value-kenmerk dat u wilt wijzigen.
  3. Werk het Value-kenmerk bij met wat u wilt weergeven.
  4. Voor elke tekenreeks die u wilt wijzigen, wijzigt u Override in true.
  5. Sla het bestand op en upload uw wijzigingen. (U vindt het upload besturingselement op dezelfde locatie als waar u het JSON-bestand hebt gedownload.)

Belangrijk

Als u een tekenreeks wilt overschrijven, moet u de Override waarde instellen op true. Als de waarde niet wordt gewijzigd, wordt de vermelding genegeerd.

Extensiekenmerken wijzigen

Als u de tekenreeks voor een aangepast gebruikerskenmerk wilt wijzigen of als u er een wilt toevoegen aan de JSON, heeft deze de volgende indeling:

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

Vervang <ExtensionAttribute> door de naam van uw aangepaste gebruikerskenmerk.

Vervang <ExtensionAttributeValue> door de nieuwe tekenreeks die moet worden weergegeven.

Een lijst met waarden opgeven met behulp van gelokaliseerde verzamelingen

Als u een set waarden voor antwoorden wilt opgeven, moet u een LocalizedCollections-kenmerk maken. LocalizedCollections is een matrix van Name- en Value-paren. De volgorde voor de items is de volgorde die ze worden weergegeven. Gebruik de volgende indeling om LocalizedCollections toe te voegen:

{
  "LocalizedStrings": [...],
  "LocalizedCollections": [
    {
      "ElementType":"ClaimType",
      "ElementId":"<UserAttribute>",
      "TargetCollection":"Restriction",
      "Override": true,
      "Items":[
        {
          "Name":"<Response1>",
          "Value":"<Value1>"
        },
        {
          "Name":"<Response2>",
          "Value":"<Value2>"
        }
      ]
    }
  ]
}
  • ElementId is het gebruikerskenmerk waarop dit LocalizedCollections-kenmerk een antwoord is.
  • Name is de waarde die aan de gebruiker wordt weergegeven.
  • Value is wat wordt geretourneerd in de claim wanneer deze optie is geselecteerd.

Uw wijzigingen uploaden

  1. Nadat u de wijzigingen in uw JSON-bestand hebt voltooid, gaat u terug naar uw B2C-tenant.
  2. Selecteer Gebruikersstromen en klik op de gebruikersstroom die u wilt inschakelen voor vertalingen.
  3. Selecteer Talen.
  4. Selecteer de taal waarin u wilt vertalen.
  5. Selecteer de pagina waar u vertalingen wilt opgeven.
  6. Selecteer het mappictogram en vervolgens het JSON-bestand dat u wilt uploaden.

De wijzigingen worden automatisch opgeslagen in uw gebruikersstroom.

De gebruikersinterface van de pagina aanpassen met behulp van taalaanpassing

Er zijn twee manieren om uw HTML-inhoud te lokaliseren. Een manier is om taalaanpassing in te schakelen. Als u deze functie inschakelt, ui-localeskan Azure AD B2C de OpenID Connect-parameter doorsturen naar uw eindpunt. Uw inhoudsserver kan deze parameter gebruiken om aangepaste HTML-pagina's te bieden die taalspecifiek zijn.

U kunt ook inhoud van verschillende plaatsen ophalen op basis van de gebruikte landinstelling. In uw CORS-eindpunt kunt u een mapstructuur instellen om inhoud voor specifieke talen te hosten. U roept de juiste aan als u de jokertekenwaarde {Culture:RFC5646}gebruikt. Stel dat dit uw aangepaste pagina-URI is:

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

U kunt de pagina laden in fr. Wanneer de pagina HTML- en CSS-inhoud ophaalt, wordt deze opgehaald uit:

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

Aangepaste talen toevoegen

U kunt ook talen toevoegen waarvoor Microsoft momenteel geen vertalingen biedt. U moet de vertalingen opgeven voor alle tekenreeksen in de gebruikersstroom. Taal- en landinstellingencodes zijn beperkt tot die in de ISO 639-1-standaard. De formaat van de locatiecode moet "ISO_639-1_code"-"CountryCode" zijn, bijvoorbeeld en-GB. Raadpleeg id-indelingen voor landinstellingen voor meer informatie.

  1. Selecteer gebruikersstromen in uw Azure AD B2C-tenant.
  2. Klik op de gebruikersstroom waaraan u aangepaste talen wilt toevoegen en klik vervolgens op Talen.
  3. Selecteer Aangepaste taal toevoegen boven aan de pagina.
  4. Bepaal in het contextvenster dat wordt geopend voor welke taal u vertalingen opgeeft door een geldige landinstellingscode in te voeren.
  5. Voor elke pagina kunt u een set overschrijvingen voor Engelse vertalingen downloaden en aan de vertalingen werken.
  6. Nadat u klaar bent met de JSON-bestanden, kunt u deze uploaden voor elke pagina.
  7. Selecteer Inschakelen en uw gebruikersstroom kan nu deze taal voor uw gebruikers weergeven.
  8. Bewaar de taal.

Belangrijk

U moet de aangepaste talen inschakelen of overschrijvingen hiervoor uploaden om het te kunnen opslaan.

De lijst met ondersteunde talen instellen

Open het extensiebestand van uw beleid. Bijvoorbeeld: SocialAndLocalAccounts/TrustFrameworkExtensions.xml.

  1. Zoek het element BuildingBlocks . Als het element niet bestaat, voegt u het toe.
  2. Voeg het Localization element toe met de ondersteunde talen: Engels (standaard) en Spaans.
<Localization Enabled="true">
  <SupportedLanguages DefaultLanguage="en" MergeBehavior="ReplaceAll">
    <SupportedLanguage>en</SupportedLanguage>
    <SupportedLanguage>es</SupportedLanguage>
  </SupportedLanguages>
</Localization>

Taalspecifieke labels opgeven

De LocalizedResources van het Localization element bevat de lijst met gelokaliseerde tekenreeksen. Het gelokaliseerde resource-element heeft een id die wordt gebruikt om gelokaliseerde resources uniek te identificeren. Deze id wordt later gebruikt in het inhoudsdefinitieelement .

U configureert gelokaliseerde resourceselementen voor de inhoudsdefinitie en elke taal die u wilt ondersteunen. Als u de geïntegreerde registratie- of aanmeldingspagina's voor Engels en Spaans wilt aanpassen, voegt u de volgende LocalizedResources elementen toe na het sluiten van het </SupportedLanguages> element.

Opmerking

In het volgende voorbeeld hebben we het hekje # aan het begin van elke regel toegevoegd, zodat u de gelokaliseerde labels op het scherm gemakkelijk kunt vinden.

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

De inhoudsdefinitie bewerken met de lokalisatie

Plak de volledige inhoud van het element ContentDefinitions dat u hebt gekopieerd als een onderliggend element van het element BuildingBlocks.

In het volgende voorbeeld worden aangepaste tekenreeksen voor Engels (en) en Spaans (es) toegevoegd aan de registratie- of aanmeldingspagina en aan de registratiepagina van het lokale account. De LocalizedResourcesReferenceId voor elke LocalizedResourcesReference is hetzelfde als de landinstelling, maar u kunt elke tekenreeks gebruiken als de id. Voor elke combinatie van talen en pagina's verwijst u naar de bijbehorende LocalizedResources die u eerder hebt gemaakt.

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

Uw bijgewerkte aangepaste beleid uploaden en testen

Het aangepaste beleid uploaden

  1. Sla het extensiebestand op.
  2. Als u toegang hebt tot meerdere tenants, selecteert u het pictogram Instellingen in het hoofdmenu om over te schakelen naar uw Azure AD B2C-tenant vanuit het menu Mappen + abonnementen.
  3. Zoek Azure AD B2C en selecteer deze.
  4. Selecteer onder Beleidde optie Identity Experience Framework.
  5. Selecteer Aangepast beleid uploaden.
  6. Upload het extensiesbestand dat u eerder hebt gewijzigd.

Het aangepaste beleid testen door Nu uitvoeren te gebruiken.

  1. Selecteer het beleid dat u hebt geüpload en selecteer nu Uitvoeren.
  2. U moet de gelokaliseerde registratie- of aanmeldingspagina kunnen zien.
  3. Klik op de registratiekoppeling en u zou de gelokaliseerde registratiepagina moeten kunnen zien.
  4. Schakel de standaardtaal van uw browser over naar Spaans. U kunt ook de querytekenreeksparameter ui_locales toevoegen aan de autorisatieaanvraag. Voorbeeld:
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

Aanvullende informatie

Aanpassingslabels voor de gebruikersinterface van de pagina als overschrijvingen

Wanneer u taalaanpassing inschakelt, worden uw vorige bewerkingen voor labels met behulp van aanpassing van de gebruikersinterface van de pagina behouden in een JSON-bestand voor Engels (en). U kunt uw labels en andere tekenreeksen blijven wijzigen door taalbronnen te uploaden in taalaanpassing.

Up-to-date vertalingen

Microsoft streeft ernaar om de meest up-to-date vertalingen te bieden voor uw gebruik. Microsoft verbetert vertalingen voortdurend en houdt ze relevant voor u. Microsoft identificeert fouten en wijzigingen in algemene terminologie en brengt updates aan die naadloos werken in uw gebruikersstroom.

Ondersteuning voor talen die van rechts naar links worden geschreven

Microsoft biedt momenteel geen ondersteuning voor talen die van rechts naar links worden geschreven. U kunt dit doen met behulp van aangepaste landinstellingen en CSS om de manier te wijzigen waarop de tekenreeksen worden weergegeven. Als u deze functie nodig hebt, stem er dan voor op Azure Feedback.

Vertalingen van id-providers voor sociale netwerken

Microsoft biedt de ui_locales OIDC-parameter voor aanmelding bij sociale netwerken. Maar sommige id-providers voor sociale netwerken, waaronder Facebook en Google, respecteren ze niet.

Browsergedrag

Microsoft Edge- en Chrome- en Firefox-aanvragen voor hun ingestelde taal. Als het een ondersteunde taal is, wordt deze vóór de standaardtaal weergegeven.

Ondersteunde talen

Azure AD B2C bevat ondersteuning voor de volgende talen met behulp van ISO 639-1-codes. Talen voor gebruikersstromen worden geleverd door Azure AD B2C. De meldingstalen voor meervoudige verificatie worden geleverd door Meervoudige Verificatie van Microsoft Entra.

Taal Taalcode Gebruikersstromen MFA-meldingen
Arabisch Ar X (geeft nee aan). Groen vinkje.
Bulgaars Bg X (geeft nee aan). Groen vinkje.
Bengaals Bn Groen vinkje. X (geeft nee aan).
Catalaans circa X (geeft nee aan). Groen vinkje.
Tsjechisch Cs Groen vinkje. Groen vinkje.
Deens ja Groen vinkje. Groen vinkje.
Duits de Groen vinkje. Groen vinkje.
Grieks el Groen vinkje. Groen vinkje.
Engels nl Groen vinkje. Groen vinkje.
Spaans Es Groen vinkje. Groen vinkje.
Estlander Et X (geeft nee aan). Groen vinkje.
Baskisch EU X (geeft nee aan). Groen vinkje.
Fins Fi Groen vinkje. Groen vinkje.
Frans frans Groen vinkje. Groen vinkje.
Galicisch Gl X (geeft nee aan). Groen vinkje.
Gujarati Gu Groen vinkje. X (geeft nee aan).
Hebreeuws hij X (geeft nee aan). Groen vinkje.
Hindi Hallo Groen vinkje. Groen vinkje.
Kroatisch uren Groen vinkje. Groen vinkje.
Hongaars Hu Groen vinkje. Groen vinkje.
Indonesisch identiteitskaart X (geeft nee aan). Groen vinkje.
Italiaans het Groen vinkje. Groen vinkje.
De Japanse taal ja Groen vinkje. Groen vinkje.
Kazachs oké X (geeft nee aan). Groen vinkje.
Kannada kN Groen vinkje. X (geeft nee aan).
Koreaans Ko Groen vinkje. Groen vinkje.
Litouws Lt X (geeft nee aan). Groen vinkje.
Letse taal Lv X (geeft nee aan). Groen vinkje.
Malajalam milliliter Groen vinkje. X (geeft nee aan).
Marathi meneer Groen vinkje. X (geeft nee aan).
Maleisisch Mevrouw Groen vinkje. Groen vinkje.
Noors (Bokmål) nb Groen vinkje. X (geeft nee aan).
Nederlands Nederland Groen vinkje. Groen vinkje.
Noors Nee X (geeft nee aan). Groen vinkje.
Punjabi papa Groen vinkje. X (geeft nee aan).
Pools Pl Groen vinkje. Groen vinkje.
Portugees - Brazilië pt-br Groen vinkje. Groen vinkje.
Portugees - Portugal pt-pt Groen vinkje. Groen vinkje.
Roemeens Ro Groen vinkje. Groen vinkje.
Russisch Ru Groen vinkje. Groen vinkje.
Slowaaks Sk Groen vinkje. Groen vinkje.
Sloveens Sl X (geeft nee aan). Groen vinkje.
Servisch - Cyrillisch sr-cryl-cs X (geeft nee aan). Groen vinkje.
Servisch - Latijns sr-latn-cs X (geeft nee aan). Groen vinkje.
Zweeds Sv Groen vinkje. Groen vinkje.
Tamil bedankt Groen vinkje. X (geeft nee aan).
Telugu te Groen vinkje. X (geeft nee aan).
Thais Þ Groen vinkje. Groen vinkje.
Turkse taal Tr Groen vinkje. Groen vinkje.
Oekraïens Verenigd Koninkrijk X (geeft nee aan). Groen vinkje.
Vietnamees Vi X (geeft nee aan). Groen vinkje.
Welsh (taal) Cy X (geeft nee aan). X (geeft nee aan).
Chinees - Vereenvoudigd zh-hans Groen vinkje. Groen vinkje.
Chinees - traditioneel zh-hant Groen vinkje. Groen vinkje.

Volgende stappen

Meer informatie over hoe u de gebruikersinterface van uw toepassingen kunt aanpassen in De gebruikersinterface van uw toepassing aanpassen in Azure Active Directory B2C.