إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
هام
اعتبارا من 1 مايو 2025، لن يكون Azure AD B2C متوفرا للشراء للعملاء الجدد. تعرف على المزيد في الأسئلة المتداولة.
إشعار
في 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">
...
يحتوي عنصر الترجمة على السمات التالية:
| السمة | مطلوب | وصف |
|---|---|---|
| مُمَكّن | لا | القيم الممكنة: true أو false. |
يحتوي عنصر الترجمة على عناصر XML التالية
| العنصر | الأحداث | وصف |
|---|---|---|
| Languages المدعومة | 1: ن | قائمة اللغات المدعومة. |
| الموارد المترجمة | 0: ن | قائمة بالموارد المترجمة. |
Languages المدعومة
يحتوي عنصر SupportedLanguages على السمات التالية:
| السمة | مطلوب | وصف |
|---|---|---|
| اللغة الافتراضية | نعم | اللغة التي سيتم استخدامها كلغة افتراضية للموارد المترجمة. |
| MergeBehavior | لا | قيم تعداد للقيم التي يتم دمجها مع أي نوع مطالبة موجود في نهج أصل بنفس المعرف. استخدم هذه السمة عند الكتابة فوق مطالبة محددة في النهج الأساسي. القيم الممكنة:Append,PrependأوReplaceAll.
Append تحدد القيمة أنه يجب إلحاق مجموعة البيانات الموجودة بنهاية المجموعة المحددة في النهج الأصل.
Prepend تحدد القيمة أنه يجب إضافة مجموعة البيانات الموجودة قبل المجموعة المحددة في النهج الأصل.
ReplaceAll تحدد القيمة أنه يجب تجاهل مجموعة البيانات المعرفة في النهج الأصل، باستخدام البيانات المعرفة في النهج الحالي بدلا من ذلك. |
Languages المدعومة
يحتوي عنصر SupportedLanguages على العناصر التالية:
| العنصر | الأحداث | وصف |
|---|---|---|
| Language المدعوم | 1: ن | يعرض المحتوى الذي يتوافق مع علامة لغة لكل RFC 5646 - علامات لتعريف اللغات. |
الموارد المترجمة
يحتوي عنصر LocalizedResources على السمات التالية:
| السمة | مطلوب | وصف |
|---|---|---|
| معرف | نعم | معرف يستخدم لتعريف الموارد المترجمة بشكل فريد. |
يحتوي عنصر LocalizedResources على العناصر التالية:
| العنصر | الأحداث | وصف |
|---|---|---|
| المجموعات المترجمة | 0: ن | يحدد مجموعات كاملة في ثقافات مختلفة. يمكن أن تحتوي المجموعة على عدد مختلف من العناصر وسلاسل مختلفة لثقافات مختلفة. تتضمن أمثلة المجموعات التعدادات التي تظهر في أنواع المطالبات. على سبيل المثال، يتم عرض قائمة البلد/المنطقة للمستخدم في قائمة منسدلة. |
| سلاسل مترجمة | 0: ن | تعريف كافة السلاسل، باستثناء تلك السلاسل التي تظهر في المجموعات، في ثقافات مختلفة. |
المجموعات المترجمة
يحتوي عنصر LocalizedCollections على العناصر التالية:
| العنصر | الأحداث | وصف |
|---|---|---|
| LocalizedCollection | 1: ن | قائمة اللغات المدعومة. |
LocalizedCollection
يحتوي عنصر LocalizedCollection على السمات التالية:
| السمة | مطلوب | وصف |
|---|---|---|
| نوع العنصر | نعم | يشير إلى عنصر ClaimType أو عنصر واجهة مستخدم في ملف النهج. |
| معرف العنصر | نعم | سلسلة تحتوي على مرجع لنوع مطالبة تم تعريفه بالفعل في قسم ClaimsSchema الذي يتم استخدامه إذا تم تعيين ElementType إلى ClaimType. |
| TargetCollection | نعم | المجموعة المستهدفة. |
يحتوي عنصر LocalizedCollection على العناصر التالية:
| العنصر | الأحداث | وصف |
|---|---|---|
| بند | 0: ن | يحدد خيارا متاحا للمستخدم لتحديده لمطالبة في واجهة المستخدم، مثل قيمة في قائمة منسدلة. |
يحتوي عنصر العنصر على السمات التالية:
| السمة | مطلوب | وصف |
|---|---|---|
| النص | نعم | سلسلة العرض سهلة الاستخدام التي يجب عرضها للمستخدم في واجهة المستخدم لهذا الخيار. |
| قيمة | نعم | قيمة مطالبة السلسلة المقترنة بتحديد هذا الخيار. |
| حددByDefault | لا | يشير إلى ما إذا كان يجب تحديد هذا الخيار افتراضيًا في واجهة المستخدم أم لا. القيم المحتملة: صواب أم خطأ. |
يوضح المثال التالي استخدام عنصر 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>
سلاسل مترجمة
يحتوي عنصر LocalizedStrings على العناصر التالية:
| العنصر | الأحداث | وصف |
|---|---|---|
| سلسلة مترجمة | 1: ن | سلسلة مترجمة. |
يحتوي عنصر LocalizedString على السمات التالية:
| السمة | مطلوب | وصف |
|---|---|---|
| نوع العنصر | نعم | القيم المحتملة: ClaimsProvider أو ClaimType أو ErrorMessage أو GetLocalizedStringsTransformationClaimType أو FormatLocalizedStringTransformationClaimType أو Predicate أو PredicateValidation أو UxElement. |
| معرف العنصر | نعم | إذا تم تعيين ElementType إلى ClaimTypeأو Predicateأو PredicateValidation، يحتوي هذا العنصر على مرجع لنوع مطالبة تم تعريفه بالفعل في قسم ClaimsSchema. |
| معرف السلسلة | نعم | إذا تم تعيين ElementType إلى ClaimType، يحتوي هذا العنصر على مرجع إلى سمة من نوع المطالبة. القيم الممكنة:DisplayName,AdminHelpTextأوPatternHelpText.
DisplayName يتم استخدام القيمة لتعيين اسم عرض المطالبة.
AdminHelpText يتم استخدام القيمة لتعيين اسم نص التعليمات لمستخدم المطالبة.
PatternHelpText يتم استخدام القيمة لتعيين نص تعليمات نمط المطالبة. إذا تم تعيين ElementType إلى UxElement، يحتوي هذا العنصر على مرجع إلى سمة لعنصر واجهة مستخدم. إذا تم تعيين ElementType إلى ErrorMessage، يحدد هذا العنصر معرف رسالة خطأ. راجع معرفات سلسلة الترجمة للحصول على قائمة كاملة بالمعرفات UxElement . |
نوع العنصر
مرجع ElementType إلى نوع مطالبة أو تحويل مطالبة أو عنصر واجهة مستخدم في النهج المراد ترجمته.
| عنصر للترجمة | نوع العنصر | معرف العنصر | معرف السلسلة |
|---|---|---|---|
| اسم موفر الهوية | ClaimsProvider |
معرف عنصر ClaimsExchange | |
| سمات نوع المطالبة | ClaimType |
اسم نوع المطالبة | سمة المطالبة المراد ترجمتها. القيم المحتملة: AdminHelpTextو DisplayNamePatternHelpTextو و.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>
التحقق من التقييم
يتم استخدام قيمة 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_sendver_but_editver_but_resendver_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>
...
الخطوات التالية
انظر إلى المقالات التالية للحصول على أمثلة الترجمة: