.NET - التعريب دون ألم. (N) gettext + poedit



عند إنشاء مشروع جديد ، كان علي استخدام * .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
جنو / غيتكست المعلومات

Source: https://habr.com/ru/post/ar432786/


All Articles