كيفية القيام بما يلي: ترجمة تطبيق
يشرح هذا tuإلىrial كيف إلى إنشاء أحد تطبيقات مترجمة باستخدام LocBaml إلى ol.
ملاحظة |
---|
الأداة LocBaml هو تطبيق معداً لإنتاج لا.هو تقديمها كنموذج يستخدم بعض التعريب نقطة الوصول هو ويوضح كيفية قد كتبت أداة ترجمة. يشتمل هذا الموضوع على الأقسام التالية.
|
نظرة عامة
تمنحك هذه المناقشة أسلوباً خطوة بخطوة إلى الترجمة أحد تطبيقات. أولاً، سيحضر تطبيق الخاص بك حيث يمكن استخراج نص الذي سوف يتم ترجمتها. بعد نص هو ترجمتها، فسيتم دمج نص المترجم في نسخ جديدة من تطبيق الأصلي.
المتطلبات
عبر الدورة التدريبية لترتيب هو dهوcussion، يمكنك استخدام Microsoft build engine (MSBuild)، أي هو مترجم التي يتم تشغيلها من سطر الأوامر.
أيضا، سيتم إرشادك إلى استخدم ملف مشروع. للحصول تشغيل إرشادات حول كيف يتم إلى استخدام MSBuildوالملفات للمشروع، راجع إنشاء وتطبيق تطبيقات WPF.
الأمثلة في هذا مناقشة استخدام الإنجليزية-الولايات المتحدة (الإنكليزية-الولايات المتحدة) كالبيانات الموروثة. يتيح لك ذلك إلى العمل من خلال الخطوات التالية أمثلة بدون جاري التثبيت لغة مختلفة.
إنشاء تطبيق نموذج
في هذه الخطوة، سيتم إعداد تطبيق الخاص بك ل ترجمة. في Windows Presentation Foundation (WPF)العينات، عينة HelloApp هو التي تم توفيرها الذي سيتم استخدامه أمثلة تعليمات برمجية في ترتيب هو dهوcussion. إذا كنت تريد إلى استخدام هذا النموذج، قم بتحميل Extensible Application Markup Language (XAML)ملفات من نموذج LocBaml إلى ol.
قم بتطوير تطبيق الخاص بك إلى النقطة الموقع تريد بدء الترجمة.
تعيين لغة التطوير في ملف مشروع حيث ذلك MSBuildينشأ تجميع رئيسي وتجميع الأقمار الصناعية (ملف له. ملحق موارد.dll) لاحتواء محايد موارد اللغة. The ملف مشروع في the HelloApp نموذج هو HelloApp.csproj. في that ملف, you will بحث the development اللغة identified كـ follows:
<UICulture>en-US</UICulture>
إضافة Uids إلى your XAML ملفات. Uids are used إلى احتفظ مقطع صوتي of التغييرات إلى ملفات و إلى identify عناصر that must be translated. إلى إضافة Uids إلى your ملفات, run updateuid تشغيل your ملف مشروع:
msbuild /t:updateuid helloapp.csproj
إلى verify that you have لا مفقود أو duplicate Uids, تشغيل checkuid:
msbuild /t:checkuid helloapp.csproj
بعد تشغيل updateuid, your ملفات should contain Uids. For مثال, في the Pane1.xaml ملف of HelloApp, you should بحث the following:
<StackPanel x:Uid="StackPanel_1">
<TextBlock x:Uid="TextBlock_1">Hello World</TextBlock>
<TextBlock x:Uid="TextBlock_2">Goodbye World</TextBlock>
</StackPanel>
قم بإنشاء محايد اللغة التجميع القمر الصناعي للموارد
بعد أن يتم تكوين التطبيق لإنشاء اللغة الحيادية موارد satellite التجميع، تقوم بإنشاء التطبيق. This generates the main تطبيق assembly, كـ well كـ the محايد اللغة موارد تجميع تابع that هو مطلوب بواسطة LocBaml for ترجمة. إلى بنية the تطبيق:
يحول برمجياً HelloApp إلى إنشاء a مكتبة الارتباط الديناميكي (DLL):
msbuild helloapp.csproj
The newly تاريخ الإنشاء main تطبيق تجميع, HelloApp.exe, هو تاريخ الإنشاء في the following مجلد:
C:\HelloApp\Bin\Debug\
The newly تاريخ الإنشاء محايد اللغة موارد تجميع تابع, HelloApp.موارد.dll, هو تاريخ الإنشاء في the following مجلد:
C:\HelloApp\Bin\Debug\en-US\
بنية the LocBaml أداة
الجميع الملفات الضرورية إلى البنية LocBaml موجودة في WPFالعينات. قم بتنزيل #Cملفات من نموذج أداة LocBaml.
من سطر الأوامر، قم بتشغيل ملف مشروع (locbaml.csproj) إلى بناء إلى ol:
msbuild locbaml.csproj
انتقل إلى الدليل Bin\يطرح المنتج للبحث عن حديثا تاريخ الإنشاء ملف قابل للتنفيذ (locbaml.exe). مثال: C:\LocBaml\Bin\يطرح المنتج\locbaml.exe.
خيارات أنه يمكنك تحديد عند تشغيل LocBaml هي كالتالي:
parseor**-p:**Baml يوزع، موارد، أوDLLملف (s) لإنشاء.csv أو.txt ملف.
generateأو**-g:**يقوم بإنشاء ملف ثنائي مترجم بواسطة استخدام ملف المترجم.
out or -o [filedirectory]: Output file name.
culture or -cul [culture]: Locale of output assemblies.
translationor-trans translation.csv **:**Translated أو ملف المترجم.
asmpath or -asmpath: [filedirectory]: If your XAML code contains custom controls, you must supply the asmpath to the custom control assembly.
**nologo:**قم بعرض لا يوجد شعار أو معلومات حقوق النشر.
**verbose:**الوضع verbose عرض المعلومات.
ملاحظة إذا احتجت إلى قائمة من الخيارات عند تشغيل الأداة، اكتب LocBaml.exeو اضغط على Enter الزر.
استخدم LocBaml إلى تحليل ملف
والآن بعد أن قمت بإنشائها LocBaml إلى ol، تكون جاهزاً إلى استخدامه إلى تحليل HelloApp.موارد.dll إلى يفك الضغط محتوى نص الذي سوف يتم ترجمتها.
قم بنسخ LocBaml.exe إلى المجلد bin\يصحح تطبيق الخاص بك، الموقع تم تاريخ الإنشاء تجميع تطبيق الرئيسي.
إلى تحليل ملف تجميع تابع الأقمار الصناعية و sإلىre الإخراج كملف.csv، استخدم الأمر التالي:
LocBaml.exe /parse en-US/HelloApp.resources.dll /out:Hello.csv
ملاحظة إذا كان ملف إدخال، HelloApp.موارد.dll، هو غير موجودة في نفس الدليل ك LocBaml.exe تحريك واحد الملفات لكي تكون كلا الملفين في نفس الدليل.
عند تشغيل LocBaml إلى ملفات التوزيع، والإخراج يتكون من سبعة حقول بفواصل (ملفات.csv) أو علامات الجدولة (ملفات.txt). يوضح ما يلي.csv الموزعة ملف ل HelloApp.موارد.dll:
HelloApp.g.en-US.موارد:window1.baml,Stack1:النظام.Windows.عناصر التحكم.StackPanel.$محتوى,Ignore,خطأ، خطأ النص # 1؛ النص # 2;
HelloApp.g.en-US.موارد:window1.baml، Text1:النظام.Windows.عناصر التحكم.كتلة نص. محتوى $، بلا شبكة مرحبا صواب, صواب,
HelloApp.g.en-US.موارد:window1.baml، Text2:النظام.Windows.عناصر التحكم.كتلة نص. محتوى $، بلا شبكة وداعا صواب, صواب,
حقول سبعة:
اسم BAML. اسم مورد BAML مع الغير إلى التجميع القمر الصناعي لغة المصدر.
المفتاح مورد. معرّف مورد المترجمة.
فئة . نوع القيمة. انظر ترجمة السمات وتعليقات
إمكانية القراءة. ما إذا كان يمكن قراءة القيمة بواسطة localizer. انظر ترجمة السمات وتعليقات
القابلية للتعديل. ما إذا كان يمكن تاريخ التعديل القيمة بواسطة localizer. انظر ترجمة السمات وتعليقات
تعليقات. وصف إضافي للقيمة للمساعدة في تحديد كيفية قيمة هو المترجمة. انظر ترجمة السمات وتعليقات
القيمة. الالقيمة النصية إلى ترجم إلى الثقافة المطلوبة.
يوضح الجدول التالي كيفية تعيين هذه حقول إلى قيم محددة.csv ملف:
اسم BAML
المفتاح مورد
Category
قابلية القراءة
modifiability
التعليقات
Value
HelloApp.g.en-US.موارد:window1.baml
Stack1:النظام.Windows.عناصر التحكم.StackPanel.$محتوى
التجاهل.
مزيف
مزيف
# النص 1؛ النص # 2
HelloApp.g.en-US.موارد:window1.baml
Text1:النظام.Windows.عناصر التحكم.كتلة نص.$محتوى
لا يوجد
TRUE
TRUE
شبكة الترحيب
HelloApp.g.en-US.موارد:window1.baml
Text2:النظام.Windows.عناصر التحكم.كتلة نص.$محتوى
لا يوجد
TRUE
TRUE
شبكة وداعا
لاحظ أن الجميع قيم الحقل تعليقات لا تحتوي على قيم؛ إذا لم يكن للحقل القيمة، فإنه هو فارغ. ولاحظ أيضا التي العنصر الموجود في الصف أول هو لا يمكن قراءته أو قابل للتعديل، ويحتوي على "تجاهل" كبه قيمة الفئة، كل منها يشير إلى أن القيمة هو لا localizable.
لتسهيل اكتشاف localizable عناصر الموجودة في الملفات الموزعة، خصوصا في ملفات قطر أيمن متوسط الحجم، يمكنك فرز أو عامل تصفية عناصر حسب فئة و قابلية القراءة Modifiability. على سبيل المثال، يمكنك تصفية غير قابل للقراءة و unmodifiable قيم.
ترجمة من Localizable محتوى
استخدم أي ol إلى المتوفرة لديك إلى ترجمة المحتوى التي تم استخراجها. طريقة بضاعة للقيام بهذا يتم كتابة موارد إلى ملف.csv و عرضها في Microsoft Excel، مما يجعل الترجمة تغيير عمود (القيمة) إلى آخر.
استخدم LocBaml إلى إنشاء جديد. موارد.dll ملف
لقد تم ترجمة المحتوى الذي تم تعريفه بواسطة تحليل HelloApp.موارد.dll مع LocBaml ويجب أن يتم دمجها في تطبيق الأصلي. استخدم generateأو -gخيار توليد جديد. الملف موارد.dll.
استخدم بناء الجملة التالي إلى قم بإنشاء ملف HelloApp.موارد.dll جديد. وضع علامة على الثقافة كـ EN-US (/cul:en-الولايات المتحدة).
LocBaml.exe /generate en-US/HelloApp.resources.dll /trans:Hello.csv /out:c:\ /cul:en-US
ملاحظة إذا كان ملف إدخال، Hello.csv، هو غير موجودة في نفس الدليل كقابل للتنفيذ، LocBaml.exe، تحريك واحد الملفات بحيث تكون كلا الملفين في نفس الدليل.
قم باستبدال الملف القديم في الدليل C:\HelloApp\Bin\يصحح\en-US\HelloApp.موارد.dll HelloApp.موارد.dll مع ملفك HelloApp.موارد.dll التي تم إنشاؤها حديثا.
"World الترحيب" و "شبكه وداعا" يجب الآن يمكن ترجمتها في تطبيق الخاص بك.
لترجمة لمختلف الثقافة، استخدم الثقافة اللغة التي التي تقوم بترجمة إلى. يلي مثال يوضح كيفية ترجم إلى الفرنسية-Canadian:
LocBaml.exe /generate en-US/HelloApp.resources.dll /trans:Hellofr-CA.csv /out:c:\ /cul:fr-CA
في نفس التجميع التجميع تطبيق الرئيسي، قم بإنشاء مجلد جديد خاص بالبيانات الموروثة إلى بيت التجميع القمر الصناعي الجديد. ل الفرنسية-Canadian، مجلد سيكون fr المرجع المصدق CA.
قم بنسخ تجميع القمر الصناعي الذي تم إنشاؤه إلى المجلد الجديد.
إلى اختبار تجميع القمر الصناعي الجديد، تحتاج إلى تغيير الثقافة التي يتم تشغيل تطبيق الخاص بك. يمكنك القيام بذلك في إحدى الطريقتين التاليتين:
قم بتغيير الإعدادات الإقليمية نظام تشغيل's ( ابدأ | لوحة التحكم | خيارات اللغة و الإقليمية).
في تطبيق الخاص بك، قم بإضافة التعليمة البرمجية التالية إلى App.xaml.cs:
<Application xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml" x:Class="SDKSample.App" x:Uid="Application_1" StartupUri="Window1.xaml"> </Application>
Imports System.Windows ' Application Imports System.Globalization ' CultureInfo Imports System.Threading ' Thread Namespace SDKSample Partial Public Class App Inherits Application Public Sub New() ' Change culture under which this application runs Dim ci As New CultureInfo("fr-CA") Thread.CurrentThread.CurrentCulture = ci Thread.CurrentThread.CurrentUICulture = ci End Sub End Class End Namespace
using System.Windows; // Application using System.Globalization; // CultureInfo using System.Threading; // Thread namespace SDKSample { public partial class App : Application { public App() { // Change culture under which this application runs CultureInfo ci = new CultureInfo("fr-CA"); Thread.CurrentThread.CurrentCulture = ci; Thread.CurrentThread.CurrentUICulture = ci; } } }
بعض تلميحات حول استخدام LocBaml
يجب أن تكون نسخة إلى الدليل المحلي من LocBaml أو تثبيته في GAC الجميع تجميعات التابعة التي تقوم بتعريف عناصر التحكم المخصصة. Th هو هو ضرورية لأنه يجب أن يكون تعريب واجهة برمجة تطبيقات للوصول إلى تجميعات التابعة عندما يقرأ XAML ثنائي (BAML).
حالة تجميع الرئيسي هو التوقيع، DLL مورد الذي تم إنشاؤه يجب أيضا توقيع من أجل أن يكون محمل.
يجب الإصدار DLL مورد المترجمة إلى المراد تزامنها مع تجميع الرئيسي.
وماذا بعد
يجب أن يكون لديك فهم أساسي حول الآن إلى استخدام LocBaml إلى ol. يجب أن يكون بإمكانك إلى جعل ملف يحتوي على Uids. باستخدام أداة LocBaml، يجب أن تكون قادراً على تحليل ملف لاستخراج محتويات localizable، وبعدها المحتوى هو ترجمتها، فيجب أن تكون قادراً على توليد. ملف موارد.dll الذي يقوم بدمج المحتوى المترجم. لا يتضمن هذا إلى pic كل التفاصيل الممكنة، ولكن لديك دراية بالضرورة الآن إلى استخدام LocBaml للترجمة التطبيقات الخاصة بك.