نظرة عامة حول التعميم و التعريب

عند تقييد إتاحة المنتج الخاص بك إلى لغة واحدة فقط، تقيد قاعدة العملاء المحتملين لكسر من سكان العالم ال 6.5 مليار . إذا كنت ترغب في تصل تطبيقاتك إلى جمهو العالم، ترجمة المنتج بتكلفته الفعالة واحدة من أفضل الطرق و أكثرها إقتصاداً للوصول إلى مزيد من العملاء.

تقدم هذه النظرة العامة العولمة و الترجمة في Windows Presentation Foundation (WPF). العولمة هى تصميم وتطوير التطبيقات التى تعمل في مواقع متعددة. على سبيل المثال، تعتمد العولمة واجهات المستخدم المترجمة والبيانات الإقليمية للمستخدمين في ثقافات مختلفة. WPF يوفر مميزات التصميم المترجمة، بما في ذلك تخطيط تلقائية، و تجميعات الأقمار الصناعية، و السمات المترجمة، و التعليق.

الترجمة عبارة ترجمة موارد التطبيق إلى إصدارات مترجمة لثقافات معينة يعتمدها التطبيق. عندما يتم ترجمة في WPF، استخدم واجهات برمجة التطبيقات في System.Windows.Markup.Localizerمساحة الاسم. طاقة واجهات برمجة التطبيقات هذه أداة سطر الأوامر LocBaml أداة نموذج . لمعلومات حول كيفية إلى بناء واستخدام LocBaml، راجع كيفية القيام بما يلي: ترجمة تطبيق.

يشتمل هذا الموضوع على الأقسام التالية.

  • أفضل الممارسات للتعميم و الترجمة في WPF
  • ترجمة تطبيق WPF
  • أمثلة تعريب WPF

أفضل الممارسات للتعميم و الترجمة في WPF

يمكنك إجراء معظم وظائف التعميم و التعريب ضمن WPF باتباع وتصميم اجهة المستخدم و تلميحات التعريب المتعلقة و التي يوفرها هذا القطاع.

أفضل الممارسات لتصميم واجهة المستخدم WPF

عند تصميم WPF المستندة إلى واجهة المستخدم ، خذ بعين الاعتبار تطبيق هذه الممارسات الفضلى :

  • قم بكتابة واجهة المستخدم الخاص بك في XAML; تجنب إنشاء واجهة المستخدم في التعليمات البرمجية. عندما تقوم بإنشاء واجهة المستخدمالخاص بك باستخدام XAML ، يعرض من خلال الترجمة المضمنة API.

  • تجنب استخدام المواضع المطلقة والأحجام الثابتة لتخطيط المحتوى; بدلاً من ذلك، استخدم التحجيم التلقائي أو النسبي.

    • استخدم SizeToContent; واحتفظ بمجموعة العروض والارتفاعات Auto.

    • تجنب استخدام Canvas لتخطيط واجهة المستخدم.

    • استخدم Grid و ميزة مشاركة الحجم .

  • وفر مساحة إضافية في الهوامش لأن النص المترجم غالباً ما يتطلب المزيد من المساحة. تسمح المساحة الزائدة للأحرف المعلقة المحتملة.

  • مكن TextWrapping على TextBlock لتجنب القطع.

  • قم بتعيين سمة xml:lang. توضح هذه السمة ثقافة عنصر معين والعناصر التابعة الخاص به. تغير قيمة هذه الخاصية سلوك العديد من المميزات في WPF . على سبيل المثال، تغير سلوك الفاصلة، التدقيق الإملائي ، استبدال الرقم، تشكيل العربية ولغات أخرى و الخطوط البديلة. لمزيد من المعلومات حول تعيين التعميم لـ WPF، راجع xml:lang المعالجة في XAML.

  • إنشاء خط مركب مخصص للحصول على التحكم بشكل أفضل على الخطوط المستخدمة في لغات مختلفة. بشكل افتراضي، WPF يستخدم الخط GlobalUserInterface.composite في دليل الخطوط/الإطارات الخاص بك.

  • عند إنشاء تطبيقات التنقل التي قد تكون مترجمة في البيانات موروثة تقدم النص في تنسيق من اليمين إلى اليسار، عين ظاهرياً FlowDirection لكل صفحة لتأكيد أن الصفحة لا ترث FlowDirection من NavigationWindow.

  • عند إنشاء تطبيقات التنقل المستقلة التي يتم استضافتها خارج مستعرض، قم بتعيين StartupUri لتطبيقك الأولي إلى NavigationWindow بدلاً من إلى الصفحة (على سبيل المثال، <Application StartupUri="NavigationWindow.xaml">). يمكنك هذا التصميم من التغيير في FlowDirection للإطار و عمود التنقل لمزيد من المعلومات وللحصول على مثال راجع نموذج تعميم الصفحة الرئيسية.

أفضل الممارسات لـترجمة WPF

عندما تقوم بترمجة WPF التطبيقات المسندة، خذ بعين الاعتبار تنفيذ هذه الممارسات الفضلى:

  • استخدم تعليقات التعريب لتوفير سياقات إضافية للمترجمين.

  • استخدم سمات التعريب للتحكم فى التعريب بدلاً من بشكل انتقائي إهمال خصائصUid على العناصر. لمزيد من المعلومات، راجع ترجمة السمات وتعليقات.

  • استخدم msbuild /t:updateuid و /t:checkuid للإضافة و التحقق من خصائص Uid في XAML الخاص بك. استخدم خصائصUid لتتبع التغييرات بين التطوير و التعريب. تساعدك خصائصUid على ترجمة تغييرات التطوير الجديد . إذا أضفت يدوياً خصائص Uid إلى واجهة المستخدم ، المهمة تكون عادةً شاقة و أقل دقة.

    • لا تقم بتحرير أو تغيير خصائص Uid عقب بدء التعريب.

    • لا تستخدم خصائص Uid مكررة (تذكر هذا التلميح عند استخدام أمر النسخ واللصق) .

    • عين موقعUltimateResourceFallback في AssemblyInfo.* لتحديد اللغة المناسبة من أجل الرجوع (على سبيل المثال، [assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]).

      إذا قررت تضمين لغة المصدر في التجميع الرئيسي بحذف <UICulture> العلامة في ملف المشروع، قم بتعيين الموقع UltimateResourceFallback كالتجميع الرئيسي بدلاً من القمر الصناعي (على سبيل المثال، [assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.MainAssembly)]).

ترجمة تطبيق WPF

عند ترجمة تطبيق WPF ، لديك خيارات متعددة. على سبيل المثال، يمكنك ربط الموارد القابلة للترجمة في التطبيق الخاص بك إلى ملف XML خزن النص القابل للترجمة في جداول resx، أو لديك مترجم استخدم ملفات Extensible Application Markup Language (XAML) . يصف هذا القسم سير عمل الترجمة الذى يستخدم XAML ثنائي (BAML) ، والذي يوفر عدة مزايا:

  • يمكن الترجمة بعد الإنشاء.

  • يمكنك التحديث إلى إصدار أحدث من BAML بمترجمين من إصدار أقدم من BAML بحيث يمكن التعريب في نفس الوقت التي تقوم بتطويرها.

  • يمكنك التحقق من صحة عناصر المصدر و الدلالات في وقت الترجمة لأن BAML هو النموذج المترجم من XAML.

عملية إنشاء التعريب

عند تطوير التطبيق WPF ،عملية الإنشاء للتعريب هي كما يلي:

  • ينشئ المطور و يعمم تطبيقWPF. في ملف المشروع يعيّن المطور <UICulture>en-US</UICulture> بحيث عند ترجمة التطبيق، يتم إنشاء لغة- التجميع الرئيسي. يحتوي هذا التجميع على قمر صناعي. ملف resources.dll الذي يحتوي على كافة الموارد القابلة للترجمة. بشكل اختياري، يمكنك الاحتفاظ بلغة المصدر في التجميع الرئيسي لأن التعريب الخاص بنا واجهات API يعتمد الاستخراج من التجميع الرئيسي.

  • عند ترجمة الملف إلى البناء XAML يتم تحويلها إلى BAML. ملفاتMyDialog.exe الثقافية المحايدة و الثقافية التابعة (بالإنكليزية) MyDialog.resources.dll يتم إصدارها للعملاء المتحدثين بالإنجليزية .

سير عمل التعريب

تبدأ عملية التعريب بعد أن يتم إنشاء الملف MyDialog.resources.dll الغير مترجم. عناصر وخصائص واجهة المستخدم في XAML الأصلية يتم استخراجها من BAML في أزوج أساسية القيمة باستخدام واجهات API ضمن System.Windows.Markup.Localizer. المترجمين يقوموا باستخدام أزواج القيمة الأساسية لترجمة التطبيق. يمكنك إنشاء resource.dll جديدة من القيم الجديدة بعد اكتمال عملية التعريب.

مفاتيح أزواج القيمة الأساسية هي قيم x:Uid التي تم وضعها من قبل المطور في XAMLالأصلي . تمكن قيم x:Uid هذه API لتعقب و دمج التغييرات التي تحدث بين المطور و المترجم أثناء الترجمة. على سبيل المثال، إذا غير المطور واجهة المستخدم بعد بدء المترجم الترجمة, يمكنك دمج تغيير التطوير مع العمل المكتمل الترجمة بالفعل بحيث يتم فقدان العمل الترجمة الأدنى.

توضح الرسومات التالية سير عمل الترجمة نموذجي و الذي يستند إلى BAML. يفترض هذا الرسم التخطيطي أن المطور يكتب التطبيق بالإنجليزية. ينشئ المطور و يعمم تطبيقWPF. في ملف المشروع يعيّن المطور <UICulture>en-US</UICulture> بحيث أثناء الإنشاء، يتم إصدار لغة التجميع الرئيسي مع القمر الصناعي. resources.dll التي تحتوي على كافة الموارد القابلة للترجمة بشكل بديل،يمكن الاحتفاظ باللغة المصدر في التجميع الرئيسي لأن الAPI لتعريب WPF يدعم الاستخراج من التجميع الرئيسي. بعد عملية الإنشاء يتم تصنيف XAML إلى BAML. يتم شحن MyDialog.exe.resources.dll بثقافة المحايدة إلى العملاء الذين يتحدثون الإنكليزية.

سير عمل التعريبسير العمل غير المُعرب

أمثلة تعريب WPF

يحتوي هذا القسم على أمثلة التطبيقات المترجمة لمساعدتك في فهم كيفية إنشاء تعريب WPF التطبيقات.

مثال تشغيل مربع حوار

تظهر الرسومات التالية مخرجات تشغيلعينة من المربعات الحوارية.

الإنجليزية:

مربع الحوار"تشغيل"

الألمانية:

مربع الحوار "تشغيل بالألمانية"

تصميم تشغيل عمومي للمربع الحوارى

تشغيل ينتج عن هذا المثال صواب باستخدام WPF و XAML. مربع الحوار هذا يعادل مربع الحوار تشغيل المتوفرمن Microsoft Windows قائمة Start.

بعض التركيز لإجراء مربعات الحوار العمومية هى:

Automatic Layout

في Window1. xaml:

<Window SizeToContent="WidthAndHeight">

خاصية الإطار السابقة تقوم تلقائياً بتغيير حجم الإطار استناداً إلى حجم المحتوى. هذه الخاصية تمنع الإطار من قطع المحتوى التي يزيد حجمها بعد التعريب; كما أنه يزيل المساحة التي لا حاجة لها عندما ينخفض المحتوى في الحجم بعد الترجمة.

<Grid x:Uid="Grid_1">

خصائصUid مطلوبة من أجلWPF التعريبواجهات API لتعمل بشكل صحيح.

يتم استخدامها قبل WPFالتعريب واجهات APIإلى تعقب التغييرات بين التطوير وترجمة واجهة المستخدم (UI). Uidخصائص تتيح لك إلى دمج الإصدار أحدث منواجهة المستخدممع أقدم ترجمةواجهة المستخدم. تضيف خاصية Uid عن طريق تشغيل msbuild /t:updateuid RunDialog.csproj في command shell. هذا هو الأسلوب المستحسن لإضافة خصائص Uid لأن إضافتها يدوياً عادةً مهدراً للوقت و أقل دقة. يمكنك التحقق من خصائص تلك Uid تم تعيينها بشكل صحيح عن طريق تشغيل msbuild /t:checkuid RunDialog.csproj.

واجهة المستخدم يتم بنائها باستخدام عنصرالتحكمGrid و هو عنصر تحكم مفيد للاستفادة من التخطيط التلقائي في WPF. لاحظ تقسيم "مربع الحوار" إلى ثلاثة صفوف و خمسة أعمدة. ليس لإحدى تعريفات الأعمدة والصفوف حجم ثابت; ومن ثم عناصر واجهة المستخدم المتوضعة في كل خلية يمكنها ملائمة الزيادة و النقصان في الحجم أثناء الترجمة.

<Grid.ColumnDefinitions>
  <ColumnDefinition x:Uid="ColumnDefinition_1" />
  <ColumnDefinition x:Uid="ColumnDefinition_2" />

أول عمودين حيث فتح: التسمية و ComboBox يتم وضعهما باستخدام 10 بالمائة من واجهة المستخدم العرض الإجمالي .

  <ColumnDefinition x:Uid="ColumnDefinition_3" SharedSizeGroup="Buttons" />
  <ColumnDefinition x:Uid="ColumnDefinition_4" SharedSizeGroup="Buttons" />
  <ColumnDefinition x:Uid="ColumnDefinition_5" SharedSizeGroup="Buttons" />
</Grid.ColumnDefinitions>

لاحظ أن المثال يستخدم ميزة مشاركة تغيير الحجم Grid. الثلاثة أعمدة الأخيرة تستفيد من هذا عن طريق نفسها في نفس SharedSizeGroup. كما يمكن أن أ تتوقع من اسم الخاصية ، يسمح هذا للأعمدة مشاركة نفس الحجم. لذلك عندما يحدث ترجمة “ استعراض … ” إلى السلسلة الأطول “ Durchsuchen… ” ، تزداد كافة الأزرار في العرض بدلاً من زر “ موافق ” صغير والزر “ Durchsuchen… ” disproportionately كبيرة.

Xml:lang

Xml:lang="en-US"

لاحظ xml:lang المعالجة في XAML توضع في العنصر الجذرى من واجهة المستخدم. تصف هذه الحاصية البيانات الموروثة من عنصر معيّن و توابعه. هذه القيمة مستخدمة من قبل العديد من المميزات في WPF و يجب أن يتم تغييرها بشكل مناسب أثناء الترجمة. تغيير هذه القيمة أى قاموس لغة يستخدم الواصلة و يقوم بالتأكد من تهجئة الكلمات . يؤثر أيضاً على عرض الأرقام وتحديد كيفية اختيار نظام الخطوط البديلة الخط الذي يستخدم. وأخيراً، تؤثرالخاصية على طريقة عرض الأرقام و كيفية تشكيل النصوص المكتوبة بالعربية و باللغات الأخرى. تكون القيمة الافتراضية هي 'لا نهائية.'

Building a Satellite Resource Assembly

في .csproj:

<UICulture>en-US</UICulture>

لاحظ إضافة قيمة UICulture . عندما يتم تعيينها إلى قيمة CultureInfo صالحة مثل en-US، إنشاء المشروع يؤدى إلى إنشاء تجميع القمر صناعي بكافة الموارد القابلة للترجمة فيه.

<Resource Include="RunIcon.JPG">

<Localizable>False</Localizable>

</Resource>

RunIcon.JPGلا تحتاج إلى أن تكون مترجمة لأنه يجب أن يظهر نفسه لكافة البيانات الموروثة. Localizableهو التعيين إلىfalseحيث يظل في اللغة الحيادية الرئيسي تجميع بدلاً من تجميع القمر الصناعي. القيمة الافتراضية لكافة الموارد الغير قابلة للتوائم Localizable يتم تعيينها كtrue.

لترجمة مربع الحوار "تشغيل"

Parse

بعد إنشاء التطبيق ، الخطوة الأولى في ترجمه هى توزيع الموارد القابلة للترجمة خارج تجميع القمر الصناعي. لأغراض هذا الموضوع استخدم الأداة LocBaml النموذجية التي يمكن العثور عليها في نموذج أداة LocBaml. لاحظ أن LocBaml هو فقط نموذج أداة تقصد مساعدتك على البدء في إنشاء أداة الترجمة التي تناسب في عملية الترجمة الخاصة بك . باستخدام LocBaml ، شغل التالي للتحليل: LocBaml /parse RunDialog.resources.dll /out: لإنشاء ملفات “ RunDialog.resources.dll.CSV ”.

Localize

استخدم محرر CSV المفضلة لديك الذى يعتمد Unicode لتحرير هذا الملف. تصفية كافة الإدخالات بواسطة فئة التعريب “ لا شئ ”. يجب رؤية المدخلات التالية:

مفتاح المورد

فئة التعريب

Value

Button_1:System.Windows.Controls.Button.$Content

الزر

OK (موافق)

Button_2:System.Windows.Controls.Button.$Content

الزر

Cancel

Button_3:System.Windows.Controls.Button.$Content

الزر

استعراض

ComboBox_1:System.Windows.Controls.ComboBox.$Content

مربع تحرير و سرد

TextBlock_1:System.Windows.Controls.TextBlock.$Content

Text

اكتب اسم البرنامج، أو المجلد، أو المستند، أو مصدر إنترنت و سوف يقوم Windows بفتحه لك.

TextBlock_2:صواب.Windows.Controls.TextBlock.$Content

Text

فتح

Window_1:System.Windows.Window.Title

Title

Run

ترجمة التطبيق إلى الألمانية تتطلب الترجمات التالية:

مفتاح المورد

فئة التعريب

Value

Button_1:System.Windows.Controls.Button.$Content

الزر

OK (موافق)

Button_2:System.Windows.Controls.Button.$Content

الزر

Abbrechen

Button_3:System.Windows.Controls.Button.$Content

الزر

Durchsuchen…

ComboBox_1:System.Windows.Controls.ComboBox.$Content

مربع تحرير و سرد

TextBlock_1:System.Windows.Controls.TextBlock.$Content

Text

غرفة المعيشة Geben Sie Namen eines Programms ، Ordners ، einer oder Dokuments Internetresource.

TextBlock_2:صواب.Windows.Controls.TextBlock.$Content

Text

Öffnen:

Window_1:System.Windows.Window.Title

Title

Run

Generate

تتضمن الخطوة الأخيرة من التعريب إنشاء تجميع القمر الصناعي المترجم حديثاً . يمكن تحقيق هذا بواسطة الأمر LocBaml التالي:

LocBaml.exe /generate RunDialog.resources.dll /trans:RunDialog.resources.dll.CSV /out: . /cul:de-DE

فى الألمانية Windows, إذا كان هذا resources.dll موجود تلقائياً في مجلد de-DE بجانب التجميع الرئيسي، هذا المورد سيتم تحميله تلقائياً بدلاً من تلك الموجودة في المجلد en-US. إذا فعلت ذلك لا hav E الإصدار GErman من Windowsإلى اختبار هذا، التعيين th E cultur E إلى whatEvEr cultur E من Windowsar التي E استخدام (i. E. الإنجليزية-الولايات المتحدة)، و استبدال موارد.dll الأصلي.

Satellite Resource Loading

MyDialog.exe

en-US\MyDialog.resources.dll

de-DE\MyDialog.resources.dll

الرمز

BAML الإنجليزى الأصلي

BAML المترجم

الموارد حيادية الثقافة

موارد أخرى بالإنجليزية

وغيرها من الموارد المترجمة إلى الألمانية

.NET framework تختار تلقائياً الأقمار الصناعية التي ستقوم بالتجميع للتحميل استناداً إلى التطبيق Thread.CurrentThread.CurrentUICulture. تصبح تلقائة لثقافة Windows OSالخاص بك. لذا إذا كنت تستخدم الألمانية Windows ، قم بتحميل de-DE\MyDialog.resources.dll ، فى حالة استخدام الانكليزية Windows قم بتحميل en-US\MyDialog.resources.dll. يمكنك تعيين الموارد الاحتياطية القصوى للتطبيق الخاص بك عن طريق تحديد NeutralResourcesLanguage في AssemblyInfo.* المشروع الخاص بك. على سبيل المثال، إذا قمت بتحديد:

[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]

ثم سيتم استخدام en-US\MyDialog.resources.dll مع Windows الألمانية إذا كانت de-DE\MyDialog.resources.dll أو de\MyDialog.resources.dll كلاهما غير متوفرة.

الصفحة الرئيسية لMicrosoft السعودية

تظهر الرسومات التالية الصفحة الرئيسية بالإنكليزية والعربية . للحصول على نموذج كامل ينتج هذه الرسومات راجع نموذج تعميم الصفحة الرئيسية .

الإنجليزية:

صفحة اللغة الإنجليزية

العربية:

صفحة باللغة العربية

تصميم صفحة رئيسية Microsoft عمومية

هذا الرسم الأولى لموقع ويب Microsoft السعودية يوضح مميزات التعميم المتوفرة للغات من اليمين لليسار. اللغات مثل العربية والعبرية لها ترتيب قراءةمن اليمين - إلى - اليسار لذلك تخطيط واجهة المستخدم غالباً ما يكون تخطيط مختلف تماماً عما سيكون في اللغات اليسار - إلى-اليمين مثل الإنكليزية. يمكن أن تكون الترجمة من لغة من اليسار يمين إلى لغة من اليمين يسار أو العكس بالعكس بالضبط التي تمثل تحديا. WPFفقد تم تصميم إلى إجراء مثل localizations أسهل بكثير.

FlowDirection

Homepage.xaml:

<Page x:Uid="Page_1" x:Class="MicrosoftSaudiArabiaHomepage.Homepage"
    xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"   
    FlowDirection="LeftToRight" 
    Localization.Comments="FlowDirection(This FlowDirection controls the actual content of the homepage)"
    xml:lang="en-US">

لاحظ خاصية FlowDirection على Page. تغيير هذا الخاصية إلى RightToLeft ستغيير FlowDirection الخاص ب Page وعناصره التابعة بحيث ينعكس تخطيط هذا واجهة المستخدم ليصبح ذا اتجاه من اليمين إلى اليسار كما سيتوقع مستخدم عربي. يمكن تجاوز سلوك التوريث بواسطة تحديد FlowDirection صريحة على أي عنصر. تتوفر الخاصيةFlowDirection على أي FrameworkElement أو مستند ذا صلة بالعنصر ولديه قيمة ضمنية من LeftToRight.

لاحظ أن حتى الخلفيات متدرجة الطباشير يتم عكسها بشكل صحيح عند تغير FlowDirectionالأساسى :

FlowDirection = "LeftToRight"

تدفق من اليسار إلى اليمين

FlowDirection = "اليمين لليسار"

تدفق من اليمين إلى اليسار

تجنب استخدام الأبعاد الثابتة لـ لوحات وعناصر التحكم

إلقى نظرة خلال Homepage.xaml ، لاحظ أن بجانب العرض والارتفاع المحددان لل واجهة المستخدم بأكمله في أعلى DockPanel ،ليس هناك أبعاد ثابتة أخرى . تجنب استخدام الأبعاد ثابتة إلى منع اقتصاص نص المترجم قد تكون أطول من نص المصدر. WPFاللوحات و عناصر التحكم سيتم تغيير حجم المستند إلى المحتوى التي تحتوي عليها. تحتوي معظم عناصر التحكم أيضا بالحد الأدنى و الحد الأقصى الأبعاد التي تقوم بتعيينها لمزيد من التحكم (على سبيل المثال: MinWidth =“ 20 ”). مع Grid، يمكنك أيضا التعيين rElativ E عرض و hEights باستخدام‘ *’(i. E. عرض =“ 0.25* ”) أو استخدم الحجم خلية له ميزة مشاركة.

تعليقات الترجمة

هناك العديد من الحالات حيث قد يكون المحتوى مبهم ومن الصعب ترجمته. المطور أو المصمم له القدرة على توفير محتويات إضافية و تعليفات إلى المترجمين خلال تعريب التعليقات . على سبيل المثال التعريب. التعليقات أدناه يوضح استخدام الحرف ‘ | ’.

<TextBlock 
  x:Uid="TextBlock_2" 
  DockPanel.Dock="Right" 
  Foreground="White" 
  Margin="5,0,5,0"
  Localization.Comments="$Content(This character is used as a decorative rule.)">
  |
</TextBlock>

يصبح هذا التعليق المقترن مع محتوى TextBlock_1 الخاص و في حالة أداة LocBaml (راجع كيفية القيام بما يلي: ترجمة تطبيق) ، يمكن مشاهدته في العمود السادس للصف TextBlock_1 في ملف .csv الإخراج:

مفتاح المورد

Category

قابل للقراءة

قابل للتعديل

تعليق

Value

TextBlock_1:System.Windows.Controls.TextBlock.$Content

Text

TRUE

TRUE

ويستخدم هذا الحرف كقاعدة زخرفة.

|

يمكن وضع التعليقات على المحتوى أو خاصية أي عنصر باستخدام بناء الجملة التالي:

<TextBlock 
  x:Uid="TextBlock_1" 
  DockPanel.Dock="Right" 
  Foreground="White" 
  Margin="5,0,5,0"
  Localization.Comments="$Content(This is a comment on the TextBlock's content.)
     Margin(This is a comment on the TextBlock's Margin property.)">
  |
 </TextBlock>

سمات التعريب

يحتاج المطور غالباً أو مدير التعريب التحكم في ما يمكن اامترجمين قراءته وتعديله. على سبيل المثال، قد لا ترغب في localizer إلى ترجمة اسم الشركة أو صياغة قانونية. WPFتوفر السمات التي تمكنك من تعيين قابلية القراءة و modifiability فئة لعنصر المحتوى أو الخصائص التي يمكن أداة الترجمة الخاصة بك استخدم إلى قفل أو إخفائها أو فرز العناصر. لمزيد من المعلومات، راجع Attributes. لأغراض هذا النموذج، إخراج أداة LocBaml فقط قيم هذه السمات. WPFعناصر الجميع قيم الافتراضية لهذه السمات، ولكن الذي يمكن يمنع هذه. على سبيل المثال، يتجاوز المثال التالي سمات التعريب الافتراضية TextBlock_1 ويقوم بتعيين المحتوى لتكون قابلة للقراءة ولكن غير قابلة للتعديل للمستخدمين.

<TextBlock
x:Uid="TextBlock_1"
Localization.Attributes=
"$Content(Readable Unmodifiable)">
  Microsoft Corporation
</TextBlock>

بالإضافة إلى إمكانية قراءة و تعديل السمات ، WPF يوفر قائمة تعداد لفئات واجهة المستخدم الشائعة ( LocalizationCategory) التي يمكن استخدامها لمنح المترجمين المزيد من السياق. فئاتWPF الافتراضية لعناصر تحكم النظام الأساسي يمكن إبطالها في XAML أيضاً:

<TextBlock x:Uid="TextBlock_2">
<TextBlock.ToolTip>
<TextBlock
x:Uid="TextBlock_3"
Localization.Attributes=
"$Content(ToolTip Readable Unmodifiable)">
Microsoft Corporation
</TextBlock>
</TextBlock.ToolTip>
Windows Vista
</TextBlock>

سمات التعريب الافتراضية التى يوفرهاWPF يمكن أيضاً إبطالها خلال التعليمات البرمجية ، بحيث يمكنك تعيين بشكل صحيح القيم الافتراضية الصحيحة لعناصر التحكم المخصصة. فعلى سبيل المثال:

[Localizability(Readability = Readability.Readable, Modifiability=Modifiability.Unmodifiable, LocalizationCategory.None)]

public class CorporateLogo: TextBlock

{

..

.

}

تعين سمات كل مثيل فيXAML سيكون له الأسبقية على القيم المعينة في التعليمات البرمجية على عناصر التحكم المخصصة. للحصول على المزيد من المعلومات حول سمات والتعليقات، راجعترجمة السمات وتعليقات.

رجوع الخط والخطوط المركّبة

إذا قمت بتحديد أحد خطوط التي لا يعتمد نطاق codepoint معطى،WPF سيقوم تلقائياً بالرجوع إلى واحدة بديلة تقوم باستخدام "واجهة المستخدم العمومية" .compositefont الموجود في دليل Windows\Fonts الخاص بك. خطوط مركبة تعمل فقط كـ أي خط آخر ويمكن استخدامها بشكل صريح بتعيين FontFamily لعنصر (على سبيل المثال: FontFamily =“ واجهة مستخدم العمومية ”). يمكنك تحديد تفضيل اللغة الاحتياطية الخاصة بك عن طريق إنشاء اللغة المركّبة الخاصة بك وتحديد أى خط لاستخدام نطاقات محددة codepoint ولغات.

للحصول على مزيد من المعلومات حول الخطوط المركبة راجع FontFamily.

ترجمة صفحة Microsoft الرئيسية

يمكنك اتباع نفس الخطوات كما في مثال "تشغيل الحوار" لتعريب هذا التطبيق. ملف .csv المترجم للغة العربية متوفر لك في نموذج تعميم الصفحة الرئيسية.