Content translation/Machine Translation/MT Clients/ar

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



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



واجهة برمجة التطبيقات للترجمة
تأخذ واجهة برمجة تطبيقات الترجمة الآلية اللغة المصدر واللغة الهدف ومحتوى المصدر وتخرج محتوى مترجم. API must be publicly documented including the error codes.
 * لو كانت واجهة برمجة التطبيقات غير عمومية، يمكنها قبول رموز التصديق، التي تكون في الغالب مفتاح.
 * The output format can be JSON for convenience.
 * API shoud accept POST.
 * API should not demand any user identifiable information such as user name. CXServer does not provide it to MT Client.
 * API should be capable of accepting a reasonable number of requests per minute.
 * API should accept a reasonable amount of content per request.
 * It is recommended to have a dashboard to analyse the usage of API including requests per day/week/month and Number of characters translated per day/week/month



إرشادات الأداء
Content translation is still a beta feature, available only for opt-in logged in users. So the current usage pattern may not be the right assessment for future. Moreover, when we expand the machine translation to more languages, there will be more users and requests. Depending on our current usage, some baselines are given below. Note that this is never going to be the final assessment. APIs must be designed to accept more than this.


 * Atleast 10,000 requests per day
 * Atleast 10 million characters per day
 * Atleast 5000 characters per request



صيغة المدخلات
The content to translate from CX is HTML formatted. Translating HTML while preserving markup is challenging, but some MT Engines are capable of that (example: Yandex). Apertium does not handle HTML markup. Depending on the capability, CX can send plain text version or HTML of the content.



جودة الترجمة
We evaluate the quality of MT by requesting feedback from Wikipedia contributors from the language in context. CX uses MT as an intial translation template and encourage translators to improve it. Because of that unless the quality is quite bad as per the feedback we get, we can use it.



تصميم وحدة برمجية عميلة جديدة للترجمة الآلية
The best way to learn this is to refer an existing client module like Yandex or Apertium. The client modules are present in cxserver's lib/mt folder. Let us call our client as BabelFish MT Client. Create a file named BabelFish.js in lib/mt folder. If your BabelFish service is not capable of translating HTML by retaining all markup in appropriate position in translation, instead of, you will have to write   method in the above code. Refer Apertium.js for such an example. Yandex.js is an example for MT client that is capable of handling both html and text content.

You need to add an entry in lib/mt/index.js for your new client.

To map a language pair to use this client, create a config file in config folder. You may refer exiting configuration files for examples. Then enable this MT engine in the cxserver config.yaml. Here also follow the existing entries for examples.

Restart the cxserver and test your client. You may want to read some unit tests existing for Apertium to write your own tests.



عملاء الترجمة الآلية
The following are machine translation clients that support Content Translation in different languages:
 *  (اللغات المدعومة)
 * OpusMT (اللغات المدعومة)
 *  (اللغات المدعومة)
 *  (اللغات المدعومة)
 *  (اللغات المدعومة)
 *  (اللغات المدعومة)
 * Elia (كان يعرف من قبل باسم Matxin) (اللغات المدعومة)
 * NLLB-200 (كان يعرف من قبل باسم Flores) (اللغات المدعومة)