<?xml version="1.0" encoding="utf-8"?>
<sect2 id="usage-execution">
  <title>Ποια ενέργεια πρέπει να εκτελεστεί;</title>
  <para>Κατά πάσα πιθανότητα θα θέλετε η ενέργειά σας τελικά να τελειώνει εκτελώντας κάτι. Και, στην πραγματικότητα, εκτελώντας κάτι είναι μια από τις λίγες συνθήκες που απαιτούνται για να θεωρηθεί μια ενέργεια ως έγκυρη.</para>
  <para>
    As we have already seen, the command to be executed is configured
      <!-- i18n: "Command" is a UI label -->
    in the <guilabel>Command</guilabel> page.
  </para>
  <para>Αυτή η εντολή μπορεί να πάρει ορίσματα, που τα ίδια μπορούν να ενσωματώσουν παραμέτρους. Αυτοί οι παράμετροι θα επεκταθούν κατά τον χρόνο εκτέλεσης, με τιμές που θα εξαρτηθούν από τα τρέχοντα επιλεγμένα στοιχεία.</para>

  <sect3 id="usage-execution-parameters">
    <title>Διαθέσιμες παράμετροι</title>
    <para>
      <!-- i18n: "Command" is a UI label -->
      In the <guilabel>Command</guilabel> page,
      <!-- i18n: "Legend" is a UI label -->
      click on <guilabel>Legend</guilabel>
      button to see the list of available parameters.
    </para>
    <figure id="cact-FIG-legend">
      <title>Κατάλογος των διαθέσιμων παραμέτρων</title>
      <screenshot>
        <mediaobject>
          <imageobject>
            <imagedata fileref="figures/cact-legend.png" format="PNG"/>
          </imageobject>
          <textobject>
            <phrase>Εμφανίζει τον κατάλογο των διαθέσιμων παραμέτρων.</phrase>
          </textobject>
        </mediaobject>
      </screenshot>
    </figure>
    <tip>
      <para>
        <!-- i18n: "Legend" is a UI label -->
        The <guibutton>Legend</guibutton> button has a toggling action:
        <!-- i18n: "Parameter Legend" is a UI label -->
        click once to display the <guilabel>Parameter Legend</guilabel>
        dialog box; click a second time to hide it.
      </para>
    </tip>
    <note>
      <para>
        <!-- i18n: "first" is a UI label -->
        The word « <guilabel>first</guilabel> » may be
        misleading as it only refers to the list of selected items
        internally provided by the file manager to the <productname>Caja-Actions</productname> plugin.
      </para>
      <para>
        In particular, it has <emphasis>nothing to do</emphasis> with
        the visual selection you may have done in the file manager window.
        <!-- i18n: "first" is a UI label -->
        And, in fact, which is the « <guilabel>first</guilabel> »
        selected item in a multiple selection is absolutely undefined
        and rather unpredictable.
      </para>
    </note>
  </sect3>

  <sect3 id="usage-execution-work">
    <title>Πού πρέπει να εκτελεστεί η ενέργεια;</title>
    <para>Η ενέργειά σας μπορεί να εκτελεστεί σε έναν ιδιαίτερο κατάλογο εργασίας.</para>
    <para>
      <!-- i18n: "Command" is a UI label -->
      You may specify it in the <guilabel>Command</guilabel> tab, in the
      <!-- i18n: "Working directory" is a UI label -->
      <guilabel>Working directory</guilabel> entry box, or by clicking
      <!-- i18n: "Browse" is a UI (button) label -->
      on <guibutton>Browse</guibutton> to select a folder on the 
      filesystem.
    </para>
    <figure id="cact-FIG-work-dir-frame">
      <title>Το πλαίσιο καταλόγου εργασίας</title>
      <screenshot>
        <mediaobject>
          <imageobject>
            <imagedata fileref="figures/cact-working-directory-frame.png" format="PNG"/>
          </imageobject>
          <textobject>
            <phrase>Εστιάστε στο πλαίσιο επιλογής καταλόγου εργασίας.</phrase>
          </textobject>
        </mediaobject>
      </screenshot>
    </figure>
    <para>
      The working directory defaults to <literal>%d</literal>, which
      runs the command in the base directory of the (first) selected
      item.
    </para>
    <para>
      In the particular case of the <literal>%d</literal> parameter,
      <!-- i18n: "first" is a UI label -->
      the « <guilabel>first</guilabel> » selected item
      is not very important because it is very likely that all selected
      items are located in the same base directory.
    </para>
  </sect3>

  <sect3 id="usage-execution-how">
    <title>Πώς πρέπει να εκτελεστεί η ενέργεια;</title>
    <para>
      Apart from configuring the conditions, the selection must be met
      in order your action be displayed in file manager menus, <productname>Caja-Actions</productname>
      allows you to configure how exactly your command will be
      executed.
    </para>
    <para>
      <!-- i18n: "Execution" is a UI label -->
      Click on the <guilabel>Execution</guilabel> tab to show the page
      which configures the execution of your command.
    </para>
    <figure id="cact-FIG-execution">
      <title>Ρύθμιση των καταστάσεων εκτέλεσης</title>
      <screenshot>
        <mediaobject>
          <imageobject>
            <imagedata fileref="figures/cact-execution-tab.png" format="PNG"/>
          </imageobject>
          <textobject>
            <phrase>Εμφανίζει πώς να ρυθμίσετε τις καταστάσεις εκτέλεσης μιας εντολής.</phrase>
          </textobject>
        </mediaobject>
      </screenshot>
    </figure>

    <sect4 id="usage-execution-how-mode">
      <title>Κατάσταση εκτέλεσης</title>
      <figure id="cact-FIG-execution-mode">
        <title>Ρύθμιση της κατάστασης εκτέλεσης</title>
        <screenshot>
          <mediaobject>
            <imageobject>
              <imagedata fileref="figures/cact-exec-mode-frame.png" format="PNG"/>
            </imageobject>
            <textobject>
              <phrase>Εστίαση στο πλαίσιο κατάστασης εκτέλεσης.</phrase>
            </textobject>
          </mediaobject>
        </screenshot>
      </figure>
      <para>Η κατάσταση εκτέλεσης της εντολής σας μπορεί να επιλεγεί μεταξύ των ακόλουθων τιμών:</para>
      <variablelist>
        <varlistentry>
          <term>Κανονική</term>
          <listitem>
            <para>Ξεκινά την εντολή ως μια τυπική γραφική διεπαφή χρήστη.</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term>Τερματικό</term>
          <listitem>
            <para>Ξεκινά το αγαπημένο τερματικό του περιβάλλοντος επιφάνειας εργασίας και εκτελεί την εντολή σε αυτό.</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term>Ενσωματωμένο</term>
          <listitem>
            <para>Χρησιμοποιεί το ειδικό γνώρισμα του διαχειριστή αρχείων που μπορεί να επιτρέψει ένα τερματικό να εκτελεστεί σε αυτό.</para>
            <para>
              As <productname>Caja</productname> does not have this feature, this option is strictly
              equivalent to <literal>Terminal</literal> option.
            </para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term>Εμφάνιση εξόδου</term>
          <listitem>
            <para>Ξεκινά το αγαπημένο τερματικό του περιβάλλοντος επιφάνειας εργασίας και εκτελεί την εντολή σε αυτό. Στο τέλος, οι τυπικές ροές (τυπική έξοδος, τυπικό σφάλμα) συλλέγονται και εμφανίζονται.</para>
          </listitem>
        </varlistentry>
      </variablelist>
      <para>
        The execution mode of a command defaults to <literal>Normal</literal>.
        That is, the command is executed without any particular pre- or
        post-work.
      </para>
    </sect4>

    <sect4 id="usage-execution-how-notify">
      <title>Έναρξη ειδοποίησης</title>
      <figure id="cact-FIG-startup-mode">
        <title>Ρύθμιση των καταστάσεων έναρξης</title>
        <screenshot>
          <mediaobject>
            <imageobject>
              <imagedata fileref="figures/cact-startup-mode-frame.png" format="PNG"/>
            </imageobject>
            <textobject>
              <phrase>Εστίαση στο πλαίσιο κατάστασης έναρξης.</phrase>
            </textobject>
          </mediaobject>
        </screenshot>
      </figure>
      <para>
        If the execution mode of the command is <literal>Normal</literal>,
        <!-- i18n: "remove" is a X literal, do not translate -->
        and if you know that the application will send a <literal>remove</literal>
        message with the <envar>DESKTOP_STARTUP_ID</envar> environment variable set,
        <!-- i18n: "Startup notify" is a UI label -->
        then check the <guilabel>Startup notify</guilabel> checkbox.
      </para>
      <para>See the <ulink url="http://www.freedesktop.org/Standards/startup-notification-spec" type="http"><citetitle>Startup Notification Protocol Specification</citetitle></ulink> for more details.</para>
    </sect4>

    <sect4 id="usage-execution-how-class">
      <title>Κλάση παραθύρου</title>
      <para>
        If the execution mode of the command is <literal>Normal</literal>,
        and if you know that the application will map at least one window
        with a given class name, then enter that name into the
        <!-- i18n: "Startup Window Manager class" is a UI label -->
         <guilabel>Startup Window Manager class</guilabel>
        entry box.
      </para>
      <para>See the <ulink url="http://www.freedesktop.org/Standards/startup-notification-spec" type="http"><citetitle>Startup Notification Protocol Specification</citetitle></ulink> for more details.</para>
    </sect4>

    <sect4 id="usage-execution-how-user">
      <title>Κάτοχος της εκτέλεσης</title>
      <figure id="cact-FIG-execute-as">
        <title>Ρύθμιση του κατόχου της εκτέλεσης</title>
        <screenshot>
          <mediaobject>
            <imageobject>
              <imagedata fileref="figures/cact-execute-as-frame.png" format="PNG"/>
            </imageobject>
            <textobject>
              <phrase>Focus on the <guilabel>Execute as</guilabel> frame.</phrase>
            </textobject>
          </mediaobject>
        </screenshot>
      </figure>
      <para>
        Enter in the <guilabel>Execute as user</guilabel> entry box the
        username or the <acronym>UID</acronym> of the user your command
        will be run as.
      </para>
      <para>Αν δεν εισάγετε τίποτα σε αυτό το πεδίο, τότε η εντολή θα εκτελεστεί ως του τρέχοντος χρήστη.</para>
    </sect4>

    <sect4 id="usage-execution-how-singular">
      <title>Πολλαπλές εκτελέσεις</title>
      <para>Μπορεί να θέλετε η εντολή σας να εκτελεστεί μια φορά, δίνοντας της τον κατάλογο των επιλεγμένων στοιχείων ως όρισμα.</para>
      <para>Ή μπορεί να προτιμήσετε η εντολή σας να επαναληφθεί για κάθε επιλεγμένο στοιχείο, δίνοντας ένα διαφορετικό στοιχείο ως όρισμα για κάθε εκτέλεση.</para>
      <para>
        Actually, <productname>Caja-Actions</productname> automatically handles these two behaviors,
        depending of the form and the order of the parameters in the
        command arguments.
      </para>
      <para>
        Though some parameters are not depending on the count of the
        selection (<abbrev>e.g.</abbrev> « <literal>%c</literal> »,
        the selection count itself), most have two declensions:
      </para>
      <itemizedlist>
        <listitem>
          <para>
            a « singular » one, <abbrev>e.g.</abbrev>
            « <literal>%b</literal> »,
            the basename of the selected item;
          </para>
        </listitem>
        <listitem>
          <para>
            a « plural » one, <abbrev>e.g.</abbrev>
            « <literal>%B</literal> »,
            the space-separated list of the basenames of selected items.
          </para>
        </listitem>
      </itemizedlist>
      <para>Όταν η επιλογή είναι κενή ή περιέχει μόνο ένα στοιχείο, αυτές οι δύο μορφές είναι ακριβώς ισοδύναμες, όσον αφορά αυτήν την παράγραφο.</para>
      <para>Όταν η επιλογή περιέχει περισσότερα από ένα στοιχεία:</para>
      <itemizedlist>
        <listitem>
          <para>
            if the first relevant parameter is of a singular form,
            then <productname>Caja-Actions</productname> will consider that the command is only able
            to deal with one item at a time, and thus that it has to be
            ran one time for each selected item;
          </para>
        </listitem>
        <listitem>
          <para>
            contrarily, if the first relevant parameter found is of the
            plural form, then <productname>Caja-Actions</productname> will consider that the command
            is able to deal with a list of items, and thus the command
            will be executed only once;
          </para>
        </listitem>
        <listitem>
          <para>
            if all found parameters are irrelevant, then <productname>Caja-Actions</productname> defaults
            to consider that the command should be executed only once.
          </para>
        </listitem>
      </itemizedlist>
      <table id="cact-TAB-multiple-execution" frame="all" tocentry="1">
        <title>Characterization of the parameters <abbrev>vs.</abbrev> multiple execution</title>
        <tgroup cols="5">
          <colspec align="center" colwidth="*"/>
          <colspec align="left" colwidth="5*"/>
          <colspec align="center" colwidth="*" colname="c3"/>
          <colspec align="center" colwidth="*"/>
          <colspec align="center" colwidth="*" colname="c5"/>
          <thead>
            <row>
              <entry>Παράμετρος</entry>
              <entry>Περιγραφή</entry>
              <entry namest="c3" nameend="c5">Επανάληψη</entry>
            </row>
          </thead>
          <tbody>
            <row>
              <entry><literal>%b</literal></entry>
              <entry>(πρώτο) όνομα βάσης</entry>
              <entry>μοναδικός</entry>
              <entry/>
              <entry/>
            </row>
            <row>
              <entry><literal>%B</literal></entry>
              <entry>κατάλογος ονομάτων βάσης που χωρίζονται με κενά</entry>
              <entry/>
              <entry/>
              <entry>πολλαπλός</entry>
            </row>
            <row>
              <entry><literal>%c</literal></entry>
              <entry>πλήθος των επιλεγμένων στοιχείων</entry>
              <entry/>
              <entry>άσχετο</entry>
              <entry/>
            </row>
            <row>
              <entry><literal>%d</literal></entry>
              <entry>(πρώτος) κατάλογος βάσης</entry>
              <entry>μοναδικός</entry>
              <entry/>
              <entry/>
            </row>
            <row>
              <entry><literal>%D</literal></entry>
              <entry>λίστα του καταλόγου βάσης που χωρίζεται με κενά κάθε επιλεγμένου στοιχείου</entry>
              <entry/>
              <entry/>
              <entry>πολλαπλός</entry>
            </row>
            <row>
              <entry><literal>%f</literal></entry>
              <entry>(πρώτο) όνομα αρχείου</entry>
              <entry>μοναδικός</entry>
              <entry/>
              <entry/>
            </row>
            <row>
              <entry><literal>%F</literal></entry>
              <entry>κατάλογος επιλεγμένων ονομάτων αρχείων που χωρίζεται με κενά</entry>
              <entry/>
              <entry/>
              <entry>πολλαπλός</entry>
            </row>
            <row>
              <entry><literal>%h</literal></entry>
              <entry>όνομα οικοδεσπότη του (πρώτου) URI</entry>
              <entry/>
              <entry>άσχετο</entry>
              <entry/>
            </row>
            <row>
              <entry><literal>%m</literal></entry>
              <entry>τύπος mime του (πρώτου) επιλεγμένου στοιχείου</entry>
              <entry>μοναδικός</entry>
              <entry/>
              <entry/>
            </row>
            <row>
              <entry><literal>%M</literal></entry>
              <entry>κατάλογος των τύπων mime των επιλεγμένων στοιχείων που χωρίζονται με κενά</entry>
              <entry/>
              <entry/>
              <entry>πολλαπλός</entry>
            </row>
            <row>
              <entry><literal>%n</literal></entry>
              <entry>όνομα χρήστη του (πρώτου) URI</entry>
              <entry/>
              <entry>άσχετο</entry>
              <entry/>
            </row>
            <row>
              <entry><literal>%o</literal></entry>
              <entry>τελεστής ουδέτερης εντολής που εξαναγκάζει μια μοναδική μορφή εκτέλεσης</entry>
              <entry>μοναδικός</entry>
              <entry/>
              <entry/>
            </row>
            <row>
              <entry><literal>%O</literal></entry>
              <entry>τελεστής ουδέτερης εντολής που εξαναγκάζει μια πολλαπλή μορφή εκτέλεσης</entry>
              <entry/>
              <entry/>
              <entry>πολλαπλός</entry>
            </row>
            <row>
              <entry><literal>%p</literal></entry>
              <entry>αριθμός θύρας του (πρώτου) URI</entry>
              <entry/>
              <entry>άσχετο</entry>
              <entry/>
            </row>
            <row>
              <entry><literal>%s</literal></entry>
              <entry>σχήμα του (πρώτου) URI</entry>
              <entry/>
              <entry>άσχετο</entry>
              <entry/>
            </row>
            <row>
              <entry><literal>%u</literal></entry>
              <entry>(πρώτο) URI</entry>
              <entry>μοναδικός</entry>
              <entry/>
              <entry/>
            </row>
            <row>
              <entry><literal>%U</literal></entry>
              <entry>κατάλογος επιλεγμένων URIs που χωρίζεται με διάστημα</entry>
              <entry/>
              <entry/>
              <entry>πολλαπλός</entry>
            </row>
            <row>
              <entry><literal>%w</literal></entry>
              <entry>(πρώτο) όνομα βάσης χωρίς την επέκταση</entry>
              <entry>μοναδικός</entry>
              <entry/>
              <entry/>
            </row>
            <row>
              <entry><literal>%W</literal></entry>
              <entry>κατάλογος των ονομάτων βάσης χωρίς την επέκτασή τους που χωρίζεται με διάστημα</entry>
              <entry/>
              <entry/>
              <entry>πολλαπλός</entry>
            </row>
            <row>
              <entry><literal>%x</literal></entry>
              <entry>(πρώτη) επέκταση</entry>
              <entry>μοναδικός</entry>
              <entry/>
              <entry/>
            </row>
            <row>
              <entry><literal>%X</literal></entry>
              <entry>κατάλογος επεκτάσεων που χωρίζεται με διάστημα</entry>
              <entry/>
              <entry/>
              <entry>πολλαπλός</entry>
            </row>
            <row>
              <entry><literal>%%</literal></entry>
              <entry>the « <literal>%</literal> » character</entry>
              <entry/>
              <entry>άσχετο</entry>
              <entry/>
            </row>
          </tbody>
        </tgroup>
      </table>
      <example>
        <title>Usage of singular <abbrev>vs.</abbrev> plural forms</title>
        <para>
          Say the current folder is <filename>/data</filename>,
          and the current selection contains the three files
          <filename>pierre</filename>, <filename>paul</filename>
          and <filename>jacques</filename>.
        </para>
        <formalpara>
          <title>
            If we have requested <command>echo %b</command>,
          </title>
          <para>τότε οι ακόλουθες εντολές θα εκτελεστούν διαδοχικά:</para>
        </formalpara>
        <simplelist>
          <member><command>echo pierre</command></member>
          <member><command>echo paul</command></member>
          <member><command>echo jacques</command></member>
        </simplelist>
        <para>
          This is because <literal>%b</literal> marks a <emphasis>singular</emphasis>
          parameter. The command is then run once for each of the selected items.
        </para>
        <formalpara>
          <title>
            Contrarily, if we have requested <command>echo %B</command>,
          </title>
          <para>τότε η ακόλουθη εντολή θα εκτελεστεί:</para>
        </formalpara>
        <simplelist>
          <member><command>echo pierre paul jacques</command></member>
        </simplelist>
        <para>
          This is because <literal>%B</literal> marks a <emphasis>plural</emphasis>
          parameter. The command is then run only once, with the list of selected
          items as arguments.
        </para>
        <formalpara>
          <title>
            If we have requested <command>echo %b %B</command>,
          </title>
          <para>τότε οι ακόλουθες εντολές θα εκτελεστούν διαδοχικά:</para>
        </formalpara>
        <simplelist>
          <member><command>echo pierre pierre paul jacques</command></member>
          <member><command>echo paul pierre paul jacques</command></member>
          <member><command>echo jacques pierre paul jacques</command></member>
        </simplelist>
        <para>
          This is because the first <emphasis>relevant</emphasis> parameter
          is <literal>%b</literal>, and so the command is run once for each
          selected item, replacing at each occurrence the <literal>%b</literal>
          parameter with the corresponding item. The second parameter is
          computed and added as arguments to the executed command.
        </para>
        <formalpara>
          <title>
            And if we have requested <literal>echo %B %b</literal>,
          </title>
          <para>τότε οι ακόλουθες εντολές θα εκτελεστούν:</para>
        </formalpara>
        <simplelist>
          <member><command>echo pierre paul jacques pierre</command></member>
        </simplelist>
        <para>
          This is because the first <emphasis>relevant</emphasis>
          parameter here is <literal>%B</literal>. The command is then
          run only once, replacing <literal>%B</literal> with the
          space-separated list of basenames. As the command is only run
          once, the <literal>%b</literal> is substituted only once with
          the (first) basename. 
        </para>
      </example>
   </sect4>
  </sect3>

</sect2>
