<?xml version="1.0" ?>
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
  <!ENTITY okteta "<application
>Okteta</application
>">
  <!ENTITY kappname "&okteta;">
  <!ENTITY package "kdesdk">
  <!ENTITY Friedrich.Kossebau
"<personname
><firstname
>Friedrich</firstname
><othername
>W. H.</othername
><surname
>Kossebau</surname
></personname
>">
  <!ENTITY Friedrich.Kossebau.email "<email
>kossebau@kde.org</email
>">
  <!ENTITY Alex.Richardson
"<personname
><firstname
>Alex</firstname
><surname
>Richardson</surname
></personname
>">
  <!ENTITY Alex.Richardson.email "<email
>alex.richardson@gmx.de</email
>">
  <!ENTITY % French "INCLUDE">
  <!ENTITY % addindex "IGNORE">
]>

<book id="okteta" lang="&language;">

<bookinfo>
<title
>Manuel de &okteta; </title>

<authorgroup>
    <author
><firstname
>Friedrich</firstname
><othername
>W. H.</othername
><surname
>Kossebau</surname
> <affiliation
> <address
>&Friedrich.Kossebau.email;</address>
      </affiliation>
    </author>
    <author
><firstname
>Alex</firstname
><surname
>Richardson</surname
> <affiliation
> <address
>&Alex.Richardson.email;</address>
      </affiliation>
    </author>
&traducteurStanislasZeller;&traducteurJeanJacquesFinazzi; <othercredit role="translator"
><firstname
>Hervé</firstname
><surname
>Boulogne</surname
><affiliation
><address
><email
>herve.boulogne@gmail.com</email
></address
></affiliation
><contrib
>Traduction française&nbsp;</contrib
></othercredit
> &traducteurXavierBesnard;&relecteurLudovicGrossard; 
</authorgroup>

<copyright>
<year
>2008, 2010, 2011</year>
<holder
>&Friedrich.Kossebau; et &Alex.Richardson;</holder>
</copyright>
<!--FIXME http://frinring.files.wordpress.com/2012/08/okteta-0-9-new-features.png-->
<legalnotice
>&FDLNotice;</legalnotice>

<date
>20-08-2012</date>
<releaseinfo
>0.9.70 (&kde; 4.9)</releaseinfo>

<abstract>
  <para
>&okteta; est un simple éditeur de fichiers de données brutes. Ce type de programme aussi appelé éditeur hexadécimal ou binaire.</para>
</abstract>

<keywordset>
<keyword
>KDE</keyword>
<keyword
>&package;</keyword>
<keyword
>Okteta</keyword>
<keyword
>affichage</keyword>
<keyword
>édition</keyword>
<keyword
>bits</keyword>
<keyword
>octets</keyword>
<keyword
>binaire</keyword>
<keyword
>octal</keyword>
<keyword
>hexadécimal</keyword>
<keyword
>éditeur hexa</keyword>
<keyword
>données brutes</keyword>
</keywordset>
</bookinfo>

<chapter id="introduction">
<title
>Introduction</title>

<para
>&okteta; est un simple éditeur de fichiers de données brutes.</para>

