calibre - en to ar translation catalogue (20 entries)

en: XPath tutorial
ar: دليل XPath التعليمي

en: In this tutorial, you will be given a gentle introduction to `XPath <https://en.wikipedia.org/wiki/XPath>`_, a query language that can be used to select arbitrary parts of `HTML <https://en.wikipedia.org/wiki/HTML>`_ documents in calibre. XPath is a widely used standard, and googling it will yield a ton of information. This tutorial, however, focuses on using XPath for e-book related tasks like finding chapter headings in an unstructured HTML document.
ar: في هذا الدليل التعليمي، ستحصل على مقدمة لطيفة لـ `XPath <https://en.wikipedia.org/wiki/XPath>`_، وهي لغة استعلام يمكن استخدامها لتحديد أجزاء عشوائية من مستندات `HTML <https://en.wikipedia.org/wiki/HTML>`_ في calibre. XPath هو معيار مستخدم على نطاق واسع، والبحث عنه في جوجل سيؤدي إلى الكثير من المعلومات. ومع ذلك، يركز هذا الدليل التعليمي على استخدام XPath للمهام المتعلقة بالكتب الإلكترونية مثل العثور على عناوين الفصول في مستند HTML غير منظم.

en: Contents
ar: المحتويات

en: Selecting by tag name
ar: التحديد باسم الوسم

en: The simplest form of selection is to select tags by name. For example, suppose you want to select all the ``<h2>`` tags in a document. The XPath query for this is simply::
ar: أبسط أشكال التحديد هو تحديد الوسوم بالاسم. على سبيل المثال، لنفترض أنك تريد تحديد جميع وسوم ``<h2>`` في مستند. استعلام XPath لذلك هو ببساطة::

en: The prefix `//` means *search at any level of the document*. Now suppose you want to search for ``<span>`` tags that are inside ``<a>`` tags. That can be achieved with::
ar: البادئة `//` تعني *البحث في أي مستوى من المستند*. الآن لنفترض أنك تريد البحث عن وسوم ``<span>`` الموجودة داخل وسوم ``<a>``. يمكن تحقيق ذلك باستخدام::

en: If you want to search for tags at a particular level in the document, change the prefix::
ar: إذا كنت تريد البحث عن وسوم في مستوى معين في المستند، فغير البادئة::

en: This will match only ``<p>A very short e-book to demonstrate the use of XPath.</p>`` in the :ref:`sample_ebook` but not any of the other ``<p>`` tags. The ``h:`` prefix in the above examples is needed to match XHTML tags. This is because internally, calibre represents all content as XHTML. In XHTML tags have a *namespace*, and ``h:`` is the namespace prefix for HTML tags.
ar: سيطابق هذا فقط ``<p>كتاب إلكتروني قصير جدًا يوضح استخدام XPath.</p>`` في :ref:`sample_ebook` ولكن ليس أي من وسوم ``<p>`` الأخرى. البادئة ``h:`` في الأمثلة أعلاه ضرورية لمطابقة وسوم XHTML. وذلك لأن calibre يمثل جميع المحتوى داخليًا كـ XHTML. في XHTML، تحتوي الوسوم على *مساحة اسم*، و ``h:`` هي بادئة مساحة الاسم لوسوم HTML.

en: There are several new features in this XPath expression. The first is the use of the wildcard ``*``. It means *match any tag*. Now look at the test expression ``name()='h1' or name()='h2'``. :term:`name()` is an example of a *built-in function*. It simply evaluates to the name of the tag. So by using it, we can select tags whose names are either `h1` or `h2`. Note that the :term:`name()` function ignores namespaces so that there is no need for the ``h:`` prefix. XPath has several useful built-in functions. A few more will be introduced in this tutorial.
ar: هناك العديد من الميزات الجديدة في تعبير XPath هذا. الأول هو استخدام الرمز البديل ``*``. يعني *مطابقة أي وسم*. الآن انظر إلى تعبير الاختبار ``name()='h1' or name()='h2'``. :term:`name()` هو مثال على *دالة مدمجة*. إنها ببساطة تقيّم إلى اسم الوسم. لذا باستخدامها، يمكننا تحديد الوسوم التي تكون أسماؤها إما `h1` أو `h2`. لاحظ أن دالة :term:`name()` تتجاهل مساحات الأسماء بحيث لا توجد حاجة لـ البادئة ``h:``. يحتوي XPath على العديد من الدوال المدمجة المفيدة. سيتم تقديم المزيد في هذا الدليل التعليمي.

en: Selecting by attributes
ar: التحديد حسب السمات

en: To select tags based on their attributes, the use of predicates is required::
ar: لتحديد الوسوم بناءً على سماتها، يلزم استخدام المسندات::

en: Here, the ``@`` operator refers to the attributes of the tag. You can use some of the `XPath built-in functions`_ to perform more sophisticated matching on attribute values.
ar: هنا، يشير عامل التشغيل ``@`` إلى سمات الوسم. يمكنك استخدام بعض `وظائف XPath المدمجة`_ لإجراء مطابقة أكثر تعقيدًا على قيم السمات.

en: Selecting by tag content
ar: التحديد حسب محتوى الوسم

en: Using XPath, you can even select tags based on the text they contain. The best way to do this is to use the power of *regular expressions* via the built-in function :term:`re:test()`::
ar: باستخدام XPath، يمكنك حتى تحديد الوسوم بناءً على النص الذي تحتويه. أفضل طريقة للقيام بذلك هي استخدام قوة *التعبيرات العادية* عبر الدالة المدمجة :term:`re:test()`::

en: Here the ``.`` operator refers to the contents of the tag, just as the ``@`` operator referred to its attributes.
ar: هنا يشير عامل التشغيل ``.`` إلى محتويات الوسم، تمامًا كما أشار عامل التشغيل ``@``إلى سماته.

en: Sample e-book
ar: كتاب إلكتروني نموذجي

en: XPath built-in functions
ar: وظائف XPath المدمجة

en: The name of the current tag.
ar: اسم الوسم الحالي.

en: ``contains(s1, s2)`` returns `true` if s1 contains s2.
ar: ``contains(s1, s2)`` تعيد `true` إذا كانت s1 تحتوي على s2.

en: ``re:test(src, pattern, flags)`` returns `true` if the string `src` matches the regular expression `pattern`. A particularly useful flag is ``i``, it makes matching case insensitive. A good primer on the syntax for regular expressions can be found at `regexp syntax <https://docs.python.org/library/re.html>`_
ar: ``re:test(src, pattern, flags)`` تعيد `true` إذا كانت السلسلة `src` تطابق التعبير النمطي `pattern`. علامة مفيدة بشكل خاص هي ``i``، فهي تجعل المطابقة غير حساسة لحالة الأحرف. يمكن العثور على دليل جيد حول بناء جملة التعبيرات العادية في `بناء جملة regexp <https://docs.python.org/library/re.html>`_
