
عند إنشاء مشروع جديد ، كان علي استخدام * .resx لـ WinForms أو I2Localization for Unity أو حلول أخرى لتوطين التطبيقات. جميع هذه الحلول متشابهة في أنه يجب عليك الخروج بمفتاح التعريب وإدخاله في الكود وفي القاموس. في البداية ، كل شيء على ما يرام ، ولكن مع مرور الوقت ، تبدأ هذه العملية في إزعاج. ومع ذلك ، عند النظر إلى المفتاح الموجود في الكود ، ليس من الواضح دائمًا ما يدور حوله هذا الأمر.
حول الموقف عندما تحتاج إلى إضافة التعريب إلى مشروع كبير حيث لم يكن موجودًا على الإطلاق ، لن أقول مدى صعوبة ذلك.
لا أعرف السبب ، لكن اتضح أن هناك حلًا جاهزًا مثل gnu / gettext موجودًا لفترة طويلة. عند سؤال أصدقائهم وزملائهم (أولئك الذين يعملون مع .NET) ، لم يسمع معظمهم بهذا. لذلك ، قررت المشاركة مع هذه الأداة المناسبة.
المبدأ بسيط. تكتب رمزًا يحتوي على سطور باللغة الإنجليزية ، وتقوم بتشغيل أداة تفحص المصدر وتوفر لك القدرة على الترجمة. لا توجد مفاتيح يجب اختراعها. النص باللغة الإنجليزية هو المفتاح.
لنبدأ
1) قم بتثبيت حزمة NGettext عبر Nu-get:
م> تثبيت حزمة NGettext
NGettext هو تطبيق GNU / Gettext متعدد المنصات لـ .NET.
2) إضافة ملف إضافي إلى مشروعك الذي يبسط بناء الجملة قليلا:
https://github.com/neris/NGettext/blob/master/doc/examples/T.csنضيف أيضًا دليلًا للمشروع حيث سيتم تخزين الترجمات:
MyProj \ Loc \ ru-RU \ LC_Messages
في حالتي ، تظهر هذه الصورة:

3) أضف المسارات إلى ملف T.cs:
static T() { var localesDir = Path.Combine(Directory.GetCurrentDirectory(), "Loc"); _Catalog = new Catalog("Test", localesDir, new CultureInfo("ru-RU")); }
المبسطة. على سبيل المثال ، الروسية فقط. (من الممكن قراءة القواميس من التجمع نفسه)
4) نكتب كودنا باستخدام الترجمة. بدلاً من "النص" نكتب T._ ("النص")
namespace TestCode { static class Program { public static void Main(string[] args) { Console.WriteLine(T._("Hello, World!")); Console.WriteLine(T._("Cat")); Console.ReadKey(); } } }
5) الآن نحن بحاجة إلى ترجمة نصنا بأكمله. تحميل
PoEdit . قم بإنشاء ملف ترجمة:
ملف -> إنشاء -> مجلد LC_MESSAGES -> Test.po

حدد المجلد الذي توجد به مصادرنا. سوف برنامجهم مسح:

من الضروري أيضًا تحديد الكلمة الأساسية التي سيقوم poEdit بالبحث عن الترجمة:

أضف الترجمة التي نحتاجها وحفظها.

إضافة ملفات الترجمة إلى المشروع. اجعلهم نسخة دائما:
(من الممكن تضمينها في التجمع نفسه)

تم نطلق:

الإعداد جاهز. الباقي بسيط. اكتب الكود - قم بتحرير الترجمة
يمكنك أيضًا العثور على مكتبات جاهزة لترجمة الواجهات:
→
WPF→
معلومات إضافية حول استخدام NGettext→
جنو / غيتكست المعلومات