<para
>Les données sont affichées en deux versions : les valeurs numériques des octets et les caractères assignés à ces valeurs. Ces caractères et valeurs peuvent être affichés soit sur deux colonnes (l'affichage traditionnel des éditeurs hexadécimal) ou sous forme de ligne avec la valeur au-dessus du caractère. L'édition peux se faire simultanément pour les valeurs et pour les caractères.</para>

<para
>À coté des possibilités d'édition communes, &okteta; apporte aussi quelques petits outils, comme le déchiffrage de liste de tables dans des types de données communs, un tableau listant tous les octets possibles avec leurs équivalent de caractères et valeurs, une vue d'informations avec un outil de statistique, de calculateur de somme de contrôle et un outil d'extraction de chaîne.</para>

<para
>Toutes les modifications apportées aux données peuvent être annulées ou refaites.</para>

</chapter>

<chapter id="basics">
<title
>Les bases</title>

<sect1 id="starting-basics">
<title
>Démarrage de &okteta;</title>

    <para
>Saisissez <userinput
><command
>okteta</command
></userinput
> dans une invite de commande ou sélectionnez <guimenuitem
>Éditeur hexadécimal</guimenuitem
> depuis le groupe <menuchoice
><guisubmenu
>Applications</guisubmenu
><guisubmenu
>Outils</guisubmenu
></menuchoice
> dans le lanceur d'applications.</para>

    <para
>Les lignes de commande &Qt; et &kde; standard sont disponibles, et peuvent être listées en saisissant <userinput
><command
>okteta</command
> <option
>--help</option
></userinput
>.</para>

    <para
>Les options de ligne de commande spécifiques à &okteta; sont : </para>

    <para
><option
><replaceable
>&lt;&URL;(s)&gt;</replaceable
></option
> - ouvre un ou des fichiers depuis la ou les &URL;s spécifiées.</para>

<!--<para
><option
>- -offset</option>
<replaceable
>&lt;offset&gt;</replaceable
> jump to position
<replaceable
>&lt;offset&gt;</replaceable
> in the opened file.</para
>-->
</sect1>

<sect1 id="usage-basics">
<title
>Usage</title>

    <para
>La fenêtre principale de &okteta; contient les composants suivants : une barre de menu, une barre d'outils, une barre d'état, une ou plusieurs barres latérales avec des outils, et la vue principale avec les onglets des fichiers ouverts. </para>

    <para
>Quand un fichier est ouvert ou qu'une nouvelle table d'octets est créée, ces octets sont listés de façon consécutive par lignes avec un nombre donné d'octets par ligne. Celles-ci sont affichées sous deux formes différentes : comme valeurs numériques des octets et comme caractères assignés à ces valeurs. Ces valeurs et ces caractères peuvent être affichés soit séparés en deux colonnes soit côte à côte avec la valeur affichée au dessus du caractère. Sur le côté gauche, les décalages du premier octet de chaque ligne sont affichés.</para>

    <para
>Les traitements sont semblables à la plupart des éditeurs de texte : les données peuvent être éditées, coupées, copiées, glissées et déplacées. Un curseur affiche la position courante. Appuyer sur la touche <keycap
>Inser</keycap
> affiche soit le mode écrasement, soit le mode insertion. Le mode écrasement est plus strict que dans les éditeurs de texte, car il ne tolère pas de changement de la taille du tableau d'octets.</para>

    <para
>Mise à part le fait que le contenu d'un fichier est affiché sous deux formes différentes, une seule des deux formes est active pour la modification de données. Il y a deux curseurs en interaction : un pour la valeur et l'autre pour le caractère associé. Le curseur de la forme active clignote. Dans la partie caractère, les caractères sont saisis directement. Dans la partie valeur, la frappe d'un chiffre ouvrira un petit éditeur où seront rentré le reste de la valeur. </para>

    <para
>La boîte de dialogue de recherche permet à l'utilisateur de chercher une entrée spécifique d'octets, définit comme une valeur (hexadécimal, décimal, octal, binaire) ou texte (en encodage 8-bits ou en UTF-8).</para>

    <para
>Plusieurs tables d'octets peuvent être ouvertes en même temps mais une seule peut être active. Utilisez le menu <guimenu
>Affichage</guimenu
> pour sélectionner quelle table d'octets sera active.</para>
</sect1>


</chapter>

<chapter id="tools">
  <title
>Outils</title>

<!-- The tool Versions is not part of released versions,
just used for development, so no need to document it. -->

<sect1 id="tools-overview">

  <title
>Aperçu</title>
  <para
>&okteta; contient des outils qui servent à analyser et modifier des tables d'octets et d'autres plus généraux. Ces outils peuvent être activés ou désactivés depuis le menu <guimenu
>Outils</guimenu
>. Chaque outil apparaît dans une petite vue et l'onglet relatif à cette outil est placé soit. Chaque outil sélectionné possède un petit affichage soit sous forme d'onglet dans la fenêtre principale, soit sous forme de fenêtre flottante indépendante. La modification de la disposition des outils se fait avec la souris en pressant le &BGS; sur la bar de titre d'une fenêtre d'outil, déplacer celle-ci à l'endroit souhaité et relâcher le &BGS; pour terminer le déplacement, d'autre part vous pouvez revenir à la position de en pressant la touche &Echap;.</para>

<sect2>
  <title
>Analyseurs et opérateurs</title>
<variablelist>
  <varlistentry>
    <!--FIXME not in 4.9?-->
    <term
>Table d'octets</term>
    <listitem
><para
>La table liste toutes les valeurs d'octets possibles, aussi bien en valeurs de caractère qu'en valeur numérique.</para>
    <para
>La valeur sélectionnée peut être insérée à la position du curseur pour un nombre défini d'octets, en utilisant le bouton <guibutton
>Insérer</guibutton
> ou en faisant un double-clic sur la ligne de la table.</para
></listitem>
  </varlistentry>

  <varlistentry>
    <term
>Filtre binaire</term>
    <listitem
><para
>Le filtre exécute des opérations binaires sur des octets sélectionnés. Après avoir choisi l'opération (AND, OR, ROTATE), les paramètres, le cas échéant, peuvent être définis dans la boîte de dialogue ci-dessous. Le filtre est exécuté en utilisant le bouton <guibutton
>Filtrer</guibutton
>.</para
></listitem>
  </varlistentry>

  <varlistentry>
    <term
>Chaînes</term>
    <listitem
><para
>Cet outil localise des chaînes dans les octets sélectionnés. Après avoir choisi la longueur minimale de la chaîne, les chaînes sont recherchées en utilisant le bouton <guibutton
>Extraire</guibutton
>. La liste des chaînes affichées peut être restreinte en saisissant un terme dans le filtre.</para
></listitem>
  </varlistentry>

  <varlistentry>
    <term
>Statistiques</term>
    <listitem
><para
>Cet outil crée une statistique pour les octets sélectionnés. La statistique donne la fréquence de l'occurrence de chaque valeur d'octet dans la sélection. Les informations peuvent être calculées en utilisant le bouton <guibutton
>Construire</guibutton
>.</para
></listitem>
  </varlistentry>

  <varlistentry>
    <term
>Somme de contrôle</term>
    <listitem
><para
>Cet outil calcule les différentes sommes de contrôle ou sommes de hachage des octets sélectionnés. Après avoir choisi l'algorithme et sélectionné les paramètres, s'il y en a, la somme est calculée en utilisant le bouton <guibutton
>Calculer</guibutton
>.</para
></listitem>
  </varlistentry>

  <varlistentry>
    <term
>Table de décodage</term>
    <listitem
><para
>La table affiche les valeurs de l'octet ou des octets à partir du curseur, pour des raisons d'utilisation de types de données communs, comme un entier ou un réel, mais aussi UTF-8. Un double clic sur une ligne dans la table d'octet ouvre un éditeur, dont la valeur peut être éditée et changée.</para
></listitem>
  </varlistentry>

  <varlistentry>
    <term
>Structures</term>
    <listitem
><para
>Cet outil permet d'examiner et de modifier des tables d'octets à partir des définitions de structures créées par l'utilisateur. Les instructions détaillées sont dans une <link linkend="tools-structures"
>section</link
>particulière.</para
></listitem>
  </varlistentry>
</variablelist>
</sect2>

<sect2>
  <title
>Outils généraux</title>
<variablelist>
  <varlistentry>
    <term
>Système de fichiers</term>
    <listitem
><para
>Cet outil inclut un navigateur de fichier qui peux être utilisé pour ouvrir des fichiers.</para
></listitem>
  </varlistentry>

  <varlistentry>
    <term
>Documents</term>
    <listitem
><para
>Cet outil affiche l'ensemble des fichiers actuellement créés ou chargés. Des symboles marquent le fichier dans l'affichage actuellement actif mais aussi les modifications non-enregistrées ou quelle copie a été modifiée par un autre programme.</para
></listitem>
  </varlistentry>

  <varlistentry>
    <term
>Signets</term>
    <listitem
><para
>Cet outil est utilisé pour organiser les signets autrement qu'avec le menu <link linkend="bookmarks-menu"
><guimenu
>Signets</guimenu
></link
>. <note
><para
>Les signets ne sont actuellement que temporaires et donc, non enregistrés, si vous fermez une table d'octets ou le programme principal.</para
></note
></para
></listitem>
  </varlistentry>

  <varlistentry>
    <term
>Info fichier</term>
    <listitem
><para
>Cet outil affiche des informations sur le fichier courant, incluant son type, son emplacement de stockage et sa taille.</para
></listitem>
  </varlistentry>
</variablelist>
</sect2>
<!--FIXME Terminal + Charset Conversion missing
http://frinring.wordpress.com/2011/07/31/all-new-okteta-features-for-kde-apps-4-7-in-a-picture/
-->
</sect1>


<sect1 id="tools-structures">

    <title
>Outils de structure</title>

    <sect2>
      <title
>Général</title>

      <para
>L'outil « Structures » permet d'analyser et de modifier des tables d'octets à partir de définitions de structure créée par l'utilisateur. Celles-ci peuvent être créées à partir de tableau, d'unions, de types basiques et de valeurs énumérées.</para>
     <!-- explain/link what these types are? probably not, since most user will be programmers? -->
      <para
>Il possède une configuration propre, disponible avec le bouton <guibutton
>Paramètres</guibutton
>. Différentes options peuvent être configurés, comme le type (décimal, hexadécimal ou binaire) et dont les valeurs sont affichées. De plus, il est possible de choisir quelles définitions de structure sont utilisées et quelle structure est utilisée dans la fenêtre.</para>
      <para
>Les Structures sont définies dans &okteta; fichier de définition de structures (reposant sur &XML;, les fichier avec l'extension <literal role="extension"
>.osd</literal
>). De plus, un fichier <literal role="extension"
>.desktop</literal
> contient les métadonnées sur ce fichier de description de structure, somme l'auteur, la page d'accueil et la licence.</para>
      <para
>Actuellement il n'y a pas d'outil intégré pour la création et modifier les définitions de structure, donc cela est fait manuellement comme décrit à la section suivante.</para>
    </sect2>

    <sect2>
      <title
>Installer les définitions de structures</title>

      <sect3>
        <title
>Installation utilisant KNewStuff</title>
        <para
>La façon la plus simple d'installer une nouvelle définition de structure est d'utiliser l'outil intégré KNewStuff d'&okteta;. Pour installer une structure existante, ouvrer les paramètres de configuration de l'outil Structures. Sélectionner l'onglet <guilabel
>Gestion de structures</guilabel
> et cliquer sur <guibutton
>Obtenir de nouvelles structures</guibutton
>. Une fenêtre s'ouvre et vous permet d'installer ou de désinstaller des structures.</para>
      </sect3>
      <sect3>
        <title
>Installation des définitions de structure manuellement</title>
        <para
>L'outil Structure utilise les descriptions de structure dans le sous-dossier <filename class="directory"
>share/apps/okteta/structures/</filename
> du dossier utilisateur pour les données de programme (accessible en exécutant <userinput
><command
>kde4-config</command
><option
>--localprefix</option
></userinput
>). Vous pourrez avoir besoin de créer ce dossier si aucune définition de structures n'est installé.</para>
          <para
>Chaque définition de structures se composent de deux fichiers : le premier fichier pour la définition actuelle et le second fichier <literal role="extension"
>.desktop</literal
> pour les métadonnées (auteur, version, etc.).</para>
          <para
>Dans ce dossier, il y a un sous-dossier propre à chaque définition de structure. Il contient le fichier <literal role="extension"
>.desktop</literal
> et le fichier <literal role="extension"
>.osd</literal
> ou le fichier <filename
>main.js</filename
> de cette définition.</para>
          <para
>Par exemple, avec l'explorateur de données de <filename class="directory"
>.kde</filename
> et une définition de structure appelée Structure-Exemple il y a un dossier <filename class="directory"
>.kde/share/apps/okteta/structure/Structure-Exemple</filename
>, qui contient un fichier <filename
>Structure-Exemple.desktop</filename
> et un fichier <filename
>Structure-Exemple.osd</filename
>.</para>
      </sect3>
      <sect3>
        <title
>Utilisation des nouvelles structures installées</title>
        <para
>Après avoir installer une nouvelle définition de structure, vous avez besoin de redémarrer &okteta; avant de pouvoir l'utiliser. Après avoir lancer &okteta;, ouvrer les paramètres de l'outil Structure. Sélectionner alors l'onglet latéral <guilabel
>Gestion des structures</guilabel
> et vérifier que les cases relatives aux définitions de structure voulu sont cochées. Puis, aller dans l'onglet latéral <guilabel
>Structures</guilabel
> et vérifier que les structures voulu sont dans le panneau de droite.</para>
      </sect3>
    </sect2>

    <sect2>
      <title
>Partage des définitions de structure</title>
      <para
>Pour les structures plus communes, il est recommandé de ne pas créer une définition pas vous-même, mais plutôt de réutiliser une définition existante comme à l'adresse suivante <ulink url="http://kde-files.org/index.php?xcontentmode=691"
>kde-files.org</ulink
>.</para>
      <para
>Vous pouvez aussi partager une définition propre. Pour cela, créer une archive (&pex; une archive compressé en tar, <literal role="extension"
>.tar.gz</literal
>) qui contient seulement le sous-dossier avec le fichier <literal role="extension"
>.desktop</literal
> et le fichier de définition de structure. Avec l'exemple de la section précédente, nous aurions le dossier <filename class="directory"
>Structure-Exemple</filename
> avec son contenu. Utiliser ce format pour le partage de définitions de structure permet leurs installation directement dans &okteta; et ne requiert aucune installation manuelle.</para>
    </sect2>


    <sect2>
      <title
>Créations de définitions de structure</title>
      <para
>La création de structures peut se faire de deux manières différentes, la première par écriture de la définition en &XML; et la seconde par utilisation de JavaScript. L'approche avec JavaScript vous permet de créer des structures plus complexes avec des fonctionnalités comme, par exemple, la validation de la structure. L'utilisation de &XML; vous offre moins de fonctionnalités mais, si une structure statique est la seule chose dont vous avez besoin, cela peut être plus facile. Si vous avez besoin d'une structure dynamique, par exemple, où les longueurs des tables dépendent d'autres valeurs dans la structure ou si la disposition de la structure est différente quand certaines de ses valeurs sont modifiées, alors, vous devrez écrire la définition de la structure en JavaScript. Il y a une exception à cette règle : si vous avez une table où la longueur est supposée être <emphasis role="bold"
>exactement</emphasis
> la même qu'une autre valeur de la structure, alors, vous pouvez utiliser &XML;. Mais, s'il y a quelque chose comme <emphasis
>longueur - 1</emphasis
>, alors, vous devez utiliser JavaScript.</para>
    </sect2>


    <sect2>
      <title
>Format de fichier &XML; pour la définition de structures</title>
      <para
>Le fichier &XML; avec l'extension <literal role="extension"
>.osd</literal
> ne possède qu'un élément racine : <emphasis
>&lt;données&gt;</emphasis
> sans aucun attribut. Dans cet élément, il doit y avoir un des éléments suivants :</para>
      <!-- TODO markup, though better than nothing this way-->
      <variablelist>
          <varlistentry>
            <term
><emphasis role="bold"
><emphasis
>&lt;primaire&gt;</emphasis
></emphasis
></term>
            <listitem
><para
>Pour créer des types primaires de données, comme, par exemple, <emphasis
>int</emphasis
> et <emphasis
>float</emphasis
>. Cet élément n'accepte aucun sous-élément et peut avoir les attributs suivants :</para>
              <variablelist>
                <varlistentry>
                <term
><emphasis role="bold"
>type</emphasis
></term>
                <listitem>
                  <para
>Le type de ce type primaire. Il doit être parmi les suivants : </para>
                  <itemizedlist>
                    <listitem
><para
><emphasis
>char</emphasis
> pour un caractère ASCII sur 8 bits</para
></listitem>
                    <listitem
><para
><emphasis
>int8, int16, int32, int64</emphasis
> pour un entier signé de cette taille</para
></listitem>
                    <listitem
><para
><emphasis
>Uint8, Uint16, Uint32, Uint64</emphasis
> pour un entier non signé de cette taille</para
></listitem>
                    <listitem
><para
><emphasis
>bool8, bool16, bool32, bool64</emphasis
> pour un booléen non signé (0 = faux, tout autre valeur = vrai) de cette taille</para
></listitem>
                    <listitem
><para
><emphasis
>float</emphasis
> pour un nombre à virgule flottante au format IEEE754 sur 32 bits</para
></listitem>
                    <listitem
><para
><emphasis
>double</emphasis
> pour un nombre à virgule flottante au format IEEE754</para
></listitem>
                  </itemizedlist>
                </listitem>
                </varlistentry>
              </variablelist>
            </listitem>
          </varlistentry>

          <varlistentry>
            <term
><emphasis role="bold"
><emphasis
>&lt;bitfield&gt;</emphasis
></emphasis
></term>
            <listitem
><para
>Créer un « bitfield ». Cet élément n'accepte aucun sous-élément et peut avoir les attributs suivants :</para>
              <variablelist>
                <varlistentry>
                  <term
><emphasis role="bold"
>largeur</emphasis
></term>
                  <listitem
><para
>Le nombre de bits utilisés par ce « bitfield ». Doit être entre 1 et 64.</para
></listitem>
                </varlistentry>
                <varlistentry>
                  <term
><emphasis role="bold"
>type</emphasis
></term>
                  <listitem>
                    <para
>Le type de ce « bitfield ». Doit être l'un de suivants : </para>
                    <itemizedlist>
                      <listitem
><para
><emphasis
>unsigned</emphasis
> pour un « bitfield » où la valeur sera interprétée comme une valeur non signée (plage de valeurs de 0 à 2 <superscript
>largeur</superscript
> - 1)</para
></listitem>
                      <listitem
><para
><emphasis
>signed</emphasis
> pour un « bitfield » où la valeur sera interprétée comme une valeur signée (plage de valeurs de -2 <superscript
>largeur - 1</superscript
> à 2 <superscript
>largeur - 1</superscript
> - 1)</para
></listitem>
                      <listitem
><para
><emphasis
>bool</emphasis
> pour un « bitfield » où la valeur sera interprétée comme un booléen.</para
></listitem>
                  </itemizedlist>
                  <note
><para
>Rappelez vous de toujours ajouter du remplissage après un <emphasis
>&lt;bitfield&gt;</emphasis
>, car sinon, le prochain élément (sauf les chaînes et les tables qui ajoutent automatiquement le remplissage) démarrera au milieu d'un octet. Bien évidemment, le remplissage n'est pas nécessaire si vous recherchez cette situation.</para
></note>
                  </listitem>
                </varlistentry>
              </variablelist>
            </listitem>
          </varlistentry>

          <varlistentry>
            <term
><emphasis role="bold"
><emphasis
>&lt;enum&gt;</emphasis
></emphasis
></term>
            <listitem
><para
>Pour créer un type primaire mais où les leurs sont affichées comme membre d'une énumération si possible. Cet élément n'accepte aucun sous-élément (cependant, vous aurez besoin d'un attribut <emphasis
>&lt;enumDef&gt;</emphasis
> dans le fichier pour le référencer). Il possède les attributs suivants :</para>
              <variablelist>
                <varlistentry>
                  <term
><emphasis role="bold"
>enum</emphasis
></term>
                  <listitem
><para
>Le type « enum » sous-jacent pour cette valeur. Doit correspondre à l'attribut de <emphasis
>nom</emphasis
> de l'un des attributs <emphasis
>&lt;enumDef&gt;</emphasis
> de ce fichier.</para
></listitem>
                </varlistentry>
                <varlistentry>
                  <term
><emphasis role="bold"
>type</emphasis
></term>
                  <listitem>
                    <para
>Le type pour « enum ». Veuillez regarder l'attribut de type de <emphasis
>&lt;primitive&gt;</emphasis
>. La seule différence est que <emphasis
>Double</emphasis
> et <emphasis
>Float</emphasis
> n'ont aucun sens.</para>
                  </listitem>
                </varlistentry>
              </variablelist>
            </listitem>
          </varlistentry>


          <varlistentry>
            <term
><emphasis role="bold"
><emphasis
>&lt;flags&gt;</emphasis
></emphasis
></term>
            <listitem
><para
>Ceci est similaire à <emphasis
>&lt;enum&gt;</emphasis
> avec une seule différence que les valeurs sont représentées comme un ou bit-à-bit de toutes les valeurs de l'énumération.</para
></listitem>
          </varlistentry>

          <varlistentry>
            <term
><emphasis role="bold"
><emphasis
>&lt;struct&gt;</emphasis
></emphasis
></term>
            <listitem
><para
>Pour créer une structure. Tous les autres éléments (incluant <emphasis
>&lt;struct&gt;</emphasis
>) peuvent être ses fils et feront alors partie de la structure résultat.</para
></listitem>
          </varlistentry>

          <varlistentry>
            <term
><emphasis role="bold"
><emphasis
>&lt;union&gt;</emphasis
></emphasis
></term>
            <listitem
><para
>Créer une union. Fondamentalement identique à <emphasis
>&lt;struct&gt;</emphasis
> sauf que tous les éléments fils commenceront à partir du même décalage. Utile pour interpréter la même suite d'octets de différentes façons.</para
></listitem>
          </varlistentry>

          <varlistentry>
            <term
><emphasis role="bold"
><emphasis
>&lt;array&gt;</emphasis
></emphasis
></term>
            <listitem
><para
>Pour créer une table. Cet élément n'accepte qu'un seul fils (le type sous-jacent de la table), qui peut être n'importe lequel des éléments, même <emphasis
>&lt;array&gt;</emphasis
> lui-même. Il possède aussi les attributs suivants : </para>
              <variablelist>
                <varlistentry>
                  <term
><emphasis role="bold"
>longueur</emphasis
></term>
                  <listitem
><para
>Le nombre des éléments dans cette table comme nombre décimal. Alternativement, il peut être aussi une chaîne qui correspond à l'attribut de nom d'un élément précédemment défini <emphasis
>&lt;primaire&gt;</emphasis
>, <emphasis
>&lt;enum&gt;</emphasis
> ou <emphasis
>&lt;flags&gt;</emphasis
>. Ainsi, la longueur sera la valeur de cet élément. Actuellement, elle est limitée à 10 000 car des tables plus grandes utiliseraient trop de mémoire et ralentiraient trop l'outil. </para
></listitem>
                </varlistentry>
              </variablelist>
            </listitem>
          </varlistentry>

          <varlistentry>
            <term
><emphasis role="bold"
><emphasis
>&lt;string&gt;</emphasis
></emphasis
></term>
            <listitem
><para
>Pour créer une chaîne avec des encodages divers. Par défaut, vous obtenez une chaîne de style C, terminée par <emphasis
>NULL</emphasis
>. Cependant, différents types de chaînes peuvent être créées avec les attributs suivants :</para>
              <variablelist>
                <varlistentry>
                  <term
><emphasis role="bold"
>Terminé-par</emphasis
></term>
                  <listitem
><para
>Cet attribut détermine quel est le caractère unicode terminant la chaîne. Il doit être un nombre en hexadécimal (optionnellement commençant par <emphasis
>0x</emphasis
>). Quand l'encodage est en ASCII, seules les valeurs supérieures à 0x7f sont significatives. Si ce n'est pas le cas et si ne sont définis ni <emphasis
>maxCharCount</emphasis
> ni <emphasis
>maxByteCount</emphasis
>, la valeur 0 est prise par défaut (chaîne de type C). </para
></listitem>
                </varlistentry>
                <varlistentry>
                  <term
><emphasis role="bold"
>maxCharCount</emphasis
></term>
                  <listitem
><para
>Le nombre maximum de caractères que peut avoir la chaîne. Si le paramètre <emphasis
>terminé-par</emphasis
> est aussi défini, alors, quel que soit le caractère atteint d'abord, la chaîne se termine. Ceci est mutuellement exclusif avec <emphasis
>maxByteCount</emphasis
></para
></listitem>
                </varlistentry>
                <varlistentry>
                  <term
><emphasis role="bold"
>maxByteCount</emphasis
></term>
                  <listitem
><para
>Le nombre maximum d'octets de la chaîne peut être important. Si le paramètre <emphasis
>terminé-par</emphasis
> est aussi défini, quel que soit le caractère rencontré d'abord, la chaîne se termine. Ceci est mutuellement exclusif avec <emphasis
>maxCharCount</emphasis
>. Avec des encodages comme <emphasis
>ASCII</emphasis
>, cela est similaire à <emphasis
>maxCharCount</emphasis
>.</para
></listitem>
                </varlistentry>
                <varlistentry>
                  <term
><emphasis role="bold"
>type</emphasis
></term>
                  <listitem
><para
>L'encodage de la chaîne. Peut être l'un des suivants :</para>
                    <itemizedlist>
                      <listitem
><para
><emphasis
>ASCII</emphasis
></para
></listitem>
                      <listitem
><para
><emphasis
>LATIN-1</emphasis
></para
></listitem>
                      <listitem
><para
><emphasis
>UTF-8</emphasis
></para
></listitem>
                      <listitem
><para
><emphasis
>UTF-16-LE</emphasis
> ou <emphasis
>UTF-16-BE</emphasis
>. Si, le suffixe fourni n'est ni<emphasis
>-LE</emphasis
> ni <emphasis
>-BE</emphasis
>, le mode « little indian » est pris par défaut. </para
></listitem>
                      <listitem
><para
><emphasis
>UTF-32-LE</emphasis
> ou <emphasis
>UTF-32-BE</emphasis
>. Si, le suffixe fourni n'est ni<emphasis
>-LE</emphasis
> ni <emphasis
>-BE</emphasis
>, le mode « little indian » est pris par défaut. </para
></listitem>
                    </itemizedlist>
                  </listitem>
                </varlistentry>
              </variablelist>
            </listitem>
          </varlistentry>
      </variablelist>
      <para
>Chaque élément accepte aussi un <emphasis
>nom</emphasis
> d'attribut qui est alors visible dans l'affichage de structures. </para>
    </sect2>

    <sect2>
      <title
>Un exemple de définition de structures, à la fois en &XML; et en JavaScript</title>
      <sect3>
        <title
>Les étapes communes à ces deux méthodes.</title>
        <para
>Les métadonnées doivent ressembler à ceci : <screen>
        [Desktop Entry]
        Encoding=UTF-8
        Icon=arrow-up<co id="icon" />
        Type=Service
        ServiceTypes=KPluginInfo

        Name= Test simple de structure
        Comment=Une structure de test très simple ne contenant que deux éléments 

        X-KDE-PluginInfo-Author=Alex Richardson
        X-KDE-PluginInfo-Email=foo.bar@email.org
        X-KDE-PluginInfo-Name=simplestruct
        X-KDE-PluginInfo-Version=1.0
        X-KDE-PluginInfo-Website=http://www.plugin.org/
        X-KDE-PluginInfo-Category=structure
        X-KDE-PluginInfo-License=LGPL
        X-KDE-PluginInfo-EnabledByDefault=false
        </screen
> <calloutlist
> <callout arearefs="icon"
> <para
> L'icône affichée dans &okteta; pour cette structure peut être n'importe quoi retourné en exécutant <userinput
><command
>kdialog</command
><option
>--geticon</option
></userinput
> ou un emplacement vers une icône </para
></callout
></calloutlist
>. Ces champs doivent être assez explicites, sauf pour <literal
>X-KDE-PluginInfo-Name</literal
>. La valeur de ce champ doit correspondre au nom du dossier contenant le fichier, tout comme le nom du fichier <literal role="extension"
>.desktop</literal
>. Pour la création des définitions de structures en &XML;, le nom du fichier <literal role="extension"
>.osd</literal
> doit aussi correspondre au nom de la structure. </para>

        <para
>Cet exemple montre un dossier nommé <filename
>simplestruct</filename
> contenant le fichier <filename
>simplestruct.desktop</filename
>. Lors de la définition de structures en &XML;, le dossier doit aussi contenir un fichier nommé <filename
>simplestruct.osd</filename
>. En utilisant JavaScript, un fichier nommé <filename
>main.js</filename
> existe à la place.</para>
      </sect3>
      <sect3>
        <title
>Une définition de structure simple &XML; </title>
        <para
>Pour commencer, une structure de test très simple sera définie, contenant uniquement de tous les types de données (un caractère, un entier signé 32 bits et un « bitfield »). Cela s'exprime en langage C / C++ comme <screen>
struct simple {
            char a-Car ; 
            int a-Ent ; 
            bool bit-zone : 1 ; 
            unsigned remplissage : 7 ; 
          } ; 
          </screen
> La première étape est d'écrire le fichier <literal role="extension"
>.osd</literal
> conformément au format de fichier défini dans la section précédente. Il peut être appelé <filename
>simplestruct.osd</filename
> :  <screen
><markup>
          &lt;?xml version="1.0" encoding="UTF-8"?&gt;
          &lt;data&gt;
            &lt;struct name= « simple » &gt;
              &lt;primitive name= « a-Car » type= « Char » /&gt;
              &lt;primitive name= « a-Ent » type= « Int32 » /&gt;
              &lt;bitfield name= « bit-zone » type= « bool »width= « 1 » /&gt;
              &lt;bitfield name= « remplissage » type= « unsigned » width= « 7 »/&gt;
            &lt;/struct&gt;
          &lt;/data&gt;
          </markup
></screen
> ce qui est clairement similaire à une définition en langage C / C++. </para>
          <para
>Maintenant, créez un dossier <filename class="directory"
>simplestruct</filename
> dans le dossier d'installation de structures (veuillez regarder l'installation manuelle de définitions de structures) et copiez les deux fichiers dans ce dossier. Maintenant, vous pouvez re-démarrer &okteta; et utiliser la nouvelle structure.</para>
      </sect3>
      <sect3>
        <title
