Поделиться через


Элемент Локализации

Это важно

Начиная с 1 мая 2025 г. Azure AD B2C больше не будет доступен для приобретения для новых клиентов. Дополнительные сведения см. в разделе "Вопросы и ответы".

Замечание

В Azure Active Directory B2C пользовательские политики преимущественно предназначены для выполнения сложных сценариев. В большинстве случаев рекомендуется использовать встроенные потоки пользователей. Ознакомьтесь со статьей Начало работы с настраиваемыми политиками в Azure Active Directory B2C, чтобы узнать о базовом пакете настраиваемых политик, если еще не сделали этого.

Элемент "Локализация " позволяет поддерживать несколько языковых стандартов или языков в политике для взаимодействия пользователей. Поддержка локализации в политиках позволяет:

  • Настройте явный список поддерживаемых языков в политике и выберите язык по умолчанию.
  • Укажите строки и коллекции, относящиеся к языку.
<Localization Enabled="true">
  <SupportedLanguages DefaultLanguage="en" MergeBehavior="ReplaceAll">
    <SupportedLanguage>en</SupportedLanguage>
    <SupportedLanguage>es</SupportedLanguage>
  </SupportedLanguages>
  <LocalizedResources Id="api.localaccountsignup.en">
  <LocalizedResources Id="api.localaccountsignup.es">
  ...

Элемент "Локализация " содержит следующие атрибуты:

Свойство Обязательно Описание
Включен нет Возможные значения: true или false.

Элемент "Локализация" содержит следующие XML-элементы

Элемент Вхождения Описание
Поддерживаемыеlanguages 1:n Список поддерживаемых языков.
Локализованные ресурсы 0:n Список локализованных ресурсов.

Поддерживаемыеlanguages

Элемент SupportedLanguages содержит следующие атрибуты:

Свойство Обязательно Описание
Язык по умолчанию Да Язык, используемый в качестве языка по умолчанию для локализованных ресурсов.
MergeBehavior нет Значения перечисления значений, объединенных вместе с любыми утверждениями, присутствующих в родительской политике с тем же идентификатором. Используйте этот атрибут при перезаписи утверждения, указанного в базовой политике. Возможные значения: Append, Prepend или ReplaceAll. Значение Append указывает, что коллекция данных должна быть добавлена в конец коллекции, указанной в родительской политике. Значение Prepend указывает, что коллекция данных должна быть добавлена перед коллекцией, указанной в родительской политике. Значение ReplaceAll указывает, что сбор данных, определенных в родительской политике, следует игнорировать, используя вместо этого данные, определенные в текущей политике.

Поддерживаемыеlanguages

Элемент SupportedLanguages содержит следующие элементы:

Элемент Вхождения Описание
ПоддерживаемыйLanguage 1:n Отображает содержимое, соответствующее тегу языка для RFC 5646 — теги для идентификации языков.

Локализованные ресурсы

Элемент LocalizedResources содержит следующие атрибуты:

Свойство Обязательно Описание
Идентификатор Да Идентификатор, используемый для уникальной идентификации локализованных ресурсов.

Элемент LocalizedResources содержит следующие элементы:

Элемент Вхождения Описание
Локализованные коллекции 0:n Определяет целые коллекции в различных языках и региональных параметрах. Коллекция может содержать разные элементы и разные строки для различных языков и региональных параметров. Примеры коллекций включают перечисления, которые отображаются в типах утверждений. Например, список стран или регионов отображается пользователю в раскрывающемся списке.
Локализованныеstrings 0:n Определяет все строки, кроме строк, которые отображаются в коллекциях в различных языках и региональных параметров.

Локализованные коллекции

Элемент LocalizedCollections содержит следующие элементы:

Элемент Вхождения Описание
Локализованная коллекция 1:n Список поддерживаемых языков.

Локализованная коллекция

Элемент LocalizedCollection содержит следующие атрибуты:

Свойство Обязательно Описание
Тип элемента Да Ссылается на элемент ClaimType или элемент пользовательского интерфейса в файле политики.
ElementId (Идентификатор элемента) Да Строка, содержащая ссылку на тип утверждения, уже определенный в разделе ClaimsSchema, который используется, если элементType имеет значение ClaimType .
Целевая коллекция Да Целевая коллекция.

Элемент LocalizedCollection содержит следующие элементы:

Элемент Вхождения Описание
Товар 0:n Определяет доступный вариант выбора утверждения в пользовательском интерфейсе, например значение в раскрывающемся списке.

Элемент Item содержит следующие атрибуты:

Свойство Обязательно Описание
Текст Да Отображаемая пользователем строка, которая должна отображаться пользователю в пользовательском интерфейсе для этого параметра.
Ценность Да Строковое значение утверждения, связанное с выбором этого параметра.
ВыбратьПоУмолчанию нет Указывает, следует ли по умолчанию выбирать этот параметр в пользовательском интерфейсе. Возможные значения: True или False.

В следующем примере показано использование элемента LocalizedCollections . Он содержит два элемента LocalizedCollection , один для английского и другого для испанского языка. Оба параметра задают коллекцию ограничений утверждения Gender со списком элементов для английского и испанского языков. Дополнительные примеры см. в демонстрации утверждения с ограниченным перечислением.

<LocalizedResources Id="api.selfasserted.en">
  <LocalizedCollections>
    <LocalizedCollection ElementType="ClaimType" ElementId="Gender" TargetCollection="Restriction">
      <Item Text="Female" Value="F" />
      <Item Text="Male" Value="M" />
    </LocalizedCollection>
  </LocalizedCollections>
</LocalizedResources>

<LocalizedResources Id="api.selfasserted.es">
 <LocalizedCollections>
   <LocalizedCollection ElementType="ClaimType" ElementId="Gender" TargetCollection="Restriction">
      <Item Text="Femenino" Value="F" />
      <Item Text="Masculino" Value="M" />
    </LocalizedCollection>
  </LocalizedCollections>
</LocalizedResources>

Локализованныеstrings

Элемент LocalizedStrings содержит следующие элементы:

Элемент Вхождения Описание
LocalizedString 1:n Локализованная строка.

Элемент LocalizedString содержит следующие атрибуты:

Свойство Обязательно Описание
Тип элемента Да Возможные значения: ClaimsProvider, ClaimType, ErrorMessage, GetLocalizedStringsTransformationClaimType, FormatLocalizedStringTransformationClaimType, PredicateValidation или UxElement.
ElementId (Идентификатор элемента) Да Если элемент ElementType имеет значение ClaimType, Predicateили PredicateValidationэтот элемент содержит ссылку на тип утверждения, уже определенный в разделе ClaimsSchema.
Строковый идентификатор Да Если элемент ElementType имеет значение ClaimType, этот элемент содержит ссылку на атрибут типа утверждения. Возможные значения: DisplayName, AdminHelpText или PatternHelpText. Значение DisplayName используется для задания отображаемого имени утверждения. Значение AdminHelpText используется для задания текстового имени справки пользователя утверждения. Значение PatternHelpText используется для задания текста справки шаблона утверждения. Если элемент ElementType имеет значение UxElement, этот элемент содержит ссылку на атрибут элемента пользовательского интерфейса. Если элемент ElementType имеет ErrorMessageзначение , этот элемент задает идентификатор сообщения об ошибке. Полный список идентификаторов идентификаторов строк локализации см. в разделе UxElement "Идентификаторы строк локализации".

Тип элемента

Ссылка на ЭлементType на тип утверждения, преобразование утверждения или элемент пользовательского интерфейса в политике, который необходимо локализовать.

Элемент для локализации Тип элемента ElementId (Идентификатор элемента) Строковый идентификатор
Имя поставщика удостоверений ClaimsProvider Идентификатор элемента ClaimsExchange
Атрибуты типа утверждения ClaimType Имя типа утверждения Атрибут утверждения, локализованного. Возможные значения: AdminHelpText, DisplayName, PatternHelpTextи UserHelpText.
Сообщение об ошибке ErrorMessage Идентификатор сообщения об ошибке
Копирует локализованные строки в утверждения GetLocalizedStringsTransformationClaimType Имя выходного утверждения
Сообщение пользователя предиката Predicate Имя предиката Атрибут предиката, который необходимо локализовать. Возможные значения: HelpText.
Сообщение пользователя группы предикатов PredicateValidation Идентификатор элемента PredicateValidation. Идентификатор элемента PredicateGroup. Группа предиката должна быть дочерним элементом проверки предиката, как определено в элементе ElementId.
Элементы пользовательского интерфейса UxElement Идентификатор локализованного элемента пользовательского интерфейса.
Элемент управления "Отображение" DisplayControl Идентификатор элемента управления отображения. Идентификатор локализованного элемента пользовательского интерфейса.

Примеры

Поставщик претензий

Значение ClaimsProvider используется для локализации одного из отображаемых имен поставщиков утверждений.

<OrchestrationStep Order="2" Type="ClaimsExchange">
  ...
  <ClaimsExchanges>
    <ClaimsExchange Id="FacebookExchange" TechnicalProfileReferenceId="Facebook-OAUTH" />
    <ClaimsExchange Id="GoogleExchange" TechnicalProfileReferenceId="Google-OAUTH" />
    <ClaimsExchange Id="LinkedInExchange" TechnicalProfileReferenceId="LinkedIn-OAUTH" />
  </ClaimsExchanges>
</OrchestrationStep>

В следующем примере показано, как локализовать отображаемое имя поставщиков утверждений.

<LocalizedString ElementType="ClaimsProvider" StringId="FacebookExchange">Facebook</LocalizedString>
<LocalizedString ElementType="ClaimsProvider" StringId="GoogleExchange">Google</LocalizedString>
<LocalizedString ElementType="ClaimsProvider" StringId="LinkedInExchange">LinkedIn</LocalizedString>

Тип претензии

Значение ClaimType используется для локализации одного из атрибутов утверждения.

<ClaimType Id="email">
  <DisplayName>Email Address</DisplayName>
  <DataType>string</DataType>
  <UserHelpText>Email address that can be used to contact you.</UserHelpText>
  <UserInputType>TextBox</UserInputType>
</ClaimType>

В следующем примере показано, как локализовать атрибуты DisplayName, UserHelpText и PatternHelpText типа утверждения электронной почты.

<LocalizedString ElementType="ClaimType" ElementId="email" StringId="DisplayName">Email</LocalizedString>
<LocalizedString ElementType="ClaimType" ElementId="email" StringId="UserHelpText">Please enter your email</LocalizedString>
<LocalizedString ElementType="ClaimType" ElementId="email" StringId="PatternHelpText">Please enter a valid email address</LocalizedString>

Сообщение об ошибке

Значение ErrorMessage используется для локализации одного из системных сообщений об ошибках.

<TechnicalProfile Id="AAD-UserWriteUsingAlternativeSecurityId">
  <Metadata>
    <Item Key="RaiseErrorIfClaimsPrincipalAlreadyExists">true</Item>
    <Item Key="UserMessageIfClaimsPrincipalAlreadyExists">You are already registered, please press the back button and sign in instead.</Item>
  </Metadata>
  ...
</TechnicalProfile>

В следующем примере показано, как локализовать сообщение об ошибке UserMessageIfClaimsPrincipalAlreadyExists.

<LocalizedString ElementType="ErrorMessage" StringId="UserMessageIfClaimsPrincipalAlreadyExists">The account you are trying to create already exists, please sign-in.</LocalizedString>

FormatLocalizedStringTransformationClaimType

Значение FormatLocalizedStringTransformationClaimType используется для форматирования утверждений в локализованную строку. Дополнительные сведения см. в разделе Преобразование утверждений FormatLocalizedString

<ClaimsTransformation Id="SetResponseMessageForEmailAlreadyExists" TransformationMethod="FormatLocalizedString">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="email" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="stringFormatId" DataType="string" Value="ResponseMessage_EmailExists" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="responseMsg" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>

В следующем примере показано, как локализовать строковый формат преобразования утверждений FormatLocalizedStringTransformationClaimType.

<LocalizedString ElementType="FormatLocalizedStringTransformationClaimType" StringId="ResponseMessage_EmailExists">The email '{0}' is already an account in this organization. Click Next to sign in with that account.</LocalizedString>

GetLocalizedStringsTransformationClaimType

Значение GetLocalizedStringsTransformationClaimType используется для копирования локализованных строк в утверждения. Дополнительные сведения см. в разделе "Преобразование утверждений GetLocalizedStringsTransformation"

<ClaimsTransformation Id="GetLocalizedStringsForEmail" TransformationMethod="GetLocalizedStringsTransformation">
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="subject" TransformationClaimType="email_subject" />
    <OutputClaim ClaimTypeReferenceId="message" TransformationClaimType="email_message" />
    <OutputClaim ClaimTypeReferenceId="codeIntro" TransformationClaimType="email_code" />
    <OutputClaim ClaimTypeReferenceId="signature" TransformationClaimType="email_signature" />
   </OutputClaims>
