ترجمة الأدوات
هذا دليل مخصص لأداة ترجمة الأدوات. لا تتردد في ترجمته!
الغرض
ينقص العديد من الأدوات الموجودة في معامل مؤسسة ويكيميديا ترجمة واجهتها وهذا يعني أنها متاحة فقط في لغة واحدة والتي تكون الإنجليزية في أغلب الأحيان. تستعين حتى الأدوات التي تساند عدة لغات في واجهتها بأساليب ثقيلة لإضافة لغات وترجمات جديدة. تقدم أداة ترجمة الأدوات (ToolTranslate) سبيل مركزي سهل الاستخدام للمجتمع كي يقدم الترجمات للأدوات. يجب أن توفر الأدوات الدعم لهذه الآلية أي أنها يجب أن «تعدل» مرة واحدة كي تستخدم نص تفاعلي وليس ثابت في واجهتها. منشور المدونة الأصلي.
الترجمة
- اذهب إلى الأداة
- لو طلب منك ذلك، امنح الأداة تصريحا
- اختر أداة كي تترجمها من القائمة المنسدلة في الجزء الأعلى أو القائمة الموجودة في الصفحة الرئيسية
- اختر أو أضف اللغة التي ترغب في الترجمة إليها
- انقر مرتين على «الخانة» التي يجب أن تذهب ترجمتها إليها أو الترجمة التي ترغب في تحسينها
- أدخل النص الذي ترغب في إضافته. يمكنك استخدام كود إتش تي إم إل (لا تستخدم جافاسكريبت!). قد يوجد اقتراح للترجمة من أداة أخرى يحتوي على «اسم رئيسي» والذي يمكنك استخدامه كأساس للنص الذي سوف تكتبه.
- اضغط على «OK». انتهى الأمر! بغض النظر عن حدوث توقف في متصفح الإنترنت، سوف تظهر ترجمتك في الأداة المعنية في المرة التالية التي تحملها فيها.
الموارد
- مقطع مرئي توضيحي خاص بواجهة ترجمة الأدوات (يستخدم على الأداة ذاتها!)
- أداة المقاطع المرئية البسيطة وكذلك مصدر إتش تي إم إل/جافاسكريبت
- الويكي تهوى المعالم (إصدار ويكي بيانات) هو مثال أعقد قليلا
- مستودع غيت
تقنية
تخزن الترجمات في قاعدة بيانات على المعامل. تحفظ المراجعات السابقة للترجمات وتعزى الترجمات إلى المحرر المعني. (توجد أداة «أحدث التغييرات» متاحة).
كي نيسر الوصول إلى بيانات الترجمة تخزن كافة الترجمات في ملفات JSON والتي تحدث بعد كل تغيير. مثال «demotool1»:
- toolinfo.json هو ملف JSON يحتوي على معلومات تتعلق بالأداة
- en.json هو ملف JSON يحتوي على الترجمة الإنجليزية لتلك الأداة. اللغات الأخرى تستعين بذات الطريقة مستخدمة كود اللغة المعنية
يوجد أيضا ملف JSON يحتوي على كافة اللغات الصالحة للاستخدام.
قاعدة البيانات
تخزن البيانات المصدرية في قاعدة بيانات s53069__tooltranslate_p
على قاعدة بيانات الأدوات (tools-db) الموجودة في مصنع الأدوات (mysql --defaults-file=~/replica.my.cnf -h tools-db s53069__tooltranslate_p
). يمكن الحصول على البيانات من هناك أيضا لو تطلب الأمر ذلك.
الجداول التالية متاحة:
- tool
- id | name | label | url | owner
- translation
- id | tool_id | language | key | json | user | timestamp | current
كيفية الاستخدام: إتش تي إم إل/جافاسكريبت
- راجع الكود التوضيحي
- يوجد على كود جافاسكريبت الخاص بترجمة الأدوات قائمة بالخيارات التي يمكنك استخدامها
- لو كنت تريد سلسلة نصوص مترجمة (مستخدما هذا العنصر كمثال
tt
)،tt.t(key)
أوtt.t(key,{lang:language_code})
سوف تحضره لك - في إتش تي إم إل، أضف خاصية البيانات
tt
إلى أي وسم، مثال<span tt='key'></span>
. - سوف يحل تلقائيا محل سلاسل النص المترجم التي تحتوي على نصوص "https://bitbucket.org/magnusmanske/tooltranslate/src/d93e2e706a76be21ee02affb0bc1cdece8f087ae/public_html/demos/demotool1.html?at=master&fileviewer=file-view-default" إلى "$9" خواص البيانات من "tt1" إلى "tt9" على التوالي. الغرض من هذا الأمر هو تيسير تغيير لغة الواجهة دون تقسيم النص إلى عدة أقسام. لن تتغير الترجمة لو كانت خواص البيانات غير موجودة. مع جافاسكريبت يستخدم
tt.t(key,{params:['value for https://bitbucket.org/magnusmanske/tooltranslate/src/d93e2e706a76be21ee02affb0bc1cdece8f087ae/public_html/demos/demotool1.html?at=master&fileviewer=file-view-default','value for https://bitbucket.org/magnusmanske/tooltranslate/src/d93e2e706a76be21ee02affb0bc1cdece8f087ae/public_html/tt.js?at=master&fileviewer=file-view-default']})
.
كيفية الاستخدام: بي إتش بي
توجد فئة بي إتش بي يمكنك إضافتها على المعامل، كما يلي:
require_once ( "/data/project/tooltranslate/public_html/tt.php") ;
يمكنك بعد ذلك تمثيل الفئة:
$tt = new ToolTranslation ( array ( 'tool' => 'your_tool_key' , 'language' => 'de' , 'fallback' => 'en' , 'highlight_missing' => true ) ) ; // كل شيء عدا 'tool' هو أمر اختياري
الاستخدام مباشرة
يوجد سبيلين إثنين لاستخدام ترجمة الواجهة مستخدما بي إتش بي. الأولى هي الحصول على السلسلة النصية مترجمة مباشرة
print "<p>" . $tt->t('translation_key') . "</p>" ;
إلا أن هذا الأمر يحتوي على عيب وهو أن الترجمة لا يمكن تغييرها دون إعادة تحميل الصفحة.
الاستخدام عبر جافاسكريبت
يمكنك بدلا من ذلك إضافة «وسوم ترجمة» إتش تي إم إل (طالع ما سبق) ومن ثم تضيف الفئة استدعاء جافاسكريبت المطلوب. الميزة الأخرى هي أن فئة بي إتش بي لا تحتاج لتحميل أية ملفات ترجمة لو لم تستخدم مطلقا الترجمة «المباشرة» المذكورة فيما سبق. كي تستخدم ترجمات إتش تي إم إل/جافاسكريبت، يجب أن يحتوي قسم <head> من كود إتش تي إم إل المستخدم في صفحتك على
<script src="https://tools-static.wmflabs.org/tooltranslate/tt.js">
(سوف تحتاج أيضا jQuery). حينما تولد الصفحة اكتب ما يلي بدلا مما سبق:
print "<p tt='translation_key'></p>" ;
سوف تحتاج أن تكتب في مكان ما في المخرجات (ربما في النهاية) كود الاستدعاء:
print $tt->getJS() ;
سوف يتولى ذلك بدء جافاسكريبت المطلوب وبالتالي استنساخ المتغيرات المستخدمة في حالة بي إتش بي (لغة الرجوع وخلافه). لو كنت ترغب في وجود «ترجمة منسدلة» أضف عنصر منفذ طي إلى كود إتش تي إم إل الذي تستخدمه
<div id='tooltranslate_wrapper'></div>
ومن ثم ضع فاتح jQuery بصفته المتغير كي تحصل على استدعاء وسيلة جافاسكريبت:
print $tt->getJS('#tooltranslate_wrapper') ;
طالع هذه الأداة كي تشاهد مثال عملي.