>La structure simple en JavaScript</title>
        <para
>Pour définir la structure ci-dessus en JavaScript, créez un fichier nommé <filename
>main.js</filename
> à la place de  <filename
>simplestruct.osd</filename
>. Le contenu de ce fichier doit être : <screen>
        function init() {
          var structure = struct({
            a-Car : char(),
            a-Ent : int32(),
            bit-zone : bitfield( « bool », 1),
            remplissage : bitfield( « unsigned », 7),
          })
          return structure;
        }
        </screen
> La structure affichée par &okteta; est toujours la valeur retournée par la fonction <literal
>init</literal
>.</para>
        <para
>Les fonctions suivantes peuvent être appelées pour créer un type primaire : <itemizedlist
> <listitem
><para
>char()</para
></listitem
> <listitem
><para
>int8(), int16(), int32() ou int64()</para
></listitem
> <listitem
><para
>Uint8(), Uint16(), Uint32() ou Uint64()</para
></listitem
> <listitem
><para
>bool8(), bool16(), bool32() ou bool64()</para
></listitem
> <listitem
><para
>float()</para
></listitem
> <listitem
><para
>double()</para
></listitem
> </itemizedlist
> La fonction bitfield possède deux paramètres, le premier de type chaîne comprenant <literal
>bool</literal
>, <literal
>signed</literal
> ou <literal
>unsigned</literal
>. Le second paramètre est un entier qui définit la largeur en bits. </para>
      </sect3>
      <sect3>
        <title
>Structures plus complexes</title>
        <para
>Ensuite, une structure plus complexe est définie et enregistrée dans un fichier nommé <filename
>complexe.osd</filename
>. Elle contiendra deux tables (une avec une longueur fixe et l'autre où la longueur est déterminée durant l'exécution), aussi bien qu'une structure imbriquée et une union<screen
><markup>
          &lt;?xml version="1.0" encoding="UTF-8"?&gt;
          &lt;data&gt;
            &lt;struct name="complexe"&gt;
              &lt;primitive name="size" type="Uint8" /&gt;
              &lt;union name="aUnion"&gt;
                &lt;array name="Quatre-Octets" length="4"&gt;
                  &lt;primitive type="Int8" /&gt;
                &lt;/array&gt;
              &lt;/union&gt;
              &lt;struct name="imbrication"&gt;
                &lt;array name="string" length="size"&gt; &lt; ! -- fait référence la taille du champ ci-dessus --&gt;
                  &lt;primitive type="Char" /&gt;
                &lt;/array&gt;
              &lt;/struct&gt;
            &lt;/struct&gt;
          &lt;/data&gt;
          </markup
></screen
> Ceci devrait correspondre à la déclaration suivante en pseudo-C / C++ <screen
>struct complexe {
            Uint8_t size ; 
            union aUnion {
              int8_t Quatre-Octets[4] ; 
            } ; 
            struct imbrication {
              char string[size] //non valable en C++, valeur de référence de la taille Uint8
            } ; 
          } ; 
          </screen>
          </para>
          <note
><para
>Vous pouvez bien évidemment n'avoir que des champs de référence à des tables de longueur dynamique avec la table.</para
></note>
          <para
>Ensuite, le fichier <filename
>complexe.desktop</filename
> est créé, comme dans l'exemple précédent (veuillez vous assurer que vous avez défini correctement <literal
>X-KDE-PluginInfo-Name</literal
>). Faites aussi de même pour installer l'ensemble des fichiers.</para>
      </sect3>
      <sect3>
        <title
>Plus d'informations</title>
        <para
>Quelques exemples de définitions de structures peuvent être trouvés <ulink url="http://websvn.kde.org/branches/KDE/4.9/kdesdk/okteta/kasten/controllers/view/structure/examples/"
>ici</ulink
>. Ceci comprend, par exemple, l'en-tête de fichier pour les fichiers « PNG » et l'en-tête de fichier « ELF ». Un schéma &XML; décrivant la structure du fichier <literal role="extension"
>.osd</literal
> peut être trouvé <ulink url="http://websvn.kde.org/branches/KDE/4.9/kdesdk/okteta/kasten/controllers/view/structures/schema/"
> ici</ulink
>. Si vous avez besoin de plus d'informations, n'hésitez pas à contacter &Alex.Richardson.email;. </para>
      </sect3>
    </sect2>
</sect1>
<!--FIXME missing 
Extended structures definitions 
  Structures Script Console-->
</chapter>

<chapter id="menu-commands">
<title
>Entrées de menu</title>

<para
>Remarquez que la plupart des commandes de menu ont aussi un raccourci clavier.</para>

<sect1 id="file-menu">
<title
>Menu de fichiers</title>

<variablelist>
    <varlistentry>
    <term
><menuchoice
><shortcut
> <keycombo action="simul"
>&Ctrl;<keycap
>N</keycap
></keycombo
> </shortcut
> <guimenu
>Fichier</guimenu
> <guimenuitem
>Nouveau</guimenuitem
> </menuchoice
></term>
    <listitem
><para
><action
>Crée un nouveau tableau d'octets...</action
></para>
    <itemizedlist>
    <listitem
><para
><guimenuitem
>Vide</guimenuitem
> : comme un vide.</para>
    </listitem>
    <listitem
><para
><guimenuitem
>A partir du presse-papiers</guimenuitem
>: avec le contenu courant du presse-papiers.</para
></listitem>
    <listitem
><para
><guimenuitem
>Motif...</guimenuitem
>: avec un motif donné.</para>
    </listitem>
    <listitem
><para
><guimenuitem
>Données aléatoires...</guimenuitem
>: avec des données aléatoires.</para
></listitem>
    <listitem
><para
><guimenuitem
>Séquence</guimenuitem
>: avec tous les octets de 0 à 255.</para
></listitem>
    </itemizedlist>
    </listitem>
    </varlistentry>

    <varlistentry>
    <term
><menuchoice
><shortcut
> <keycombo action="simul"
>&Ctrl;<keycap
>O</keycap
></keycombo
> </shortcut
> <guimenu
>Fichier</guimenu
> <guimenuitem
>Ouvrir...</guimenuitem
> </menuchoice
></term>
    <listitem
><para
><action
>Ouvrir un fichier existant.</action
></para
></listitem>
    </varlistentry>

    <!--<varlistentry>
    <term
><menuchoice>
    <shortcut>
    <keycombo action="simul"
>&Ctrl;<keycap
>I</keycap
></keycombo>
    </shortcut>
    <guimenu
>File</guimenu>
    <guimenuitem
>Insert...</guimenuitem>
    </menuchoice
></term>
    <listitem
><para
><action
>Insert an exiting file in the current
    document.</action
></para
></listitem>
    </varlistentry
>-->

    <varlistentry>
    <term
><menuchoice
><guimenu
>Fichier</guimenu
> <guisubmenu
>Récemment ouvert(s)</guisubmenu
> </menuchoice
></term>
    <listitem
><para
><action
>Choisit un fichier parmi ceux récemment ouverts.</action
></para
></listitem>
    </varlistentry>

    <varlistentry>
    <term
><menuchoice
><shortcut
> <keycombo action="simul"
>&Ctrl;<keycap
>S</keycap
></keycombo
> </shortcut
> <guimenu
>Fichier</guimenu
> <guimenuitem
>Enregistrer</guimenuitem
> </menuchoice
></term>
    <listitem
><para
><action
>Enregistre le tableau d'octets dans un fichier associé.</action
></para
></listitem>
    </varlistentry>

    <varlistentry>
    <term
><menuchoice
><guimenu
>Fichier</guimenu
> <guimenuitem
>Enregistrer sous...</guimenuitem
> </menuchoice
></term>
    <listitem
><para
><action
>Enregistre le tableau d'octets dans un autre fichier avec un nouveau nom.</action
></para
></listitem>
    </varlistentry>

    <varlistentry>
    <term
><menuchoice
><guimenu
>Fichier</guimenu
> <guisubmenu
>Exporter</guisubmenu
> </menuchoice
></term>
    <listitem
><para
>Exporte les octets sélectionnés dans un fichier...</para>
    <itemizedlist>
    <listitem
><para
><guimenuitem
>Valeurs</guimenuitem
> : encodage en octets.</para>
    </listitem>
    <listitem
><para
><guimenuitem
>Texte simple</guimenuitem
> : encodage en caractères. </para
></listitem>
    <listitem
><para
><guimenuitem
>Base64</guimenuitem
>: encodé dans un format « Base64 ».</para
></listitem>
    <listitem
><para
><guimenuitem
>tableau C</guimenuitem
> : définition en tant que tableau de langage de programmation C.</para
></listitem>
    <listitem
><para
><guimenuitem
>Affichage en texte simple</guimenuitem
> : comme dans la vue des données avec le numéro de ligne, les valeurs en octets et les caractères. </para
></listitem>
    </itemizedlist>
    </listitem>
    <!--FIXME missing: Characters, Base32, Ascii85, Uuencoding, Xxencoding, Intel Hex, S-Record-->
    </varlistentry>

    <varlistentry>
    <term
><menuchoice
><shortcut
><keycap
>F5</keycap
></shortcut
> <guimenu
>Fichier</guimenu
> <guimenuitem
>Recharger</guimenuitem
> </menuchoice
></term>
    <listitem
><para
><action
>Ignore tous les changements et recharge le tableau d'octets à partir du fichier.</action
></para
></listitem>
    </varlistentry>

    <varlistentry>
    <term
><menuchoice
><shortcut
> <keycombo action="simul"
>&Ctrl;<keycap
>P</keycap
></keycombo
> </shortcut
> <guimenu
>Fichier</guimenu
> <guimenuitem
>Imprimer...</guimenuitem
> </menuchoice
></term>
    <listitem
><para
><action
>Imprime le tableau d'octets actuel.</action
></para
></listitem>
    </varlistentry>

<!--    <varlistentry>
    <term
><menuchoice>
    <guimenu
>File</guimenu>
    <guimenuitem
>Export...</guimenuitem>
    </menuchoice
></term>
    <listitem
><para
><action
>Export the selected document or a portion of
    it.</action
></para
><para
>Opens a dialog box with these options:</para>
    <variablelist>
    <varlistentry>
    <term
><guilabel
>Format</guilabel
></term>
    <listitem
><para
>Plain text, &HTML; table, rich text
    format, C array.  Use the <guilabel
>Options</guilabel
> tab to select
    details for a C array or an &HTML; table.</para
></listitem>
    </varlistentry>
    <varlistentry>
    <term
><guilabel
>Destination</guilabel
></term>
    <listitem
><para
>The file to which the data will be
    exported</para
></listitem>
    </varlistentry>
    <varlistentry>
    <term
><guilabel
>Export Range</guilabel
></term>
    <listitem
><para
>Selects which data will be exported - - the entire document, the
    selected portion or the range between two specified
    offsets.</para
></listitem>
    </varlistentry>
    </variablelist>
    </listitem
></varlistentry
>-->

    <!--<varlistentry>
    <term
><menuchoice>
    <guimenu
>File</guimenu>
    <guimenuitem
>Cancel Operation</guimenuitem>
    </menuchoice
></term>
    <listitem
><para
>Stop the current operation</para
></listitem>
    </varlistentry
>-->

    <varlistentry>
    <term
><menuchoice
><guimenu
>Fichier</guimenu
> <guimenuitem
>Permissions</guimenuitem
> </menuchoice
></term>
    <listitem
><para
>Modifier les privilèges de modification :</para>
    <variablelist>

    <varlistentry>
    <term
><guilabel
>Définir en lecture seule</guilabel
></term>
    <listitem
><para
>Lorsque ceci est actif, il n'est normalement pas possible de modifier le tableau d'octets chargé.</para
></listitem>
    </varlistentry>
    <!--<varlistentry>
    <term
><guilabel
>Allow Resize</guilabel
></term>
    <listitem
><para
>When off, individual bytes may be edited but the total number of
    bytes may not be changed.</para
></listitem>
    </varlistentry
>-->
    </variablelist>
    </listitem>
    </varlistentry>

    <varlistentry>
    <term
><menuchoice
><shortcut
> <keycombo action="simul"
>&Ctrl;<keycap
>W</keycap
></keycombo
> </shortcut
> <guimenu
>Fichier</guimenu
> <guimenuitem
>Fermer</guimenuitem
> </menuchoice
></term>
    <listitem
><para
><action
>Ferme le tableau d'octets actuel.</action
></para
></listitem>
    </varlistentry>

    <varlistentry>
    <term
><menuchoice
><guimenu
>Fichier</guimenu
> <guimenuitem
>Tout fermer</guimenuitem
> </menuchoice
></term>
    <listitem
><para
><action
>Fermer tous les tableaux d'octets.</action
></para
></listitem>
    </varlistentry>

    <varlistentry>
    <term
><menuchoice
><guimenu
>Fichier</guimenu
> <guimenuitem
>Fermer tous les autres</guimenuitem
> </menuchoice
></term>
    <listitem
><para
><action
>Fermer tous en plus du tableau d'octets actuel.</action
></para
></listitem>
    </varlistentry>

    <varlistentry>
    <term
><menuchoice
><shortcut
> <keycombo action="simul"
>&Ctrl;<keycap
>Q</keycap
></keycombo
> </shortcut
> <guimenu
>Fichier</guimenu
> <guimenuitem
>Quitter</guimenuitem
> </menuchoice
></term>
    <listitem
><para
><action
>Fermer</action
> la fenêtre &okteta;.</para
></listitem>
    </varlistentry>
</variablelist>
</sect1>

<sect1 id="edit-menu">
<title
>Menu de modifications</title>
<!--FIXME in 4.9 still true? change 4.4 to 4.9-->
<para
>Actuellement dans &kde; 4.4, le simple copier / couper stocke les données dans le presse-papiers avec le type MIME « application / octetstream ». &klipper; n'est pas capable d'afficher ces données. Et quasiment toutes les autres applications ne peuvent pas non plus gérer ceci, car il ne s'agit tout simplement que de données brutes. Veuillez aussi consulter le sous-menu <guisubmenu
>Copier comme</guisubmenu
>.</para>
<variablelist>
    <varlistentry>
    <term
><menuchoice
><shortcut
> <keycombo action="simul"
>&Ctrl;<keycap
>Z</keycap
></keycombo
> </shortcut
> <guimenu
>Édition</guimenu
> <guimenuitem
>Annuler</guimenuitem
> </menuchoice
></term>
    <listitem
><para
><action
>Annule la dernière action.</action
></para
></listitem>
    </varlistentry>

    <varlistentry>
    <term
><menuchoice
><shortcut
> <keycombo action="simul"
>&Ctrl;&Maj;<keycap
>Z</keycap
></keycombo
> </shortcut
> <guimenu
>Édition</guimenu
> <guimenuitem
>Refaire</guimenuitem
> </menuchoice
></term>
    <listitem
><para
><action
>Refait la dernière action annulée.</action
></para
></listitem>
    </varlistentry>

    <varlistentry>
    <term
><menuchoice
><shortcut
> <keycombo action="simul"
>&Ctrl;<keycap
>X</keycap
></keycombo
> </shortcut
> <guimenu
>Édition</guimenu
> <guimenuitem
>Couper</guimenuitem
> </menuchoice
></term>
    <listitem
><para
><action
>Supprime les octets sélectionnés et les copie dans le presse-papiers.</action
></para
></listitem>
    </varlistentry>

    <varlistentry>
    <term
><menuchoice
><shortcut
> <keycombo action="simul"
>&Ctrl;<keycap
>C</keycap
></keycombo
> </shortcut
> <guimenu
>Édition</guimenu
> <guimenuitem
>Copier</guimenuitem
> </menuchoice
></term>
    <listitem
><para
><action
>Copie les octets sélectionnés dans le presse-papiers.</action
></para
></listitem>
    </varlistentry>

    <varlistentry>
    <term
><menuchoice
><shortcut
> <keycombo action="simul"
>&Ctrl;<keycap
>V</keycap
></keycombo
> </shortcut
> <guimenu
>Édition</guimenu
> <guimenuitem
>Coller</guimenuitem
> </menuchoice
></term>
    <listitem
><para
><action
>Insère les octets coupés ou copiés dans le presse-papiers.</action
></para
></listitem>
    </varlistentry>

    <varlistentry>
    <term
><menuchoice
><guimenu
>Édition</guimenu
> <guisubmenu
>Copier comme</guisubmenu
> </menuchoice
></term>
    <listitem
><para
>Copie les octets sélectionnés dans le presse-papiers...</para>
    <itemizedlist>
    <listitem
><para
><guimenuitem
>Valeurs</guimenuitem
> : encodage en octets.</para>
    </listitem>
    <listitem
><para
><guimenuitem
>Texte simple</guimenuitem
> : encodage en caractères. </para
></listitem>
    <listitem
><para
><guimenuitem
>Base64</guimenuitem
>: encodé dans un format « Base64 ».</para
></listitem>
    <listitem
><para
><guimenuitem
>tableau C</guimenuitem
> : définition en tant que tableau de langage de programmation C.</para
></listitem>
    <listitem
><para
><guimenuitem
>Affichage en texte simple</guimenuitem
> : comme dans la vue des données avec le numéro de ligne, les valeurs en octets et les caractères. </para
></listitem>
    </itemizedlist>
    </listitem>
    <!--FIXME missing: Characters, Base32, Ascii85, Uuencoding, Xxencoding, Intel Hex, S-Record, see also File export-->

    </varlistentry>

    <varlistentry>
    <term
><menuchoice
><guimenu
>Édition</guimenu
> <guisubmenu
>Insérer</guisubmenu
> </menuchoice
></term>
    <listitem>
    <variablelist>
    <varlistentry>
    <term
><menuchoice>
    <guimenuitem
>Insérer un motif...</guimenuitem>
    </menuchoice
></term>
    <listitem
><para
><action
>Insère la chaîne d'octets spécifiée à l'emplacement du curseur.</action
></para>
    <para
>Les options de cette boîte de dialogue vous permettent de spécifier le nombre d'insertions du motif ainsi que son format (<guilabel
>Hexadécimal</guilabel
>, <guilabel
>Décimal</guilabel
>, <guilabel
>Octal</guilabel
>, <guilabel
>Binaire</guilabel
> ou <guilabel
>Caractère(s)</guilabel
> ou UTF-8).</para>
    <!--para
>If <guilabel
>Repeat pattern</guilabel
> is checked, the specified pattern
    will be inserted repeatedly to reach the length set in
    <guilabel
>Size</guilabel
>.</para--></listitem>
    <!--FIXME Random Data + Sequence - use cases?-->
    </varlistentry>
    </variablelist>
    </listitem>
    </varlistentry>

    <varlistentry>
    <term
><menuchoice
><shortcut
> <keycombo action="simul"
>&Ctrl;<keycap
>A</keycap
></keycombo
> </shortcut
> <guimenu
>Édition</guimenu
> <guimenuitem
>Tout sélectionner</guimenuitem
> </menuchoice
></term>
    <listitem
><para
><action
>Sélectionne le tableau d'octets en entier.</action
></para
></listitem>
    </varlistentry>

    <varlistentry>
    <term
><menuchoice
><shortcut
> <keycombo action="simul"
>&Ctrl;&Maj;<keycap
>A</keycap
></keycombo
> </shortcut
> <guimenu
>Édition</guimenu
> <guimenuitem
>Désélectionner</guimenuitem
> </menuchoice
></term>
    <listitem
><para
><action
>Désélectionne la sélection courante.</action
></para
></listitem>
    </varlistentry>

    <varlistentry>
    <term
><menuchoice
><shortcut
> <keycombo action="simul"
>&Ctrl;<keycap
>E</keycap
></keycombo
> </shortcut
> <guimenu
>Modifier</guimenu
> <guimenuitem
>Sélectionner la plage...</guimenuitem
> </menuchoice
></term>
    <listitem
><para
><action
>Ouvre une boîte de dialogue intégrée pour saisir la plage à sélectionner.</action
></para
></listitem>
    </varlistentry>

    <varlistentry>
    <term
><menuchoice
><shortcut
> <keycombo action="simul"
><keycap
>Ins</keycap
></keycombo
> </shortcut
> <guimenu
>Édition</guimenu
> <guimenuitem
>Mode écrasement</guimenuitem
> </menuchoice
></term>
    <listitem
><para
><action
>Bascule entre le mode insertion et le mode écrasement</action
>. </para>
    <note
><para
>Le mode écrasement est mis en œuvre de manière très stricte, il n'est pas possible de modifier la taille des données (pas d'ajout ou de suppression d'octets).</para
></note>
    </listitem>
    </varlistentry>

    <varlistentry>
    <term
><menuchoice
><shortcut
> <keycombo action="simul"
>&Ctrl;<keycap
>F</keycap
></keycombo
> </shortcut
> <guimenu
>Édition</guimenu
> <guimenuitem
>Chercher...</guimenuitem
> </menuchoice
></term>
    <listitem
><para
><action
>Cherche un motif spécifié par vous dans le document.</action
> Il est possible de chercher des motifs de type hexadécimal, décimal, octal, binaire ou texte.</para>
    <para
>Les options de cette boîte de dialogue vous permettent de spécifier le point de départ, la direction et la plage de recherche.</para
></listitem>
    </varlistentry>

    <varlistentry>
    <term
><menuchoice
><shortcut
> <keycombo action="simul"
><keycap
>F3</keycap
></keycombo
> </shortcut
> <guimenu
>Édition</guimenu
> <guimenuitem
>Poursuivre la recherche</guimenuitem
> </menuchoice
></term>
    <listitem
><para
><action
>Cherche l'occurrence suivante</action
> du motif recherché par <guimenuitem
>Chercher</guimenuitem
>.</para>
    <para
>Si aucun motif n'est spécifié, la boîte de dialogue sera affichée.</para>
    </listitem>
    </varlistentry>

    <varlistentry>
    <term
><menuchoice
><shortcut
> <keycombo action="simul"
>&Maj;<keycap
>F3</keycap
></keycombo
> </shortcut
> <guimenu
>Édition</guimenu
> <guimenuitem
>Chercher en arrière</guimenuitem
> </menuchoice
></term>
    <listitem
><para
><action
>Cherche l'occurrence précédente</action
> du motif recherché par <guimenuitem
>Chercher</guimenuitem
>.</para>
    <para
>Si aucun motif n'est spécifié, la boîte de dialogue sera affichée.</para>
    </listitem>
    </varlistentry>

    <varlistentry>
    <term
><menuchoice
><shortcut
> <keycombo action="simul"
>&Ctrl;<keycap
>R</keycap
></keycombo
> </shortcut
> <guimenu
>Édition</guimenu
> <guimenuitem
>Remplacer...</guimenuitem
> </menuchoice
></term>
    <listitem
><para
><action
>Remplace</action
> le motif recherché par un autre motif.</para
></listitem>
    </varlistentry>

    <varlistentry>
    <term
><menuchoice
><shortcut
> <keycombo action="simul"
>&Ctrl;<keycap
>G</keycap
></keycombo
> </shortcut
> <guimenu
>Édition</guimenu
> <guimenuitem
>Aller à l'offset...</guimenuitem
> </menuchoice
></term>
    <listitem
><para
><action
>Déplace le curseur à la ligne spécifiée.</action
></para
></listitem>
    </varlistentry>

</variablelist>
</sect1>

<sect1 id="view-menu">
<title
>Menu d'affichage</title>

<variablelist>

    <varlistentry>
    <term
><menuchoice
><shortcut
> <keycombo action="simul"
>&Ctrl;<keycap
>+</keycap
></keycombo
> </shortcut
> <guimenu
>Affichage</guimenu
> <guimenuitem
>Zoom avant</guimenuitem
> </menuchoice
></term>
    <listitem
><para
><action
>Augmente la taille de la police de caractères.</action
></para>
    </listitem>
    </varlistentry>

    <varlistentry>
    <term
><menuchoice
><shortcut
> <keycombo action="simul"
>&Ctrl;<keycap
>-</keycap
></keycombo
> </shortcut
> <guimenu
>Affichage</guimenu
> <guimenuitem
>Zoom arrière</guimenuitem
> </menuchoice
></term>
    <listitem
><para
><action
>Diminue la taille de la police de caractères.</action
></para>
    </listitem>
    </varlistentry>

    <varlistentry>
    <term
><menuchoice
><guimenu
>Affichage</guimenu
> <guimenuitem
>Afficher les caractères non imprimables</guimenuitem
> </menuchoice
></term>
    <listitem
><para
><action
>Active ou désactive l'affichage des caractères non imprimables.</action
> Si l'affichage est désactivé, un caractère de substitution est affiché aux places correspondantes dans la colonne caractères.</para
></listitem>
    </varlistentry>

    <varlistentry>
    <term
><menuchoice
><shortcut
> <keycap
>F11</keycap
> </shortcut
> <guimenu
>Affichage</guimenu
> <guimenuitem
>Afficher l'offset des lignes</guimenuitem
> </menuchoice
></term>
    <listitem
><para
><action
>Active ou désactive l'affichage de l'offset sur un panneau à gauche.</action
></para
></listitem>
    </varlistentry>


    <varlistentry>
    <term
><menuchoice
><guimenu
>Affichage</guimenu
> <guisubmenu
>Afficher des valeurs ou des caractères</guisubmenu
> </menuchoice
></term>
    <listitem
><para
><action
>Sélectionne quelles interprétations des octets sont affichées.</action
> Les valeurs possibles sont :</para>
    <itemizedlist>
    <listitem
><para
><guimenuitem
>Valeurs</guimenuitem
></para>
    </listitem>
    <listitem
><para
><guimenuitem
>Caractères</guimenuitem
></para
></listitem>
    <listitem
><para
><guimenuitem
>Valeurs et caractères</guimenuitem
></para
></listitem>
    </itemizedlist>
    </listitem>
    </varlistentry>

    <varlistentry>
    <term
><menuchoice
><guimenu
>Affichage</guimenu
> <guisubmenu
>Encodage des valeurs</guisubmenu
> </menuchoice
></term>
    <listitem
><para
><action
>Sélectionne l'encodage des valeurs</action
>, parmi :</para>
    <itemizedlist>
    <listitem
><para
><guimenuitem
>Hexadécimal</guimenuitem
></para
></listitem>
    <listitem
><para
><guimenuitem
>Décimal</guimenuitem
></para
></listitem>
    <listitem
><para
><guimenuitem
>Octal</guimenuitem
></para
></listitem>
    <listitem
><para
><guimenuitem
>Binaire</guimenuitem
></para
></listitem>
    </itemizedlist>
    </listitem>
    </varlistentry>

    <varlistentry>
    <term
><menuchoice
><guimenu
>Affichage</guimenu
> <guisubmenu
>Encodage des caractères</guisubmenu
> </menuchoice
></term>
    <listitem
><para
><action
>Sélectionne l'encodage des caractères</action
>, à partir du sous-menu. </para>
    </listitem>
    </varlistentry>
    <!--FIXME missing Set Bytes per Line, Set Bytes per Group-->
    <varlistentry>
    <term
><menuchoice
><guimenu
>Afficher</guimenu
> <guisubmenu
>Disposition dynamique</guisubmenu
> </menuchoice
></term>
    <listitem
><para
><action
>Définit les règles pour la disposition de l'affichage des données.</action
> Ceci définit combien d'octets sont affichés par ligne, en fonction de la largeur de l'affichage. Les règles possibles sont :</para>
    <itemizedlist>
    <listitem
><para
><guimenuitem
>Aucun redimensionnement</guimenuitem
> : la disposition est fixée selon le nombre actuel d'octets par ligne et n'est pas adaptée à une modification de la taille de l'affichage.</para>
    </listitem>
    <listitem
><para
><guimenuitem
>Ne regrouper que les groupes complets</guimenuitem
> : place autant d'octets que possible par ligne, tant que les groupes d'octets sont complets. </para
></listitem>
    <listitem
><para
><guimenuitem
>Actif</guimenuitem
>: similaire au précédent mais permet aussi les groupes incomplets d'octets.</para
></listitem>
    </itemizedlist>
    </listitem>
    </varlistentry>

    <varlistentry>
    <term
><menuchoice
><guimenu
>Affichage</guimenu
> <guisubmenu
>Mode d'affichage</guisubmenu
> </menuchoice
></term>
    <listitem
><para
><action
>Sélectionne la disposition de l'affichage</action
>, parmi :</para>
    <itemizedlist>
    <listitem
><para
><guimenuitem
>Colonnes</guimenuitem
> : les interprétations en valeurs et caractères sont affichées en disposition classique, chacune dans une colonne séparée.</para
></listitem>
    <listitem
><para
><guimenuitem
>Lignes</guimenuitem
> : l'interprétation en caractères d'un octet est directement affichée sous l'interprétation en valeurs.</para
></listitem>
    </itemizedlist>
    </listitem>
    </varlistentry>

    <varlistentry>
    <term
><menuchoice
><shortcut
> <keycombo action="simul"
>&Ctrl;&Maj;<keycap
>T</keycap
></keycombo
> </shortcut
> <guimenu
>Afficher</guimenu
> <guimenuitem
>Scinder Horizontalement</guimenuitem
> </menuchoice
></term>
    <listitem
><para
><action
>Scinder la zone d'affichage avec l'affichage actuellement sélectionné en deux parties et ajouter une copie de l'affichage courant à la nouvelle zone sur le bas.</action
></para
></listitem>
    </varlistentry>

    <varlistentry>
    <term
><menuchoice
><shortcut
><keycombo action="simul"
>&Ctrl;&Maj;<keycap
>L</keycap
></keycombo
></shortcut
><guimenu
>Afficher</guimenu
><guimenuitem
>Scinder Verticalement</guimenuitem
> </menuchoice
></term>
    <listitem
><para
><action
>Scinder la zone d'affichage avec l'affichage actuellement sélectionné en deux parties et ajouter une copie de l'affichage courant à la nouvelle zone sur la droite.</action
></para
></listitem>
    </varlistentry>

    <varlistentry>
    <term
><menuchoice
><shortcut
> <keycombo action="simul"
>&Ctrl;&Maj;<keycap
>R</keycap
></keycombo
> </shortcut
> <guimenu
>Afficher</guimenu
> <guimenuitem
>Fermer la zone d'affichage</guimenuitem
> </menuchoice
></term>
    <listitem
><para
><action
>Fermer la zone d'affichage avec l'affichage actuellement sélectionné.</action
></para
></listitem>
    </varlistentry>

    <varlistentry>
    <term
><menuchoice
><guimenu
>Afficher</guimenu
> <guimenuitem
>Afficher le profil</guimenuitem
> </menuchoice
></term>
    <listitem
><para
>La configuration d'affichage peut être enregistrée séparément des profils d'affichage. Le profil actuellement sélectionné peut être mis à jour directement à partir de la configuration actuelle d'affichage ou un nouveau profil peut être créé à partir de ceux-ci. Tous les profils d'affichage peuvent être gérés grâce à une boîte de dialogue disponible à partir de <menuchoice
><guimenu
>Configuration</guimenu
><guimenuitem
>Gérer les profils d'affichage...</guimenuitem
></menuchoice
>.</para
></listitem>
    </varlistentry>

</variablelist>
</sect1>

<sect1 id="windows-menu">
<title
>Menu des fenêtres</title>

    <para
>Fournit une liste des vues actuelles. La fenêtre active est sélectionnée.</para>

</sect1>

<sect1 id="bookmarks-menu">
<title
>Menu des signets</title>

    <para
>Plusieurs signets peuvent être positionnés pour un seul tableau d'octets. Chaque tableau d'octets a son propre ensemble de signets, et l'ensemble approprié est affiché en bas du menu <guimenu
>Signets</guimenu
>. Choisissez un signet à partir du menu pour déplacer le curseur et la vue sur celui-ci. <note
><para
>Les signets ne sont actuellement que temporaires et donc, non enregistrés, si vous fermez une table d'octets ou le programme principal.</para
></note
></para>

<variablelist>
    <varlistentry>
    <term
><menuchoice
><shortcut
> <keycombo action="simul"
>&Ctrl;<keycap
>B</keycap
></keycombo
> </shortcut
> <guimenu
>Signets</guimenu
> <guimenuitem
>Ajouter un signet</guimenuitem
> </menuchoice
></term>
    <listitem
><para
>Ajoute un signet pour l'emplacement dans le tableau d'octets.</para
></listitem>
    </varlistentry>

    <varlistentry>
    <term
><menuchoice
><shortcut
> <keycombo action="simul"
>&Ctrl;&Maj;<keycap
>B</keycap
></keycombo
> </shortcut
> <guimenu
>Signets</guimenu
> <guimenuitem
>Supprimer le signet</guimenuitem
> </menuchoice
></term>
    <listitem
><para
><action
>Supprime le signet courant.</action
> Cette commande n'est disponible que si le curseur est à un emplacement associé à un signet.</para
></listitem>
    </varlistentry>

    <varlistentry>
    <term
><menuchoice
><guimenu
>Signets</guimenu
> <guimenuitem
>Supprimer tous les signets</guimenuitem
> </menuchoice
></term>
    <listitem
><para
><action
>Vide la liste des signets.</action
></para
></listitem>
    </varlistentry>

    <varlistentry>
    <term
><menuchoice
><shortcut
> <keycombo action="simul"
>&Alt;<keycap
>Haut</keycap
></keycombo
> </shortcut
> <guimenu
>Signets</guimenu
> <guimenuitem
>Aller au signet précédent</guimenuitem
> </menuchoice
></term>
    <listitem
><para
><action
>Déplace le curseur au signet précédent.</action
></para
></listitem>
    </varlistentry>

    <varlistentry>
    <term
><menuchoice
><shortcut
> <keycombo action="simul"
>&Alt;<keycap
>Bas</keycap
></keycombo
> </shortcut
> <guimenu
>Signets</guimenu
> <guimenuitem
>Aller au signet suivant</guimenuitem
> </menuchoice
></term>
    <listitem
><para
><action
>Déplace le curseur au signet suivant.</action
></para
></listitem>
    </varlistentry>

</variablelist>
</sect1>

<sect1 id="tools-menu">
<title
>Menu des outils</title>

    <para
>Fournit une liste des outils installés. Active ou désactive l'affichage de chacun des outils. Une description détaillée de chacun des outils est disponible dans la section <link linkend="tools"
>Outils</link
>.</para>
</sect1>

<sect1 id="settings-menu">
<title
>Menu de configuration</title>

<variablelist>
    <varlistentry>
    <term
><menuchoice
><guimenu
>Configuration</guimenu
> <guimenuitem
>Configurer les profils d'affichage</guimenuitem
> </menuchoice
></term>
    <listitem
><para
>Ouvre une boîte de dialogue pour créer, modifier, supprimer et définir un profil d'affichage par défaut.</para
></listitem>
    </varlistentry>

    <varlistentry>
    <term
><menuchoice
><guimenu
>Configuration</guimenu
> <guimenuitem
>Afficher la barre d'outils</guimenuitem
> </menuchoice
></term>
    <listitem
><para
><action
>Active ou désactive l'affichage de la barre d'outils située sous la barre de menus.</action
></para
></listitem>
    </varlistentry>

    <varlistentry>
    <term
><menuchoice
><guimenu
>Configuration</guimenu
> <guimenuitem
>Afficher la barre d'état</guimenuitem
> </menuchoice
></term>
    <listitem
><para
><action
>Active ou désactive l'affichage de la barre d'état.</action
></para
></listitem>
    </varlistentry>

    <varlistentry>
    <term
><menuchoice
><shortcut
> <keycombo action="simul"
>&Ctrl;&Maj;<keycap
>F</keycap
></keycombo
> </shortcut
> <guimenu
>Configuration</guimenu
> <guimenuitem
>Mode Plein écran</guimenuitem
> </menuchoice
></term>
    <listitem
><para
><action
>Active ou désactive le mode plein écran.</action
></para
></listitem>
    </varlistentry>

    <varlistentry>
    <term
><menuchoice
><guimenu
>Configuration</guimenu
> <guimenuitem
>Configurer les raccourcis clavier...</guimenuitem
> </menuchoice
></term>
    <listitem
><para
>Modifie les raccourcis clavier pour les actions.</para
></listitem>
    </varlistentry>

    <varlistentry>
    <term
><menuchoice
><guimenu
>Configuration</guimenu
> <guimenuitem
>Configurer les barres d'outils...</guimenuitem
> </menuchoice
></term>
    <listitem
><para
>Contrôle le contenu de la barre d'outils.</para
></listitem>
    </varlistentry>

</variablelist>

</sect1>

<sect1 id="help-menu">
<title
>Menu d'aide</title>
&help.menu.documentation; </sect1>



<sect1 id="toolbar"
><title
>Barre d'outils</title>
    <para
>La barre d'outils contient les icônes associées aux commandes suivantes :</para>

    <note
><para
>(Toutes se comportent à l'identique de celles situées dans le menu)</para
></note>

    <itemizedlist>
    <listitem
><para
><guiicon
>Nouveau</guiicon
></para
></listitem>
    <listitem
><para
><guiicon
>Ouvrir</guiicon
></para
></listitem>
    <listitem
><para
><guiicon
>Enregistrer</guiicon
></para
></listitem>
    <listitem
><para
><guiicon
>Enregistrer sous</guiicon
></para
></listitem>
    <listitem
><para
><guiicon
>Annuler</guiicon
></para
></listitem>
    <listitem
><para
><guiicon
>Refaire</guiicon
></para
></listitem>
    <listitem
><para
><guiicon
>Couper</guiicon
></para
></listitem>
    <listitem
><para
><guiicon
>Copier</guiicon
></para
></listitem>
    <listitem
><para
><guiicon
>Coller</guiicon
></para
></listitem>
    <listitem
><para
><guiicon
>Chercher</guiicon
></para
></listitem>
    <listitem
><para
><guiicon
>Chercher le suivant</guiicon
></para
></listitem>
    </itemizedlist>

</sect1>

</chapter>

<chapter id="credits">
    <title
>Remerciements et licence</title>

    <para
>&okteta; </para>

    <!--List all the copyright holders here-->
    <para
>Copyright du programme 2006-2012 par &Friedrich.Kossebau; &Friedrich.Kossebau.email;</para>

    <para
>Copyright de la documentation 2008, 2010 par &Friedrich.Kossebau; &Friedrich.Kossebau.email;, &Alex.Richardson; &Alex.Richardson.email;</para>

    <para
>Traduction française par &XavierBesnard;, &StanislasZeller;, &JeanJacquesFinazzi;  et Hervé Boulogne <email
>herve.boulogne@gmail.com</email
>.</para
> 
&underFDL; &underGPL; </chapter>

<!-- !!!do not change ANYTHING after this line!!!! -->

<appendix id="installation">
    <title
>Installation</title>

    <sect1 id="getting-kapp">
        <title
>Comment obtenir &okteta;</title>
&install.intro.documentation; </sect1>

    <sect1 id="Compilation">
        <title
>Compilation et installation</title>
&install.compile.documentation; </sect1>
</appendix>

&documentation.index;
</book>
<!--
Local Variables:
mode: sgml
sgml-minimize-attributes:nil
sgml-general-insert-case:lower
sgml-omittag:t
sgml-shorttag:t
sgml-namecase-general:t
sgml-always-quote-attributes:t
sgml-indent-step:0
sgml-indent-data:nil
sgml-parent-document:nil
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->
