.\" -*- coding: UTF-8 -*- '\" t .\"*************************************************************************** .\" Copyright 2018-2024,2025 Thomas E. Dickey * .\" Copyright 1998-2016,2017 Free Software Foundation, Inc. * .\" * .\" Permission is hereby granted, free of charge, to any person obtaining a * .\" copy of this software and associated documentation files (the * .\" "Software"), to deal in the Software without restriction, including * .\" without limitation the rights to use, copy, modify, merge, publish, * .\" distribute, distribute with modifications, sublicense, and/or sell * .\" copies of the Software, and to permit persons to whom the Software is * .\" furnished to do so, subject to the following conditions: * .\" * .\" The above copyright notice and this permission notice shall be included * .\" in all copies or substantial portions of the Software. * .\" * .\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * .\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * .\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * .\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * .\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * .\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * .\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. * .\" * .\" Except as contained in this notice, the name(s) of the above copyright * .\" holders shall not be used in advertising or otherwise to promote the * .\" sale, use or other dealings in this Software without prior written * .\" authorization. * .\"*************************************************************************** .\" .\" $Id: term.5,v 1.85 2025/08/16 19:11:47 tom Exp $ .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH term 5 "16 أغسطس 2025" "ncurses 6.6" "تنسيقات الملفات" .ie \n(.g \{\ .ds `` \(lq .ds '' \(rq .ds ' \(aq .ds ^ \(ha .\} .el \{\ .ie t .ds `` `` .el .ds `` "" .ie t .ds '' '' .el .ds '' "" .ds ' ' .ds ^ ^ .\} .ie n .ds CW R .el \{ .ie \n(.g .ds CW CR .el .ds CW CW .\} . .de bP .ie n .IP \(bu 4 .el .IP \(bu 2 .. . .SH الاسم .\"SH SYNOPSIS term \- وصف طرفية \fI\%term\%info\fP مُجمّع .SH الوصف يُجمّع \fB\%tic\fP(1) وصف نوع طرفية \fI\%term\%info\fP، ويقرؤه \fB\%setupterm\fP(3X). قد يُخزّن الوصف المُجمّع في ملف أو في قاعدة بيانات تضم، من المحتمل، العديد من هذه الأوصاف. علاوة على ذلك، قد يكون الوصف المُجمّع بأحد تنسيقين: أحدهما مشابه لما يستخدمه System\ V، وتنسيق أحدث وقابل للتوسع يستخدمه \fI\%ncurses\fP حصريًا. .SS "موقع التخزين" تُوضع أوصاف \fI\%term\%info\fP المُجمّعة تحت الدليل \fI\%/usr/share/terminfo\fP. يُحدّد أحد الإعدادين عند بناء مكتبات \fI\%ncurses\fP. .TP 5 \fBشجرة أدلة\fP يُستخدم نظام ذو مستويين لتجنب البحث الخطي في دليل نظام يونكس ضخم: \fI\%/usr/share/terminfo/\fPc\fI/\fPname حيث \fIname\fP هو اسم الطرفية، و \fIc\fP هو الحرف الأول من \fIname\fP. بالتالي، يوجد الوصف المُجمّع لنوع الطرفية \*(``act4\*('' في الملف \fI\%/usr/share/terminfo/a/act4\fP. تُنفّذ المرادفات لنفس الطرفية عبر روابط متعددة لنفس الملف المُجمّع. .TP 5 \fBقاعدة بيانات مجزأة\fP باستخدام واجهة برمجة تطبيقات قاعدة بيانات بيركلي، يُخزّن نوعان من السجلات: بيانات \fI\%term\%info\fP بنفس التنسيق المخزن في شجرة الأدلة مع استخدام اسم النوع الرئيس للطرفية كمفتاح، وسجلات تحتوي فقط على أسماء مستعارة تشير إلى الاسم الرئيس. .IP إذا بُنيت لكتابة قواعد بيانات مجزأة، سيظل بإمكان \fI\%ncurses\fP قراءة قواعد بيانات \fI\%term\%info\fP المنظمة كشجرة أدلة، لكن لا يمكنها كتابة مدخلات في شجرة الأدلة. يمكنها كتابة (أو إعادة كتابة) مدخلات في قاعدة البيانات المجزأة. .IP تميز \fI\%ncurses\fP بين الحالتين في متغيري البيئة \fI\%TERMINFO\fP و \fI\%TERMINFO_DIRS\fP بافتراض وجود شجرة أدلة للمدخلات التي تقابل دليلاً موجودًا، وقاعدة بيانات مجزأة في الحالات الأخرى. .SS "تنسيق التخزين الموروث" اختير التنسيق ليكون متماثلاً على جميع الأجهزة. يُفترض أن عرض البايت ثماني بتات على الأقل، لكن لا توضع افتراضات حول ترتيب البتات أو امتداد الإشارة. .PP ينقسم الملف إلى ستة أجزاء: .RS 5 .IP (أ) 4 \fIالترويسة\fP، .IP (ب) \fIأسماء الطرفية\fP، .IP (ج) \fIالأعلام المنطقية\fP، .IP (د) \fIالأرقام\fP، .IP (هـ) \fIالسلاسل النصية\fP، و .IP (و) \fIجدول السلاسل النصية\fP. .RE .PP يبدأ قسم \fIالترويسة\fP الملف. يحتوي هذا القسم على ستة أعداد صحيحة قصيرة بالتنسيق الموضح أدناه. هذه الأعداد هي .RS 5 .TP 5 (1) \fIالرقم السحري\fP (ثُماني 0432)؛ .TP 5 (2) الحجم، بالبايتات، لقسم \fIأسماء الطرفية\fP؛ .TP 5 (3) عدد البايتات في قسم \fIالأعلام المنطقية\fP؛ .TP 5 (4) عدد الأعداد الصحيحة القصيرة في قسم \fIالأرقام\fP؛ .TP 5 (5) عدد الإزاحات (أعداد صحيحة قصيرة) في قسم \fIالسلاسل النصية\fP؛ .TP 5 (6) الحجم، بالبايتات، لـ \fIجدول السلاسل النصية\fP. .RE .PP تكون الإمكانات في أقسام \fIالأعلام المنطقية\fP، و \fIالأرقام\fP، و \fIالسلاسل النصية\fP بنفس الترتيب الموجود في ملف الترويسة \fIterm.h\fP. .PP الأعداد الصحيحة القصيرة مُشار إليها، في النطاق من \-32768 إلى 32767، وتُخزّن بتنسيق طرفية الصغير (little\-endian). .PP الأرقام في وصف الطرفية، سواء كانت مدخلات في جدول \fIالأرقام\fP أو \fIالسلاسل النصية\fP، هي أعداد صحيحة موجبة. تُعامل الأعلام المنطقية كأعداد صحيحة موجبة بحجم بايت واحد. في كل حالة، تمثل تلك الأعداد الصحيحة الموجبة إمكانية طرفية. يستخدم مُجمّع الطرفية \fI\%tic\fP أعدادًا صحيحة سالبة لمعالجة الحالات التي لا تتوفر فيها الإمكانية: .bP إذا كانت الإمكانية غائبة عن هذه الطرفية، يخزن \fI\%tic\fP القيمة \-1 في الجدول المقابل. .IP تُمثّل القيمة الصحيحة \-1 بواسطة بايتين هما 0377، 0377. .br تُمثّل القيم المنطقية الغائبة بالبايت 0 (خطأ). .bP إذا أُلغيت إمكانية من هذه الطرفية، يخزن \fI\%tic\fP القيمة \-2 في الجدول المقابل. .IP تُمثّل القيمة الصحيحة \-2 بواسطة بايتين هما 0377، 0376. .br تُمثّل القيمة المنطقية \-2 بالبايت 0376. .br .bP القيم السالبة الأخرى غير قانونية. .PP يأتي قسم \fIأسماء الطرفية\fP بعد \fIالترويسة\fP. ويحتوي على السطر الأول من وصف \fI\%term\%info\fP، الذي يسرد الأسماء المختلفة للطرفية، مفصولة بحرف \*(``|\*(``. ينتهي قسم \fIأسماء الطرفية\fP بحرف \s-1ASCII NUL\s+1. .PP يحتوي قسم \fIالأعلام المنطقية\fP على بايت واحد لكل علم. تكون الإمكانات المنطقية إما 1 أو 0 (صواب أو خطأ) وفقًا لما إذا كانت الطرفية تدعم الإمكانية المعطاة أم لا. .PP بين قسم \fIالأعلام المنطقية\fP وقسم \fIالأرقام\fP، سيُدرج بايت صفري، إذا لزم الأمر، لضمان بدء قسم \fIالأرقام\fP عند بايت زوجي. هذا من بقايا بنية PDP\-11 الموجهة بالكلمة، والتي صُممت أصلاً لتجنب المصائد الناجمة عن عنونة كلمة عند حدود بايت فردية. تُحاذى جميع الأعداد الصحيحة القصيرة عند حدود كلمة قصيرة. .PP قسم \fIالأرقام\fP مشابه لقسم \fIالأعلام المنطقية\fP. تشغل كل إمكانية بايتين، وتُخزّن كعدد صحيح قصير بتنسيق طرفية الصغير. .PP قسم \fIالسلاسل النصية\fP مشابه أيضًا. تُخزّن كل إمكانية كعدد صحيح قصير. تكون قيمة الإمكانية فهرسًا في \fIجدول السلاسل النصية\fP. .PP \fIجدول السلاسل النصية\fP هو القسم الأخير. ويحتوي على جميع قيم إمكانات السلاسل النصية المشار إليها في قسم \fIالسلاسل النصية\fP. تنتهي كل سلسلة نصية بـ null. تُخزّن الأحرف الخاصة بتدوين \*^X أو \ec في شكلها المُفسّر، وليس في تمثيل الطباعة. تُخزّن معلومات الحشو \fB$<\fP\fInn\fP\fB>\fP ومعلومات المعامل \fB%x\fP سليمة في شكلها غير المُفسّر. .SS "تنسيق التخزين الممتد" يصف القسم السابق التنسيق الثنائي التقليدي لـ \fI\%term\%info\fP. مع بعض التغييرات الطفيفة في الإزاحات (انظر القابلية للنقل)، يُستخدم نفس التنسيق الثنائي في جميع أنظمة يونكس الحديثة. يستخدم كل نظام مجموعة قياسية من الإمكانات المنطقية أو الرقمية أو السلاسل. .PP تدعم مكتبات وتطبيقات \fI\%ncurses\fP التنسيق الثنائي الممتد لـ \fI\%term\%info\fP، مما يسمح للمستخدمين بتعريف إمكانات تُحمّل عند التشغيل. هذا الامتداد متاح بفضل حقيقة أن التطبيقات الأخرى تتوقف عن قراءة بيانات \fI\%term\%info\fP عندما تصل إلى نهاية الحجم المعطى في الترويسة. تتحقق \fI\%ncurses\fP من الحجم، وإذا تجاوز الحجم المحدد في الترويسة، تواصل التحليل وفقًا لمخططها الخاص. .PP أولاً، تقرأ الترويسة الممتدة (5 أعداد صحيحة قصيرة): .RS 5 .TP 5 (1) عدد الإمكانات المنطقية الممتدة .TP 5 (2) عدد الإمكانات الرقمية الممتدة .TP 5 (3) عدد إمكانات السلاسل النصية الممتدة .TP 5 (4) عدد العناصر في جدول السلاسل النصية الممتد .TP 5 (5) حجم جدول السلاسل النصية الممتد بالبايتات .RE .PP تتضمن قيم العدد والحجم لجدول السلاسل النصية الممتد \fIأسماء\fP الإمكانات الممتدة بالإضافة إلى \fIقيم\fP الإمكانات الممتدة. .PP باستخدام الأعداد والأحجام، تخصص \fI\%ncurses\fP مصفوفات وتقرأ البيانات للإمكانات الممتدة بنفس الترتيب كمعلومات الترويسة. .PP يحتوي جدول السلاسل النصية الممتد على قيم لإمكانات السلاسل النصية. بعد نهاية هذه القيم، يحتوي على الأسماء لكل من الإمكانات الممتدة بالترتيب: المنطقية، والرقمية، والسلسلة النصية. .PP عن طريق تخزين أوصاف الطرفية بهذه الطريقة، تتمكن \fI\%ncurses\fP من توفير قاعدة بيانات مفيدة للتطبيقات الموروثة، بالإضافة إلى توفير بيانات للتطبيقات التي تتطلب معلومات عن نوع الطرفية أكثر مما كان متوقعًا من X/Open Curses. انظر \fB\%user_caps\fP(5) للحصول على نظرة عامة على الطريقة التي تستخدم بها \fI\%ncurses\fP هذه المعلومات الممتدة. .PP يمكن للتطبيقات التي تتعامل مع بيانات الطرفية استخدام التعريفات الموصوفة في \fB\%term_variables\fP(3X) التي تربط أسماء الإمكانات الطويلة بأعضاء هيكل \fI\%TERMTYPE\fP. . .SS "تنسيق الأرقام الممتد" في بعض الأحيان، لا تكون الأعداد الصحيحة المُشار إليها بحجم 16 بت كبيرة بما يكفي. قدمت \fI\%ncurses\fP 6.1 تنسيقًا جديدًا عن طريق إجراء بعض التغييرات على التنسيق الموروث: .bP رقم سحري مختلف (ثُماني 01036) .bP تغيير نوع مصفوفة \fIالأرقام\fP من أعداد صحيحة مُشار إليها بحجم 16 بت إلى أعداد صحيحة مُشار إليها بحجم 32 بت. .PP للحفاظ على التوافق، تقدم المكتبة نفس هياكل البيانات للمستخدمين المباشرين لهيكل \fI\%TERMTYPE\fP كما في التنسيقات السابقة. ومع ذلك، لا يمكن لذلك تزويد المستدعِين بالأرقام الممتدة. تستخدم المكتبة هيكل بيانات مماثلاً ولكنه مخفي \fI\%TERMTYPE2\fP لتوفير البيانات لدوال \fI\%term\%info\fP. .SH الملفات .TP \fI/usr/share/terminfo\fP قاعدة بيانات أوصاف الطرفية المجمّعة .SH "القابلية للنقل" .SS setupterm لاحظ أنه من الممكن لـ \fBsetupterm\fP أن يتوقع مجموعة مختلفة من الإمكانات عما هو موجود فعليًا في الملف. فإما أن قاعدة البيانات حُدّثت منذ إعادة تجميع \fBsetupterm\fP (مما يؤدي إلى مدخلات إضافية غير معروفة في الملف) أو أن البرنامج أعيد تجميعه حديثًا عما كانت عليه قاعدة البيانات (مما يؤدي إلى مدخلات مفقودة). يجب أن يكون الروتين \fBsetupterm\fP مستعدًا لكلا الاحتمالين \- وهذا هو سبب تضمين الأرقام والأحجام. أيضًا، يجب دائمًا إضافة الإمكانات الجديدة في نهاية قوائم الإمكانات المنطقية والرقمية وسلاسل النصوص. .SS "التنسيق الثنائي" لا تحدد X/Open Curses تنسيقًا لقاعدة بيانات \fI\%term\%info\fP. استخدم System\ V \fIcurses\fP شجرة أدلة من الملفات الثنائية، ملف واحد لكل وصف طرفية. .PP على الرغم من الاستخدام المتسق لأرقام طرفية الصغير والتنسيق الواصف لنفسه، فليس من الحكمة الاعتماد على قابلية نقل مدخلات \fI\%term\%info\fP الثنائية بين إصدارات يونكس التجارية. المشكلة هي وجود ثلاثة إصدارات على الأقل من \fI\%term\%info\fP (تحت HP\-UX، و AIX، و OSF/1) كل منها انحرف عن System\ V \fI\%term\%info\fP بعد SVr1، وأضاف إمكانات ممتدة إلى جدول السلاسل التي (في التنسيق الثنائي) تتعارض مع امتدادات System\ V و X/Open Curses. انظر \fB\%terminfo\fP(5) لمناقشة تفصيلية لقضايا توافق مصدر \fI\%term\%info\fP. .PP هذا التنفيذ متوافق مبدئيًا مع التنسيق الثنائي لـ \fI\%term\%info\fP المستخدم من قبل Solaris \fIcurses\fP، باستثناء بعض التفاصيل قليلة الاستخدام حيث وُجد أن الأخير لا يطابق X/Open Curses. يمكن مطابقة التنسيق المستخدم من قبل إصدارات يونكس الأخرى عبر بناء \fI\%ncurses\fP بخيارات ضبط مختلفة. .SS "الرموز السحرية" الرقم السحري في ملف \fI\%term\%info\fP ثنائي هو أول 16 بت (بايتين). بالإضافة إلى جعله أكثر موثوقية للمكتبة للتحقق من أن الملف هو \fI\%term\%info\fP، تستخدمه أدوات مساعدة مثل \fIfile\fP(1) أيضًا لمعرفة تنسيق الملف. عرّف System\ V أكثر من رقم سحري واحد، منها 0433 و 0435 كتفريغ للشاشة (انظر \fB\%scr_dump\fP(5)). يستخدم هذا التنفيذ 01036 كامتداد لهذا التسلسل، ولكن ببايت عالي الرتبة مختلف لتجنب الارتباك. .SS "هيكل \fITERMTYPE\fP" يُوفّر الوصول المباشر إلى هيكل \fI\%TERMTYPE\fP للتطبيقات الموروثة. يجب أن تستخدم التطبيقات القابلة للنقل \fB\%tigetflag\fP(3X) والدوال ذات الصلة لقراءة إمكانات الطرفية. .SS "أسماء طرفية بحالات أحرف مختلطة" يستخدم عدد صغير من أوصاف الطرفية أحرفًا كبيرة في أسمائها. إذا كان نظام الملفات الأساسي يتجاهل الفرق بين الأحرف الكبيرة والصغيرة، فإن \fI\%ncurses\fP تمثل \*(``الحرف الأول\*(`` من اسم الطرفية المستخدم كمستوى متوسط في شجرة أدلة بصيغة ست عشرية (من حرفين). .SS الحدود تخزن \fI\%ncurses\fP أوصاف الطرفية المُجمّعة في ثلاثة تنسيقات ذات صلة، موصوفة في الأقسام الفرعية .bP \fBتنسيق التخزين الموروث\fP، و .bP \fBتنسيق التخزين الممتد\fP، و .bP \fBتنسيق الأرقام الممتد\fP. .PP يختلف تنسيق التخزين الموروث وتنسيق الأرقام الممتد بأنواع الإمكانات الرقمية التي يمكن تخزينها (على سبيل المثال، أعداد صحيحة 16 بت مقابل 32 بت). يضيف تنسيق التخزين الممتد الذي قدمته \fI\%ncurses\fP 5.0 بيانات إلى أي من هذين التنسيقين. .PP تطبق بعض القيود: .bP لا يمكن أن تتجاوز إجمالي المدخلات المُجمّعة 4096 بايت في التنسيق الموروث. .bP لا يمكن أن تتجاوز إجمالي المدخلات المُجمّعة 32768 بايت في التنسيق الممتد. .bP لا يمكن أن يتجاوز حقل الاسم 128 بايت. .PP تقتصر المدخلات المُجمّعة على 32768 بايت لأن الإزاحات في \fIجدول السلاسل النصية\fP تستخدم أعدادًا صحيحة بحجم بايتين. كان من الممكن للتنسيق الموروث دعم مدخلات بحجم 32768 بايت، لكنه كان مقتصرًا على 4096 بايت لصفحة ذاكرة افتراضية. .SH أمثلة إليك وصف \fI\%term\%info\fP لـ Lear\-Siegler ADM\-3، وهي طرفية مبكرة شائعة وإن كانت بسيطة للغاية. .PP .EX .nf adm3a|lsi adm3a, am, cols#80, lines#24, bel=\*^G, clear=\e032$<1>, cr=\*^M, cub1=\*^H, cud1=\*^J, cuf1=\*^L, cup=\eE=%p1%{32}%+%c%p2%{32}%+%c, cuu1=\*^K, home=\*^\*^, ind=\*^J, .fi .EE .PP يتبع ذلك تفريغ ست عشري لوصف طرفيتها المُجمّع (بالتنسيق الموروث). .PP .if t .in +4n .TS Lp-1. \f[\*(CW]0000 1a 01 10 00 02 00 03 00 82 00 31 00 61 64 6d 33 ........ ..1.adm3\fR \f[\*(CW]0010 61 7c 6c 73 69 20 61 64 6d 33 61 00 00 01 50 00 a|lsi ad m3a...P.\fR \f[\*(CW]0020 ff ff 18 00 ff ff 00 00 02 00 ff ff ff ff 04 00 ........ ........\fR \f[\*(CW]0030 ff ff ff ff ff ff ff ff 0a 00 25 00 27 00 ff ff ........ ..%.\*'...\fR \f[\*(CW]0040 29 00 ff ff ff ff 2b 00 ff ff 2d 00 ff ff ff ff ).....+. ..\-.....\fR \f[\*(CW]0050 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........\fR \f[\*(CW]0060 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........\fR \f[\*(CW]0070 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........\fR \f[\*(CW]0080 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........\fR \f[\*(CW]0090 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........\fR \f[\*(CW]00a0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........\fR \f[\*(CW]00b0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........\fR \f[\*(CW]00c0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........\fR \f[\*(CW]00d0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........\fR \f[\*(CW]00e0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........\fR \f[\*(CW]00f0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........\fR \f[\*(CW]0100 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........\fR \f[\*(CW]0110 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........\fR \f[\*(CW]0120 ff ff ff ff ff ff 2f 00 07 00 0d 00 1a 24 3c 31 ....../. .....$<1\fR \f[\*(CW]0130 3e 00 1b 3d 25 70 31 25 7b 33 32 7d 25 2b 25 63 >..=%p1% {32}%+%c\fR \f[\*(CW]0140 25 70 32 25 7b 33 32 7d 25 2b 25 63 00 0a 00 1e %p2%{32} %+%c....\fR \f[\*(CW]0150 00 08 00 0c 00 0b 00 0a 00 ........ .\fR .TE .in .SH المؤلفون Thomas E. Dickey .br تنسيق \fI\%term\%info\fP الممتد لـ \fI\%ncurses\fP 5.0 .br دعم قاعدة البيانات المجزأة لـ \fI\%ncurses\fP 5.6 .br دعم الأرقام الممتدة لـ \fI\%ncurses\fP 6.1 .sp Eric S. Raymond .br وثّق تنسيق \fI\%term\%info\fP الموروث (المستخدم من قبل \fI\%pcurses\fP). .SH "انظر أيضًا" \fB\%curses\fP(3X), \fB\%curs_terminfo\fP(3X), \fB\%terminfo\fP(5), \fB\%user_caps\fP(5) .PP .SH ترجمة تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي . .PP هذه الترجمة هي وثيقة مجانية؛ راجع .UR https://www.gnu.org/licenses/gpl-3.0.html رخصة جنو العامة الإصدار 3 .UE أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات. .PP إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: .MT kde-l10n-ar@kde.org .ME .