</ClaimsTransformation>

В следующем примере показано, как локализовать выходные утверждения преобразования утверждений GetLocalizedStringsTransformation.

<LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_subject">Contoso account email verification code</LocalizedString>
<LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_message">Thanks for verifying your account!</LocalizedString>
<LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_code">Your code is</LocalizedString>
<LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_signature">Sincerely</LocalizedString>

Предикат

Значение предиката используется для локализации одного из сообщений об ошибках предиката .

<Predicates>
  <Predicate Id="LengthRange" Method="IsLengthRange"  HelpText="The password must be between 6 and 64 characters.">
    <Parameters>
      <Parameter Id="Minimum">6</Parameter>
      <Parameter Id="Maximum">64</Parameter>
    </Parameters>
  </Predicate>
  <Predicate Id="Lowercase" Method="IncludesCharacters" HelpText="a lowercase letter">
    <Parameters>
      <Parameter Id="CharacterSet">a-z</Parameter>
    </Parameters>
  </Predicate>
  <Predicate Id="Uppercase" Method="IncludesCharacters" HelpText="an uppercase letter">
    <Parameters>
      <Parameter Id="CharacterSet">A-Z</Parameter>
    </Parameters>
  </Predicate>
</Predicates>

В следующем примере показано, как локализовать вспомогательный текст предикатов.

<LocalizedString ElementType="Predicate" ElementId="LengthRange" StringId="HelpText">The password must be between 6 and 64 characters.</LocalizedString>
<LocalizedString ElementType="Predicate" ElementId="Lowercase" StringId="HelpText">a lowercase letter</LocalizedString>
<LocalizedString ElementType="Predicate" ElementId="Uppercase" StringId="HelpText">an uppercase letter</LocalizedString>

ПредикатValidation

Значение PredicateValidation используется для локализации одного из сообщений об ошибках группы PredicateValidation .

<PredicateValidations>
  <PredicateValidation Id="CustomPassword">
    <PredicateGroups>
      <PredicateGroup Id="LengthGroup">
        <PredicateReferences MatchAtLeast="1">
          <PredicateReference Id="LengthRange" />
        </PredicateReferences>
      </PredicateGroup>
      <PredicateGroup Id="CharacterClasses">
        <UserHelpText>The password must have at least 3 of the following:</UserHelpText>
        <PredicateReferences MatchAtLeast="3">
          <PredicateReference Id="Lowercase" />
          <PredicateReference Id="Uppercase" />
          <PredicateReference Id="Number" />
          <PredicateReference Id="Symbol" />
        </PredicateReferences>
      </PredicateGroup>
    </PredicateGroups>
  </PredicateValidation>
</PredicateValidations>

В следующем примере показано, как локализовать текст справки группы проверки предиката.

<LocalizedString ElementType="PredicateValidation" ElementId="CustomPassword" StringId="CharacterClasses">The password must have at least 3 of the following:</LocalizedString>

UxElement

Значение UxElement используется для локализации одного из элементов пользовательского интерфейса. В следующем примере показано, как локализовать кнопки продолжения и отмены.

<LocalizedString ElementType="UxElement" StringId="button_continue">Create new account</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="button_cancel">Cancel</LocalizedString>

Управление дисплеем

Значение DisplayControl используется для локализации одного из элементов пользовательского интерфейса display Control . При включении элемент управления display localizedStrings имеет приоритет над некоторыми из UxElement StringID, таких как ver_but_send, ver_but_edit, ver_but_resend и ver_but_verify. В следующем примере показано, как локализовать кнопки отправки и проверки.

<LocalizedString ElementType="DisplayControl" ElementId="emailVerificationControl" StringId="but_send_code">Send verification code</LocalizedString>
<LocalizedString ElementType="DisplayControl" ElementId="emailVerificationControl" StringId="but_verify_code">Verify code</LocalizedString>

В разделе метаданных самоутверждающегося технического профиля указанный объект ContentDefinition должен иметь DataUri, установленный для макета страницы версии 2.1.0 или более поздней. Рассмотрим пример.

<ContentDefinition Id="api.selfasserted">
  <DataUri>urn:com:microsoft:aad:b2c:elements:selfasserted:2.1.0</DataUri>
  ...

Дальнейшие шаги

Примеры локализации см. в следующих статьях: