حدد عنصر الترجمة

ملاحظة

في Azure Active Directory B2C، تم تصميم النُهج المخصصة بشكل أساسي لمعالجة السيناريوهات المعقدة. بالنسبة إلى معظم السيناريوهات، نوصي باستخدام تدفقات المستخدم المضمنة. إذا لم تقم بذلك، تعرف على حزمة بادئ النهج المخصصة في البدء باستخدام النهج المخصصة في 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">
  ...

يتضمن عنصر OutputClaim على السمات التالية:

السمة مطلوب الوصف
تم التمكين لا القيم المحتملة:trueأوfalse.

يحتوي عنصر التعريب على عناصر XML التالية

العنصر الأحداث الوصف
اللغات المعتمدة 1:n قائمة باللغات المدعومة.
مصادر مترجمة 0:n قائمة الموارد المحلية.

اللغات المعتمدة

يتضمن عنصر اللغات المعتمدة السمات التالية:

السمة مطلوب الوصف
اللغة الافتراضية نعم اللغة التي يتم استخدامها كلغة افتراضية للموارد المحلية.
MergeBehavior لا قيم تعداد القيم التي تم دمجها مع أي ClaimType موجود في نهج بنفس المعرف. استخدم هذه السمة عند الكتابة فوق مطالبة خاصة في النهج الأساسي. القيم الممكنة:AppendأوPrependأوReplaceAll. Appendتحدد القيمة أنه يجب إلحاق مجموعة البيانات الموجودة بنهاية المجموعة المحددة في النهج الأصلي. تحدد القيمة Prepend أنه يجب إلحاق مجموعة البيانات الموجودة بنهاية المجموعة المحددة في النهج الأصل. تحدد القيمة ReplaceAll أنه يجب تجاهل مجموعة البيانات المعرفة في النهج الأصل، باستخدام البيانات المعرفة في النهج الحالي بدلًا من ذلك.

اللغات المعتمدة

يحتوي عنصر SupportedLanguages على السمات التالية:

العنصر الأحداث الوصف
SupportedLanguage 1:n عرض محتوى يتماشى مع علامة لغة لكل RFC 5646 - علامات للتعرف على اللغات.

مصادر مترجمة

يشمل عنصر الموارد المحلية السمات التالية:

السمة مطلوب الوصف
المعرّف نعم المعرف يستخدم لتعريف الموارد المحلية بشكل فريد.

يتضمن عنصر الموارد المحلية السمات التالية:

العنصر الأحداث الوصف
المجموعات المحلية 0:n يعرف مجموعات كاملة بمختلف الثقافات. يمكن أن تحتوي المجموعة على عدد متنوع من العناصر وسلاسل متنوعة لمختلف الثقافات. تحتوي أمثلة المجموعات على التعدادات التي تظهر في أنواع المطالبة. على سبيل المثال، يتم عرض قائمة البلد/المنطقة للمستخدم في قائمة إسقاط.
السلاسل المحلية 0:n يقوم بتعريف كافة السلاسل، ماعدا تلك السلاسل التي تظهر في مجموعات، في ثقافات مختلفة.

المجموعات المحلية

يتضمن عنصر المجموعات المحلية السمات التالية:

العنصر الأحداث الوصف
مجموعة محلية 1:n قائمة باللغات المدعومة.

مجموعة محلية

يتضمن عنصر المجموعات المحلية على السمات التالية:

السمة مطلوب الوصف
ElementType نعم مراجع عنصر ClaimType أو عنصر واجهة المستخدم في ملف النهج.
Elementld نعم سلسلة تتضمن مرجعًا إلى نوع مطالبة تم تعريفه بالفعل في قسم ClaimsSchema المستخدم إذا تم تعيينElementType إلى مجموعة ClaimType.
المجموعة المستهدفة نعم المجموعة المستهدفة.

يتضمن عنصر المجموعات المترجمة السمات التالية:

العنصر الأحداث الوصف
Item 0:n يعرف خيارا متاحا للمستخدم لتحديده للمطالبة في واجهة المستخدم، مثل قيمة في قائمة الإسقاط.

يحتوي عنصر مكون على السمات التالية:

السمة مطلوب الوصف
النص نعم سلسلة العرض سهلة الاستخدام التي يجب أن تظهر للمستخدم في واجهة المستخدم لهذا الاختيار.
القيمة نعم قيمة المطالبة بالسلسلة المرتبطة بتحديد هذا الاختيار.
SelectByDefault لا يشير إلى ما إذا كان يجب تحديد هذا الاختيار بشكل افتراضي في واجهة المستخدم أم لا. القيم المحتملة: صواب أم خطأ.

يوضح المثال التالي استخدام عنصر المجموعات المحلية. يحتوي على عنصرين مجموعات محلية واحد للغة الإنجليزية والآخر للغة الإسبانية. ووضع كلاهما في مجموعة منقيود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>

السلاسل المحلية

يتضمن عنصر الموارد المترجمة السمات التالية:

العنصر الأحداث الوصف
السلاسل المحلية 1:n سلسلة محلية.

يتضمن عنصر السلسلة المحلية على السمات التالية:

السمة مطلوب الوصف
ElementType نعم القيم المحتملة: ClaimsProvidor، ClaimType، ErrorMessage، GetLocalizedStringsTransformationTypeأو FormatLocalizedStringTransformationClaimTypeأودالة التقييم، أوPredicateValidation أو UxElement.
Elementld نعم تعيين سلسلةنوع العنصرإلي مجموعة ClaimTypeأوPredicatePredicateValidationأو تتضمن مرجعًا إلى نوع مطالبة تم تعريفه بالفعل في قسم ClaimsSchema.
StringId نعم إذا تم بتعيين ElementType إلى ClaimType، يحتوي هذا العنصر على مرجع إلى سمة من نوع المطالبة. القيم الممكنة:DisplayName,AdminHelpTextأوPatternHelpText. DisplayName تستخدم القيمة لتعيين اسم عرض المطالبة. AdminHelpTextيتم استخدام القيمة لتعيين اسم نص التعليمات الخاص بمستخدم المطالبة. PatternHelpText تستخدم القيمة لتعيين اسم عرض نمط المطالبة. قم بتعيين ElementType إلى UxElement، يحتوي هذا العنصر على مرجع إلى سمة من نوع المطالبة. إذا تم تعيين ElementType إلىErrorMessageهذا العنصر يحدد معرف رسالة خطأ. انظر معرفات سلسلة التعريب للحصول على قائمة كاملة UxElement بالمعرفات.

ElementType

مرجع ElementType إلى نوع مطالبة أو تحويل مطالبة أو عنصر واجهة مستخدم في النهج الذي سيتم تحويله.

عنصر إلى ترجمة ElementType Elementld StringId
اسم موفر الهوية ClaimsProvider معرف عنصر تبادل المطالبات
سمات نوع المطالبة ClaimType اسم فئة المطالبة سمة المطالبة التي سيتم ترجمتها. القيم الممكنة:AdminHelpTextوDisplayNameوPatternHelpTextوUserHelpText.
رسالة الخطأ ErrorMessage معرف الرسالة الخطأ
نسخ سلاسل مترجمة إلى مطالبات GetLocalizedStringsTra nsformationClaimType اسم المطالبة بالإخراج
رسالة المستخدم الأصلية Predicate اسم دالة التقييم سمة دالة التقييم التي سيتم ترجمتها. القيم الممكنة:HelpText.
رسالة مستخدم مجموعة دالة التقييم PredicateValidation معرف عنصر دالة التقييم. معرف عنصر مجموعة التقييم. ويجب أن تكون مجموعة التقييم تابعة لعنصر التحقق من صحة دالة التقييم كما هو معرف في معرف العنصر.
عناصر واجهة المستخدم 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="ResponseMessge_EmailExists" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="responseMsg" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>

يوضح المثال التالي كيفية توطين تنسيق سلسلة من نوع تحويل مطالبات FormatLocalizedStringTransformationClaimType.

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

GetLocalizedStringsTransformationClaimType

استخدام قيمة 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>

المسند

يتم استخدام قيمة ErrorMessage لترجمة إحدى رسائل خطأ النظام.

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

PredicateValidation

يتم استخدام قيمة 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

يتم استخدام قيمة DisplayControl لترجمة أحد عناصر واجهة المستخدم عنصر تحكم العرض. عند التمكين، يأخذ عنصر تحكم العرض localizedStrings الأسبقية على بعض من معرفات سلاسل UxElement مثل 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>

في المقطع بيانات التعريف من ملف تعريف فني self-asserted، يحتاج ContentDefinition المشار إليها إلى تعيين DataUri إلى إصدار تخطيط الصفحة 2.1.0 أو أعلى. على سبيل المثال:

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

الخطوات التالية

انظر إلى المقالات التالية للحصول على أمثلة الترجمة: