Megosztás a következőn keresztül:


Nyelvi testreszabás az Azure Active Directory B2C-ben

Mielőtt hozzákezdene, a Szabályzattípus kiválasztása választóval válassza ki a beállított szabályzat típusát. Az Azure Active Directory B2C két módszert kínál annak meghatározására, hogy a felhasználók hogyan használják az alkalmazásokat: előre definiált felhasználói folyamatokon vagy teljesen konfigurálható egyéni szabályzatokon keresztül. A cikkben szereplő lépések különbözőek az egyes metódusok esetében.

Az Azure Active Directory B2C (Azure AD B2C) nyelvi testreszabása lehetővé teszi, hogy a felhasználói folyamat különböző nyelveket fogadjon el az ügyfél igényeinek megfelelően. A Microsoft 36 nyelv fordítását biztosítja, de ön is saját fordítást biztosíthat bármilyen nyelvhez. Még akkor is testre szabhatja az oldalak szövegeit, ha a felhasználói élmény csak egyetlen nyelven érhető el.

A nyelvi testreszabás működése

A nyelvi testreszabással kiválaszthatja, hogy a felhasználói folyamat mely nyelveken érhető el. A funkció engedélyezése után megadhatja a lekérdezési sztring paramétert ui_localesaz alkalmazásból. Amikor betárcsáz az Azure AD B2C-be, a lap a megadott területi beállításra lesz lefordítva. Ez a konfigurációtípus teljes körű vezérlést biztosít a felhasználói folyamat nyelveinek felett, és figyelmen kívül hagyja az ügyfél böngészőjének nyelvi beállításait.

Előfordulhat, hogy nincs szüksége arra a szintre, hogy az ügyfél milyen nyelveket lát. Ha nem ad meg paramétert ui_locales , az ügyfél felhasználói élményét a böngésző beállításai határozzák meg. Továbbra is szabályozhatja, hogy a felhasználói folyamat mely nyelvekre legyen lefordítva, ha támogatott nyelvként adja hozzá. Ha egy ügyfél böngészője úgy van beállítva, hogy egy olyan nyelvet jelenítsen meg, amelyet nem szeretne támogatni, akkor a támogatott kultúrákban alapértelmezettként kiválasztott nyelv jelenik meg.

  • Ui-locales megadott nyelv: A nyelv testreszabásának engedélyezése után a felhasználói folyamat az itt megadott nyelvre lesz lefordítva.
  • Böngésző által kért nyelv: Ha nem ui_locales adott meg paramétert, a rendszer lefordítja a felhasználói folyamatot a böngésző által kért nyelvre, ha a nyelv támogatott.
  • A házirend alapértelmezett nyelve: Ha a böngésző nem ad meg nyelvet, vagy nem támogatott nyelvet ad meg, a rendszer lefordítja a felhasználói folyamatot a felhasználói folyamat alapértelmezett nyelvére.

Megjegyzés:

Ha egyéni felhasználói attribútumokat használ, saját fordításokat kell megadnia. További információ: Sztringek testreszabása.

Ebből a videóból megtudhatja, hogyan honosíthatja vagy szabhatja testre a nyelvet az Azure AD B2C használatával.

A honosításhoz három lépés szükséges:

  1. A támogatott nyelvek explicit listájának beállítása
  2. Nyelvspecifikus sztringek és gyűjtemények megadása
  3. Szerkessze a lap tartalomdefinícióját .

Előfeltételek

A kért nyelvek támogatása ui_locales

A nyelvi testreszabás általános elérhetősége előtt létrehozott szabályzatok először engedélyezni kell ezt a funkciót. Azok a szabályzatok és felhasználói folyamatok, amelyek a nyelvi testreszabás alapértelmezés szerint engedélyezve lettek.

Ha engedélyezi a nyelvi testreszabást egy felhasználói folyamaton, a paraméter hozzáadásával ui_locales szabályozhatja a felhasználói folyamat nyelvét.

  1. Az Azure AD B2C-bérlőben válassza a Felhasználói folyamatok lehetőséget.
  2. Kattintson arra a felhasználói folyamatra, amelyet engedélyezni szeretne a fordításokhoz.
  3. Nyelvek kiválasztása.
  4. Válassza a Nyelvi testreszabás engedélyezése lehetőséget.

Válassza ki, hogy mely nyelvek legyenek engedélyezve a felhasználói folyamatban

Engedélyezze a felhasználói folyamat nyelvkészletének lefordítását, amikor a böngésző a paraméter nélkül ui_locales kéri.

  1. Győződjön meg arról, hogy a felhasználói folyamat nyelvének testreszabása engedélyezve van az előző utasítások alapján.
  2. A felhasználói folyamat Nyelvek lapján válassza ki a támogatni kívánt nyelvet.
  3. A tulajdonságok panelen módosítsa az Engedélyezve értéket Igen értékre.
  4. Válassza a Tulajdonságok panel tetején található Mentés lehetőséget.

Megjegyzés:

Ha nincs megadva paraméter ui_locales , a lap csak akkor lesz lefordítva az ügyfél böngészőnyelvére, ha engedélyezve van.

Sztringek testreszabása

A nyelvi testreszabás lehetővé teszi a felhasználói folyamat bármely sztringének testreszabását.

  1. Győződjön meg arról, hogy a felhasználói folyamat rendelkezik az előző utasításokban engedélyezett nyelvi testreszabással.
  2. A felhasználói folyamat Nyelv lapján válassza ki a testreszabni kívánt nyelvet.
  3. A Lapszintű erőforrások fájlok területen válassza ki a szerkeszteni kívánt lapot.
  4. Válassza az alapértelmezett letöltési beállításokat (vagy a felülbírálások letöltését , ha korábban már szerkesztette ezt a nyelvet).

Ezek a lépések egy JSON-fájlt biztosítanak, amellyel megkezdheti a sztringek szerkesztését.

Az oldal bármely sztringjének módosítása

  1. Nyissa meg az előző utasításokból letöltött JSON-fájlt egy JSON-szerkesztőben.
  2. Keresse meg a módosítani kívánt elemet. Megkeresheti StringId a keresett sztringet, vagy megkeresheti a Value módosítani kívánt attribútumot.
  3. Frissítse az Value attribútumot a megjelenítendővel.
  4. Minden módosítani kívánt sztringnél váltson Override a következőre true: .
  5. Mentse a fájlt, és töltse fel a módosításokat. (A feltöltési vezérlő ugyanazon a helyen található, ahol a JSON-fájlt letöltötte.)

Fontos

Ha felül kell bírálnia egy sztringet, állítsa be az értéket a Override következőre true: . Ha az érték nem változik, a bejegyzés figyelmen kívül lesz hagyva.

Bővítményattribútumok módosítása

Ha módosítani szeretné egy egyéni felhasználói attribútum sztringjét, vagy hozzá szeretne adni egyet a JSON-hoz, az a következő formátumban van:

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

Cserélje le <ExtensionAttribute> az egyéni felhasználói attribútum nevére.

Cserélje le <ExtensionAttributeValue> a megjelenítendő új sztringre.

Értékek listájának megadása a LocalizedCollections használatával

Ha meg szeretné adni a válaszok értékeinek egy készletét, létre kell hoznia egy LocalizedCollections attribútumot. LocalizedCollections egy tömb és NameValue pár. Az elemek sorrendje a megjelenített sorrend lesz. A hozzáadáshoz LocalizedCollectionshasználja a következő formátumot:

{
  "LocalizedStrings": [...],
  "LocalizedCollections": [
    {
      "ElementType":"ClaimType",
      "ElementId":"<UserAttribute>",
      "TargetCollection":"Restriction",
      "Override": true,
      "Items":[
        {
          "Name":"<Response1>",
          "Value":"<Value1>"
        },
        {
          "Name":"<Response2>",
          "Value":"<Value2>"
        }
      ]
    }
  ]
}
  • ElementId az a felhasználói attribútum, amelyre ez LocalizedCollections az attribútum válasz.
  • Name A felhasználó számára megjelenített érték.
  • Value ez a lehetőség a jogcímben visszaadott érték.

Módosítások feltöltése

  1. Miután elvégezte a JSON-fájl módosításait, térjen vissza a B2C-bérlőhöz.
  2. Válassza ki a Felhasználói folyamatokat , és kattintson arra a felhasználói folyamatra, amelyet engedélyezni szeretne a fordításokhoz.
  3. Nyelvek kiválasztása.
  4. Válassza ki a lefordítani kívánt nyelvet.
  5. Válassza ki azt a lapot, amelyen fordításokat szeretne nyújtani.
  6. Válassza ki a mappa ikont, és válassza ki a feltölteni kívánt JSON-fájlt.

A rendszer automatikusan menti a módosításokat a felhasználói folyamatba.

A lap felhasználói felületének testreszabása nyelvi testreszabással

A HTML-tartalom honosításának két módja van. Ennek egyik módja a nyelvi testreszabás bekapcsolása. A funkció engedélyezésével az Azure AD B2C továbbíthatja az OpenID Csatlakozás paramétert ui-localesa végpontnak. A tartalomkiszolgáló ezzel a paraméterrel testre szabott, nyelvspecifikus HTML-lapokat biztosíthat.

Másik lehetőségként lekérheti a tartalmat különböző helyekről a használt területi beállítás alapján. A CORS-kompatibilis végponton beállíthat egy mappastruktúrát, amely adott nyelvek tartalmát tárolja. A helyettesítő karakter használata {Culture:RFC5646}esetén a megfelelőt fogja hívni. Tegyük fel például, hogy ez az egyéni lap URI-ja:

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

A lapot betöltheti a következőbe fr: . Amikor az oldal LEkéri a HTML- és CSS-tartalmat, az a következőből fog lekérni:

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

Egyéni nyelvek hozzáadása

Olyan nyelveket is hozzáadhat, amelyekhez a Microsoft jelenleg nem biztosít fordítást. Meg kell adnia a felhasználói folyamat összes sztringjének fordítását. A nyelvi és területi kódok az ISO 639-1 szabványban meghatározottakra korlátozódnak. A területi kód formátumának például en-GB"ISO_639-1_code"-"CountryCode" formátumúnak kell lennie. További információkért tekintse meg a területi azonosító formátumát.

  1. Az Azure AD B2C-bérlőben válassza a Felhasználói folyamatok lehetőséget.
  2. Kattintson arra a felhasználói folyamatra, amelyhez egyéni nyelveket szeretne hozzáadni, majd kattintson a Nyelvek elemre.
  3. Válassza az Egyéni nyelv hozzáadása lehetőséget a lap tetején.
  4. A megnyíló környezeti panelen egy érvényes területi kód beírásával állapítsa meg, hogy melyik nyelvhez nyújt fordítást.
  5. Minden oldalhoz letöltheti az angol nyelvű felülbírálásokat, és dolgozhat a fordításokon.
  6. Miután végzett a JSON-fájlokkal, feltöltheti őket az egyes oldalakra.
  7. Válassza az Engedélyezés lehetőséget, és a felhasználói folyamat mostantól megjelenítheti ezt a nyelvet a felhasználók számára.
  8. Mentse a nyelvet.

Fontos

A mentés előtt engedélyeznie kell az egyéni nyelveket, vagy felülbírálásokat kell feltöltenie.

A támogatott nyelvek listájának beállítása

Nyissa meg a szabályzat bővítményfájlját. For example, SocialAndLocalAccounts/TrustFrameworkExtensions.xml.

  1. Keresse meg a BuildingBlocks elemet. Ha az elem nem létezik, adja hozzá.
  2. Adja hozzá az Localization elemet a támogatott nyelvekkel: angol (alapértelmezett) és spanyol.
<Localization Enabled="true">
  <SupportedLanguages DefaultLanguage="en" MergeBehavior="ReplaceAll">
    <SupportedLanguage>en</SupportedLanguage>
    <SupportedLanguage>es</SupportedLanguage>
  </SupportedLanguages>
</Localization>

Nyelvspecifikus címkék megadása

Az elem LocalizedResources tulajdonsága Localization tartalmazza a honosított sztringek listáját. A honosított erőforrások elem egy azonosítóval rendelkezik, amely a honosított erőforrások egyedi azonosítására szolgál. Ezt az azonosítót később használja a tartalomdefiníció elem.

Honosított erőforrások elemeit konfigurálja a tartalomdefinícióhoz és a támogatni kívánt nyelvhez. Az egységes regisztrációs vagy bejelentkezési lapok angol és spanyol nyelvű testreszabásához az elem bezárása </SupportedLanguages> után adja hozzá a következő LocalizedResources elemeket.

Megjegyzés:

A következő példában az egyes sorok elején hozzáadtuk a font # szimbólumot, így könnyen megtalálhatja a honosított címkéket a képernyőn.

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

A tartalomdefiníció szerkesztése a honosítással

Illessze be a BuildingBlocks elem gyermekeként másolt ContentDefinitions elem teljes tartalmát.

Az alábbi példában angol (en) és spanyol (es) egyéni sztringek jelennek meg a regisztrációs vagy bejelentkezési oldalon, valamint a helyi fiók regisztrációs oldalán. A LocalizedResourcesReferenceId minden LocalizedResourcesReference esetében megegyezik a területi beállításukkal, de bármely sztringet használhatja azonosítóként. Az egyes nyelvek és lapok kombinációi esetében a korábban létrehozott megfelelő LocalizedResource-okra kell mutatnia.

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

A frissített egyéni szabályzat feltöltése és tesztelése

Az egyéni szabályzat feltöltése

  1. Mentse a bővítményfájlt.
  2. Ha több bérlőhöz is hozzáfér, a felső menüben válassza a Gépház ikont az Azure AD B2C-bérlőre való váltáshoz a Címtárak + előfizetések menüből.
  3. Keresse meg és válassza ki az Azure AD B2C-t.
  4. A Szabályzatok területen válassza az Identity Experience Framework lehetőséget.
  5. Válassza az Egyéni szabályzat feltöltése lehetőséget.
  6. Töltse fel a korábban módosított bővítményfájlt.

Az egyéni szabályzat tesztelése a Futtatás most funkcióval

  1. Válassza ki a feltöltött szabályzatot, majd válassza a Futtatás most lehetőséget.
  2. Látnia kell a honosított regisztrációs vagy bejelentkezési oldalt.
  3. Kattintson a regisztrációs hivatkozásra, és látnia kell a honosított regisztrációs oldalt.
  4. Váltson a böngésző alapértelmezett nyelvére spanyolra. Vagy hozzáadhatja a lekérdezési sztring paramétert ui_locales az engedélyezési kérelemhez. Például:
https://<tenant-name>.b2clogin.com/<tenant-name>.onmicrosoft.com/B2C_1A_signup_signin/oauth2/v2.0/authorize&client_id=0239a9cc-309c-4d41-12f1-31299feb2e82&nonce=defaultNonce&redirect_uri=https%3A%2F%2Fjwt.ms&scope=openid&response_type=id_token&prompt=login&ui_locales=es

További információk

Lap felhasználói felületének testreszabási címkéi felülbírálásként

Ha engedélyezi a nyelvi testreszabást, a lapok felhasználói felületének testreszabásával végzett címkék korábbi szerkesztései megmaradnak egy angol nyelvű JSON-fájlban (en). Továbbra is módosíthatja a címkéket és más sztringeket a nyelvi erőforrások nyelvi testreszabása során történő feltöltésével.

Naprakész fordítások

A Microsoft elkötelezett amellett, hogy a legfrissebb fordításokat nyújtsa az Ön számára. A Microsoft folyamatosan fejleszti a fordításokat, és megtartja azOkat az Ön számára. A Microsoft azonosítja a globális terminológia hibáit és változásait, és olyan frissítéseket készít, amelyek zökkenőmentesen működnek a felhasználói folyamatban.

Jobbról balra író nyelvek támogatása

A Microsoft jelenleg nem támogatja a jobbról balra író nyelveket. Ezt egyéni területi beállításokkal és a CSS használatával teheti meg a sztringek megjelenítési módjának módosításához. Ha szüksége van erre a funkcióra, szavazzon rá az Azure Feedbackben.

Közösségi identitásszolgáltatói fordítások

A Microsoft biztosítja az ui_locales OIDC paramétert a közösségi bejelentkezésekhez. Egyes közösségi identitásszolgáltatók, például a Facebook és a Google azonban nem tisztelik őket.

Böngésző viselkedése

A Chrome és a Firefox is kéri a beállított nyelvüket. Ha támogatott nyelv, akkor az alapértelmezett előtt jelenik meg. A Microsoft Edge jelenleg nem kér nyelvet, és egyenesen az alapértelmezett nyelvre megy.

Támogatott nyelvek

Az Azure AD B2C iso 639-1 kóddal támogatja a következő nyelveket. A felhasználói folyamat nyelvét az Azure AD B2C biztosítja. A többtényezős hitelesítés értesítési nyelvét a Microsoft Entra többtényezős hitelesítés biztosítja.

Nyelv Nyelvkód Felhasználói folyamatok MFA-értesítések
Arab ar X indicating no. Green check mark.
Bolgár Bg X indicating no. Green check mark.
Bangla Bn Green check mark. X indicating no.
Katalán Ca X indicating no. Green check mark.
Cseh cs Green check mark. Green check mark.
Dán da Green check mark. Green check mark.
Német de Green check mark. Green check mark.
Görög el Green check mark. Green check mark.
Angolul hu Green check mark. Green check mark.
Spanyol es Green check mark. Green check mark.
Észt et X indicating no. Green check mark.
Baszk Eu X indicating no. Green check mark.
finn fi Green check mark. Green check mark.
Francia fr Green check mark. Green check mark.
Gallego Gl X indicating no. Green check mark.
Gudzsaráti Gu Green check mark. X indicating no.
héber Ő X indicating no. Green check mark.
Hindi szia Green check mark. Green check mark.
Horvát ó Green check mark. Green check mark.
Magyar hu Green check mark. Green check mark.
Indonéz id X indicating no. Green check mark.
Olasz it Green check mark. Green check mark.
Japán ja Green check mark. Green check mark.
Kazak Kk X indicating no. Green check mark.
Kannada kn Green check mark. X indicating no.
Koreai ko Green check mark. Green check mark.
Litván lt X indicating no. Green check mark.
Lett Lv X indicating no. Green check mark.
Malajálam Ml Green check mark. X indicating no.
Marathi Mr Green check mark. X indicating no.
Maláj ms Green check mark. Green check mark.
Norvég Bokmal nb Green check mark. X indicating no.
Holland nl Green check mark. Green check mark.
norvég nem X indicating no. Green check mark.
Pandzsábi Pa Green check mark. X indicating no.
Lengyel pl Green check mark. Green check mark.
Portugál - Brazília pt-br Green check mark. Green check mark.
Portugál - Portugália pt-pt Green check mark. Green check mark.
Román ro Green check mark. Green check mark.
Orosz ru Green check mark. Green check mark.
Szlovák Sk Green check mark. Green check mark.
Szlovén Sl X indicating no. Green check mark.
Szerb - cirill betűs sr-cryl-cs X indicating no. Green check mark.
Szerb - latin sr-latn-cs X indicating no. Green check mark.
svéd sv Green check mark. Green check mark.
Tamil ta Green check mark. X indicating no.
Telugu te Green check mark. X indicating no.
Thai Th Green check mark. Green check mark.
Török Tr Green check mark. Green check mark.
Ukrán uk X indicating no. Green check mark.
Vietnámi Vi X indicating no. Green check mark.
Walesi Cy X indicating no. X indicating no.
Kínai – Egyszerűsített zh-hans Green check mark. Green check mark.
Kínai - Hagyományos zh-hant Green check mark. Green check mark.

Következő lépések