From 1ff6ce01e040ae6a1d15ba8850a48b7f1028b79f Mon Sep 17 00:00:00 2001 From: Khalid Abu Shawarib Date: Fri, 9 Aug 2024 23:39:41 +0300 Subject: [PATCH] Another iteration of the website --- source/localization/i18n.md | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/source/localization/i18n.md b/source/localization/i18n.md index dbf10ba..fdc5e18 100644 --- a/source/localization/i18n.md +++ b/source/localization/i18n.md @@ -4,7 +4,7 @@ لا تزال هذه الصفحة تحت الإنشاء. زر الموقع بشكل دوريّ من أجل رؤية آخر التعديلات والتحديثات. -العولمة في مجال البرمجيات هو العملية التي يتم خلالها تحويل وتطوير البرامج والمكتبات لتتناسب مع متطلبات أفراد من دول وثقافات مختلفة حول العالم. العولمة تنصب البنية التحيتية اللازمة لعملية التوطين. +العولمة في مجال البرمجيات هو العملية التي يتم خلالها تحويل وتطوير البرامج والمكتبات لتتناسب مع متطلبات أفراد من دول وثقافات مختلفة حول العالم. العولمة تنصب البنية التحتية اللازمة لعملية التوطين. يوجد العديد من الأدوات المختصة بالعولمة، نسرد هنا أهمها وما يجب تذكره من موطّني البرمجيات. @@ -18,7 +18,7 @@ يحوي يونيكود على رموز من عدة لغات، بما فيها لغات تكتب من اليمين لليسار واليسار لليمين. وحتى في اللغات المكتوبة من اليمين لليسار تجد الأرقام تكتب من اليسار لليمين. قد يسبب هذا الاشتباه عند الخلط بين عدة نصوص باتجاهات مختلفة، ولذلك انشئت خوارزمية الاتجاه المزدوج في يونيكود. نسرد في هذا القسم أهم خصائصها. #### الاتجاه الأساسي -لكل عنصر يحوي نصّا اتجاه أساسي للنص يحدد الاتجاه المبدئي عند التصيير دون وجود أي علامات أو رموز خاصة داخل النص. هذا الأتجاه لا يعتمد على محتويات النص وعادة يورث من البرنامج أو صفحة الويب أو قد يصرح به من المطور. تكمن أهمية هذا الاتجاه في تقليل استعمال أحرف الاتجاه الخاصة وتحديد اتجاه إفتراضي. +لكل عنصر يحوي نصّا اتجاه أساسي للنص يحدد الاتجاه المبدئي عند التصيير دون وجود أي علامات أو رموز خاصة داخل النص. هذا الأتجاه لا يعتمد على محتويات النص وعادة يورث من البرنامج أو صفحة الويب أو قد يُصرّح به من المطور. تكمن أهمية هذا الاتجاه في تقليل استعمال أحرف الاتجاه الخاصة وتحديد اتجاه إفتراضي. #### اتجاه الأحرف أغلب أحرف اللغة المكتوبة تعتبر قوية الاتجاه. الحروف اللاتينية على سبيل المثال اتجاهها القوي هو من اليسار لليمين، بينما الحروف العربية والعبرية اتجاهها القوي هو من اليمين لليسار. هذا يساعد الخوارزمية في تحديد الاتجاه عند كتابة النصوص. @@ -26,14 +26,18 @@ هناك أيضا أحرف بأتجاه محايد، مثل المسافات وعلامات الترقيم. الأحرف المحايدة الواقعة بين أحرف باتجاه قوي تتبع اتجاهها. المسافة الواقعة بين أحرف عربية على سبيل المثال ستتبع نفس الاتجاه «من اليمين لليسار»، ومثلها علامات الترقيم. إذا وقعت الأحرف المحايدة بين حرفين باتّجاهين قوين مختلفين فسيطغى أحدهما. في حال غياب الأحرف الخاصة، فأن الاتجاه الذي يطغى في مثل هذه الحالة هو الاتجاه الأساسي للنص. #### حروف تنسيق الاتجاه -من حروف تنسيق الاتجاه الشائعة: علامة اليسار لليمين، وعلامة اليمين لليسار، وعلامة الحرف العربي. +هناك حالات تتطلب تحديد الإتجاه بشكل صريح، مثل استعمال علامات الترقيم بعد جملة عرضية من لغة مختلفة. لدى يونيكود عدة أحرف لتعديل سلوك الخوارزمية لتناسب هذه الحالات الخاصة. لاحظ أن هذه الحروف غير مرئية ولا يمكن رؤيتها إلا باستخدام أدوات تحرير نصوص تعرض الأحرف الخفية. + +من حروف تنسيق الاتجاه الشائعة: علامة اليسار لليمين «Right to Left Mark»، وعلامة اليمين لليسار «Arabic Letter Mark»، وعلامة الحرف العربي «Left to Right Mark». ## ترجمة النصوص -توجد عدة برمجيات لمعالجة النصوص المترجمة وأهمها هو [gettext](https://www.gnu.org/software/gettext/). لدى هذه الأدوات عدة ميزات وهنا نذكر أهمها للموطنين. +تترجم أغلب النصوص بتغيير السلاسل النصية داخل البرنامج تبعا للغة أو المحلية الموجودة وقت تشفيل البرنامج. توجد عدة برمجيات يمكن أن يستعملها المطور لمعالجة النصوص المترجمة وأهمها هو [gettext](https://www.gnu.org/software/gettext/). + +لدى هذه الأدوات عدة ميزات وهنا نسرد أهمها بالنسبة للموطنين وأكثرها شيوعاً. ### صيغ المعدود -يحصل أن يكون هناك أرقام ومعدودات في الجمل المترجمة، وهذا يتطلب تغيير أجزاء من الترجمة ليتناسب العدد مع المعدود. لذلك أضيف في كل برامج العولمة صيغ للجمع تغطي جميع الحالات الممكنة للمعدود والتي يختار البرنامج أحدها تقائيًا حسب العدد. +يحصل أن يكون هناك أرقام ومعدودات في الجمل المترجمة، وهذا يتطلب تغيير أجزاء من الترجمة ليتناسب العدد مع المعدود. لذلك أضيف في كل برامج العولمة صيغ للجمع تغطي جميع الحالات الممكنة للمعدود والذي حسبه يختار البرنامج أحدها تقائيًا من اللغة المستخدمة. الصيغة الحالية للغة العربية تحوي على ستِّ صيغ، هنا ذكرها مع التوضيح وأمثلة عليها: - ٠ (صفر): لا كتاب. @@ -43,23 +47,26 @@ - ١١-١٩ (الخانتين الأولتين بين ١١ و ١٩): ١١ كتابًا. - ما تبقى (الخانتين الأولتين تكونان ٢٠ فأكثر، أو ٠٠ أو ٠١ أو ٠٢ عند زيادة العدد على مئة) ٢٠ كتاب، ١٠١ كتاب، ١٠٠٢ كتاب، إلخ... -يلاحظ ما يلي فيما يتعلق بصيغ الجمع: +يجب ملاحظة ما يلي فيما يتعلق بصيغ الجمع: - بسبب تحديات تقنية في كتابة الترجمة الفصيحة ولتسهيل قراءة الأرقام، فأن الصيفة السادسة تقرأ على أنها من اليمين لليسار، عكس بقية الصيغ. مثل: واحد وألف كتاب. -- عند انتهاء المعدود بتاء مربوطة، فان الصيغة الخامسة والسادسة تكونان متطابقتين وبدون علامة تنوين. +- عند انتهاء المعدود بتاء مربوطة، فان الصيغة الخامسة والسادسة تكونان متطابقتين. ### التعويض بالمتغيرات في النصوص المترجمة -يتوجب في بعض الأحيان استخدام نصوص متغيّرة عوضًا عن نصوص جامدة لعرض بعض المعلومات، مثل: التعويض برسالة خطأ، أو بعدد الملفات التي نسخها المستخدم. العنصران الأكثر شيوعا في التعويض هما التعويض بِنَصّ أو برقم. تختلف صيغة التعويض من لغة لأخرى، لذى يجب معرفة لغة البرمجة وتطبيق قواعدها. ويجب أيضا أن تعي الفرق بين استعمالات رموز التعويض، فبعضها يستخدم لأغراض محددة مثل تنسيق التاريخ. +يتوجب في بعض الأحيان استخدام نصوص متغيّرة عوضًا عن نصوص جامدة لعرض بعض المعلومات، مثل: التعويض برسالة خطأ، أو بعدد الملفات التي نسخها المستخدم. العنصران الأكثر شيوعا في التعويض هما التعويض بِنَصّ أو برقم. تختلف صيغة التعويض من لغة برمجة لأخرى، لذى يجب معرفة صيغة التعويض الخاصة باللغة المستعملة وتطبيق قواعدها. ويجب أيضا أن تعي الفروقات بين الدوال المستخدمة للتعويض، فبعضها يستخدم لأغراض محددة مثل تنسيق التاريخ وبصيغة مختلفة. +[هنا](https://docs.python.org/3/tutorial/inputoutput.html#the-string-format-method) مثال على صيغة تعويض المتغيرات في لغة Python، و[هنا](https://docs.python.org/3/library/datetime.html#strftime-and-strptime-format-codes) مثال على دالة تقرأ الوقت بصيغة محددة. -### التعويض بالمتغيرات الإعتيادية +#### التعويض بالمتغيرات الإعتيادية -تستخدم علامات محددة داخل النصوص لحديد أنواع أو أماكن المتغيرات في النص الناتج. النصوص التالية أمثلة على تعويض سلسلة نصية ثم تعويض رقم صحيح، فلاحظ الرمز المستعمل لكل مثال. +تستخدم علامات محددة داخل النصوص لتحديد أنواع أو أماكن المتغيرات في النص الناتج. النصوص التالية أمثلة على تعويض سلسلة نصية ثم تعويض رقم صحيح، فلاحظ الرمز المستعمل لكل مثال. ‪"%s wants to access your pictures." -‪"Deleted %d files" +"حذف %d ملف" + +قد يجب في بعض الأحيان إعادة صياغة الجملة وتحريك العلامات لتكون الجملة أكثر فصاحة. لاحظ أنه قد تقع مشكلة عند تغيير ترتيب رموز التعويض في النصوص إذا كان هناك متغيرين من نفس النوع، لذا بعض لغات البرمجة تتيح ذكر اسم المتغير المتسخدم دون ذكر نوعه، وبعضها تضيف أرقامًا لكل نوع للتمييز بينهم. في ما يلي مثال على ذلك في لغة C: -قد يجب في بعض الأحيان إعادة صياغة الجملة وتحريك العلامات لتكون الجملة أكثر فصاحة. لاحظ أنه قد تقع مشكلة عند تغيير ترتيب علامات التعويض في النصوص إذا كان هناك متغيرين يستعملان نفس العلامة، لذا بعض الصيغ واللغات تستعمل اسم المتغير دون ذكر نوعه، وبعضها تضيف أرقامًا لكل نوع للتمييز بينهم. في ما يلي مثال على ذلك: +‪"Application %1$s has encountered an error: %2$s" -‪"Application %1$s has encountered an error: %2$s" \ No newline at end of file +لاحظ هنا أن «1$» تحدد أي من المتغيرات المسرودة التي سوف يتم التعويض بها بتحديد رقمها حسب ترتيبها من المتغيرات المسرودة من مطور التطبيق. \ No newline at end of file