/usr/share/help/fr/integration-guide/index.docbook is in gnome-devel-docs 3.8.1-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 | <?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
<book id="index" lang="fr">
<bookinfo>
<title>Intégration d'un logiciel existant dans GNOME</title>
<subtitle>Guide pour les fournisseurs de logiciels indépendants</subtitle>
<abstract role="description"><para>Guide pour les fournisseurs de logiciels indépendants</para></abstract>
<authorgroup>
<author>
<firstname>Rosanna</firstname>
<surname>Yuen</surname>
<affiliation>
<address>
<email>zana@gnome.org</email>
</address>
</affiliation>
</author>
<author role="maintainer">
<firstname>Federico</firstname>
<surname>Mena-Quintero</surname>
<affiliation>
<address>
<email>federico@gnu.org</email>
</address>
</affiliation>
</author>
<author>
<firstname>Mike</firstname>
<surname>Hearn</surname>
<affiliation>
<address>
<email>mike@navi.cx</email>
</address>
</affiliation>
</author>
</authorgroup>
<copyright>
<year>2005, 2006</year>
<holder>Rosanna Yuen, Federico Mena-Quintero, Mike Hearn</holder>
</copyright>
<revhistory>
<revision>
<revnumber>0.6</revnumber>
<date>2006/September/19</date>
<revdescription>
<para>
Extended the icon guidelines.
</para>
</revdescription>
</revision>
<revision>
<revnumber>0.5</revnumber>
<date>2006/September/18</date>
<revdescription>
<para>
Integrated the content of Rosanna Yuen's first article on
freedesktop.org standards.
</para>
</revdescription>
</revision>
<revision>
<revnumber>0.0</revnumber>
<date>June 2005</date>
<revdescription>
<para>
Initial version of this document.
</para>
</revdescription>
</revision>
</revhistory>
<!-- Added with permission of federico -->
<legalnotice id="legalnotice">
<para>Permission vous est donnée de copier, distribuer et/ou modifier ce document selon les termes de la Licence GNU Free Documentation License, Version 1.1 ou ultérieure publiée par la Free Software Foundation sans section inaltérable, sans texte de première page de couverture ni texte de dernière page de couverture. Vous trouverez un exemplaire de cette licence en suivant ce <ulink type="help" url="ghelp:fdl">lien</ulink> ou dans le fichier COPYING-DOCS fourni avec le présent manuel.</para>
<para>Ce manuel fait partie de la collection de manuels GNOME distribués selon les termes de la licence de documentation libre GNU. Si vous souhaitez distribuer ce manuel indépendamment de la collection, vous devez joindre un exemplaire de la licence au document, comme indiqué dans la section 6 de celle-ci.</para>
<para>La plupart des noms utilisés par les entreprises pour distinguer leurs produits et services sont des marques déposées. Lorsque ces noms apparaissent dans la documentation GNOME et que les membres du projet de Documentation GNOME sont informés de l'existence de ces marques déposées, soit ces noms entiers, soit leur première lettre est en majuscule.</para>
<para>
DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT ARE PROVIDED UNDER
THE TERMS OF THE GNU FREE DOCUMENTATION LICENSE WITH THE FURTHER
UNDERSTANDING THAT:
<orderedlist>
<listitem>
<para>
DOCUMENT IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION,
WARRANTIES THAT THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT
IS FREE OF DEFECTS MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR
NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY, ACCURACY, AND
PERFORMANCE OF THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT
IS WITH YOU. SHOULD ANY DOCUMENT OR MODIFIED VERSION PROVE
DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL WRITER, AUTHOR
OR ANY CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING,
REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES
AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY DOCUMENT OR
MODIFIED VERSION OF THE DOCUMENT IS AUTHORIZED HEREUNDER EXCEPT
UNDER THIS DISCLAIMER; AND
</para>
</listitem>
<listitem>
<para>
UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER IN TORT
(INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE AUTHOR,
INITIAL WRITER, ANY CONTRIBUTOR, OR ANY DISTRIBUTOR OF THE DOCUMENT
OR MODIFIED VERSION OF THE DOCUMENT, OR ANY SUPPLIER OF ANY OF SUCH
PARTIES, BE LIABLE TO ANY PERSON FOR ANY DIRECT, INDIRECT, SPECIAL,
INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING,
WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE,
COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER DAMAGES OR
LOSSES ARISING OUT OF OR RELATING TO USE OF THE DOCUMENT AND
MODIFIED VERSIONS OF THE DOCUMENT, EVEN IF SUCH PARTY SHALL HAVE
BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES.
</para>
</listitem>
</orderedlist>
</para>
</legalnotice>
</bookinfo>
<preface id="preface">
<title>Préface</title>
<para>GNOME est un projet de conception d'un bureau complet et d'une plateforme de développement entièrement basés sur des logiciels libres. De nombreuses entreprises, gouvernements, écoles, institutions et individus ont déjà installé le bureau GNOME sur leur infrastructure. Si vous êtes un développeur de logiciels tiers (« fournisseur de logiciels indépendants » (Independent Software Vendor : <acronym>ISV</acronym>) ou « développeur de logiciels indépendants » (Independent Software Developer : <acronym>ISD</acronym>), si vous ne le faites pas dans un but commercial), il se peut que vous désiriez vous assurer que votre logiciel existant fonctionne correctement sous GNOME. Ce guide explique comment intégrer un logiciel existant dans GNOME, sans pour autant réécrire ce logiciel pour qu'il utilise explicitement les librairies et les outils de développement de la plateforme GNOME.</para>
<para>Ce guide est utile dans les situations suivantes :</para>
<itemizedlist>
<listitem>
<para>Vous êtes un développeur ou un distributeur de logiciels qui possède une application qui n'est pas spécialement conçue pour fonctionner sous GNOME, mais vous voulez vous assurer qu'elle fonctionne convenablement dans un bureau GNOME.</para>
</listitem>
<listitem>
<para>Vous êtes un administrateur système d'une institution qui déploie des bureaux GNOME pour ses utilisateurs. Vous possédez également des applications pré-existantes ou internes et vous désirez que vos utilisateurs de GNOME soient capables d'accéder convenablement à ces applications.</para>
</listitem>
<listitem>
<para>Vous êtes en train d'écrire une application purement GNOME et vous avez besoin d'une liste de contrôle avec les éléments de base à vérifier pour s'assurer que votre application s'intègre bien avec le reste du bureau GNOME.</para>
</listitem>
</itemizedlist>
<para>D'une manière générale, ce guide traite de l'intégration de logiciels existants dans un bureau GNOME. D'un autre côté, si vous pensez écrire un nouveau logiciel, nous vous encourageons à le développer complètement en choisissant GNOME comme plateforme cible ; veuillez vous référer au <ulink url="http://developer.gnome.org">site des développeurs GNOME</ulink> pour plus d'informations.</para>
<para>Une des préoccupations majeures de GNOME est l'interaction avec l'utilisateur. Les utilisateurs doivent être à l'aise dans leur environnement informatique, c'est-à-dire avoir un bureau complet et un ensemble d'applications qui fonctionnent conjointement de manière cohérente. Avec relativement peu de travail, des applications qui n'ont pas été explicitement conçues pour GNOME peuvent être modifiées pour une utilisation aisée dans un bureau GNOME.</para>
<section id="structure">
<title>Structure de ce guide</title>
<para>Ce guide se présente sous la forme d'une liste de tâches à réaliser afin d'intégrer un logiciel existant dans GNOME. Ce guide présente ces tâches à peu près par ordre d'importance. Par exemple, la tâche consistant à ajouter votre application dans les menus du bureau GNOME apparaît avant celle consistant à ajouter la prise en charge du glisser-déposer. De plus, ce guide possède un <link linkend="apx-integration-checklist">appendice contenant une liste de contrôle d'intégration</link> pour vous aider à estimer votre travail d'intégration.</para>
</section>
<section id="standards">
<title>Standards et freedesktop.org</title>
<para>De nombreuses tâches d'intégration figurant dans ce guide reposent sur des standards qui ne sont pas uniquement applicables à GNOME. D'autres projets de bureau, comme le bureau <ulink url="http://www.kde.org">KDE</ulink>, utilisent également ces standards : si vous intégrez vos applications dans GNOME, vous n'aurez que peu ou pas de tâches supplémentaires à effectuer pour les faire fonctionner correctement avec ces autres environnements.</para>
<para>La création d'une application parfaite procure des sensations merveilleuses. Que votre application soit grosse ou petite, vous voulez que le bureau la reconnaisse et que celle-ci interagisse d'une manière appropriée. Avec les nombreux bureaux disponibles actuellement, il vaut mieux que votre application s'intègre bien avec le plus grand nombre possible d'entre eux. Même si aucune règle officielle n'a été adoptée, il existe un ensemble de spécifications disponibles sur <emphasis>freedesktop.org</emphasis>.</para>
<para>Bien que n'étant pas un organisme officiel de création de standards, freedesktop.org maintient un ensemble de lignes directrices informelles mais couramment acceptées. Lorsque vous suivez ces directives, elles permettent aux applications d'être intégrées dans les bureaux les respectant.</para>
</section>
</preface>
<chapter id="basic-integration">
<title>Intégration de base</title>
<para>Ce chapitre vous enseigne les étapes essentielles à suivre pour intégrer un programme dans le bureau GNOME. Ces étapes sont les suivantes :</para>
<itemizedlist>
<listitem>
<para>permettre à l'utilisateur de lancer votre application en la faisant apparaître dans les menus du tableau de bord du bureau ou en utilisant n'importe quelle autre procédure de lancement du bureau ;</para>
</listitem>
<listitem>
<para>permettre au bureau de savoir quels types de fichiers créés par les utilisateurs nécessitent le lancement de votre application ;</para>
</listitem>
<listitem>
<para>permettre au bureau de savoir comment afficher les icônes appropriées pour votre programme et quels sont les fichiers créés par celui-ci.</para>
</listitem>
</itemizedlist>
<section id="desktop-files">
<title>Fichiers desktop : positionnement de votre application dans les menus du bureau</title>
<para>Pour lancer des applications à partir de GNOME, les utilisateurs cliquent sur des icônes sur leur bureau ou sélectionnent les applications à exécuter dans un menu. Par conséquent, la première étape pour l'intégration d'un programme existant dans GNOME est de l'<firstterm>enregistrer</firstterm> parmi l'ensemble des applications que les utilisateurs peuvent lancer.</para>
<para>Contrairement à Windows ou MacOS, les menus utilisateurs sous GNOME sont automatiquement construits à partir de la liste des applications enregistrées. Chaque application déclarée indique un ensemble de catégories auquelles elle appartient et le système de configuration du menu les trie et les range. Ce mécanisme suit les standards freedesktop.org d'entrée et de menu desktop.</para>
<note><para>Bien que très fréquent pour les autres bureaux, la création de vos propres sous-menus spécifiques à votre application n'est pas recommandée. Associez plutôt un seul élément de menu à chaque application fournie. Les éléments supplémentaires tels que les fichiers d'aide, les fichiers LISEZMOI ou les liens vers votre site Web devraient être intégrés dans l'application elle-même.</para></note>
<para>Sous GNOME et les autres bureaux obéissant aux directives freedesktop.org, une application est enregistrée dans les menus du bureau grâce à un <firstterm>fichier desktop</firstterm> qui est un fichier texte possédant l'extension <filename>.desktop</filename>. Ce fichier contient une liste des configurations de votre application. Le bureau récupère les informations dans ce fichier et les utilise pour :</para>
<itemizedlist>
<listitem>
<para>placer l'application dans le <guimenu>Menu principal</guimenu>. Pour trouver une liste des catégories valides, regardez les <ulink url="http://standards.freedesktop.org/menu-spec/latest/">Spéficications du menu du bureau</ulink> de FreeDesktop.org.</para>
</listitem>
<listitem>
<para>lister l'application dans la boîte de dialogue <application>Lancer une application</application>,</para>
</listitem>
<listitem>
<para>créer les lanceurs adéquats dans le menu ou sur le bureau,</para>
</listitem>
<listitem>
<para>associer le nom à la description de l'application, </para>
</listitem>
<listitem>
<para>utiliser l'icône appropriée,</para>
</listitem>
<listitem>
<para>reconnaître les types MIME pris en charge pour l'ouverture des fichiers.</para>
</listitem>
</itemizedlist>
<para>Pour ajouter une entrée de menu pour votre application, créez un fichier desktop. Son nom doit être unique et il n'y a pas de limitation de longueur, évitez donc les abréviations et n'hésitez pas à inclure des mots marquants. Cependant, ne mettez pas d'espaces ni de caractères internationaux dans le nom du fichier. Par exemple, « societetoto-peintre-pro.desktop » serait un bon choix de nom de fichier mais « stpp.desktop » en serait un mauvais, tout comme « societetoto peintre pro.desktop ». Le fichier doit être codé en UTF-8 et doit ressembler au modèle suivant :</para>
<programlisting><![CDATA[
[Desktop Entry]
Name=FooCorp Painter Pro
Exec=foocorp-painter-pro
Icon=foocorp-painter-pro
Type=Application
Categories=GTK;GNOME;Utility;
]]></programlisting>
<para>Ces fichiers desktop contiennent des métadonnées à propos de l'application et jouent un rôle central pour l'intégration du programme dans GNOME et les autres bureaux respectant les standards. Le modèle présenté ici est le plus basique qui soit. Le fichier peut être traduit dans d'autres langues afin que le nom de votre application puisse apparaître dans la langue maternelle de l'utilisateur.</para>
<para>
Place this file in the
<literal>/usr/share/applications</literal> directory so that
it is accessible by everyone, or in
<literal>~/.local/share/applications</literal> if you only
wish to make it accessible to a single user. Which is used
should depend on whether your application is installed
systemwide or into a user's home directory. GNOME monitors
these directories for changes, so simply copying the file to
the right location is enough to register it with the
desktop. <footnote>
<para>
Note that the
<literal>~/.local/share/applications</literal> location is
not monitored by versions of GNOME prior to version 2.10
or on Fedora Core Linux, prior to version 2.8. These
versions of GNOME follow the now-deprecated vfolder
standard, and so desktop files must be installed to
<literal>~/.gnome2/vfolders/applications</literal>. This
location is not supported by GNOME 2.8 on Fedora Core nor
on upstream GNOME 2.10 so for maximum compatibility with
deployed desktops, put the file in both locations.
</para>
<para>
Note that the KDE Desktop requires one to run
<command>kbuildsycoca</command> to force a refresh of the
menus.
</para>
<!-- MH: Actually I think some distros merge the old vfolders
directory in so placing items in both locations will cause
duplicate menu entries. Autopackage seems to have a program
called "vfolder-magic" which modifies the vfolder
definition in the users home directory. The comment at the
top says:
* Program that adds or removes a desktop entry in
* ~/.gnome2/vfolders/applications.vfolder-info. This seems to be
* necessary with gnome 2.8, at least.
-->
</footnote>
<!-- MH: Though this is a GNOME ISV guide, as so much of the
basic integration work is also compatible with KDE it would
be wise in my opinion to mention KDE and observe any quirks
that are necessary to integrate correctly with that
too. There's no real reason not to, ISVs want the maximum
userbase possible (indeed, is this not what separates ISVs
from your average open source project?).
-->
</para>
<para>Tous les fichiers desktop actifs doivent respecter le même format. Un exemple minimal de fichier desktop est affiché ici : <xref linkend="ex-sample-desktop-file"/>. Le fichier est découpé en sections, chacune commençant par un descripteur de section entre crochets. Dans cet exemple, seule une section est affichée car c'est celle qui est indispensable à l'intégration du programme dans le bureau. Dans chaque section, la partie de la ligne avant le signe égal est la <firstterm>clé</firstterm> alors que la seconde moitié est la <firstterm>valeur</firstterm>. Pour chaque ligne, une explication est fournie dans le <xref linkend="tb-desktop-file"/>.</para>
<note>
<para>Excepté pour la première ligne servant à identifier le fichier desktop, l'ordre des lignes est sans importance. Dans <xref linkend="ex-sample-desktop-file"/>, la ligne <command>Type=Application</command> pourrait être la seconde, la cinquème ou la dernière ligne sans incidence sur le résultat.</para>
<para>Cependant, les clés sont sensibles à la casse. <command>Type=Application</command> n'est pas identique à <command>type=Application</command> ou <command>TYPE=Application</command>.</para>
</note>
<example id="ex-sample-desktop-file">
<title>Exemple de fichier desktop</title>
<screen>
[Desktop Entry]
Type=Application
Encoding=UTF-8
Name=Nom de l'application exemple
Comment=Une application exemple
Exec=programme
Icon=programme.png
Terminal=false
</screen>
</example>
<table id="tb-desktop-file">
<title>Explication ligne par ligne</title>
<tgroup cols="2">
<colspec colnum="1" colname="line" colwidth="1"/>
<colspec colnum="2" colname="desc" colwidth="1"/>
<thead>
<row>
<entry>Ligne</entry>
<entry>Description</entry>
</row>
</thead>
<tbody>
<row>
<entry><command>[Desktop Entry]</command></entry>
<entry>C'est la première ligne de tous les fichiers desktop et l'en-tête de la section identifiant le bloc de paires clé-valeur associé au bureau. Elle est nécessaire pour que le bureau reconnaisse le fichier de manière correcte.</entry>
</row>
<row>
<entry><command>Type=Application</command></entry>
<entry>Tells the desktop that this desktop file pertains to
an application. Other valid values for this key are
<command>Link</command> and
<command>Directory</command>.</entry>
</row>
<row>
<entry><command>Encoding=UTF-8</command></entry>
<entry>Indique le codage du contenu de ce fichier desktop.</entry>
</row>
<row>
<entry><command>Name=Sample Application Name</command></entry>
<entry>Nom de l'application pour le menu principal et tous les lanceurs.</entry>
</row>
<row>
<entry><command>Comment=A sample application</command></entry>
<entry>Décrit l'application et est utilisé comme infobulle.</entry>
</row>
<row>
<entry><command>Exec=application</command></entry>
<entry>La commande qui lance l'application à partir d'un shell. Elle peut posséder des paramètres.</entry>
</row>
<row>
<entry><command>Icon=application.png</command></entry>
<entry>Le nom de l'icône associée à l'application.</entry>
</row>
<row>
<entry><command>Terminal=false</command></entry>
<entry>Indique si l'application doit s'exécuter dans un terminal.</entry>
</row>
</tbody>
</tgroup>
</table>
<section id="commandline">
<title>Lancement du programme</title>
<para>Si votre application accepte des paramètres en ligne de commande, vous pouvez indiquer ceux-ci en utilisant les champs montrés dans la <xref linkend="tb-exec-params"/>.</para>
<table id="tb-exec-params">
<title>Variables pour l'exécution</title>
<tgroup cols="2">
<colspec colnum="1" colname="line" colwidth="1"/>
<colspec colnum="2" colname="desc" colwidth="1"/>
<thead>
<row>
<entry>Ajouter...</entry>
<entry>Correspond à...</entry>
</row>
</thead>
<tbody>
<row>
<entry><command>%f</command></entry>
<entry>Un nom de fichier unique.</entry>
</row>
<row>
<entry><command>%F</command></entry>
<entry>Plusieurs noms de fichier.</entry>
</row>
<row>
<entry><command>%u</command></entry>
<entry>Une URL unique.</entry>
</row>
<row>
<entry><command>%U</command></entry>
<entry>Plusieurs URL.</entry>
</row>
<row>
<entry><command>%d</command></entry>
<entry>a single directory. Used in conjunction with
<command>%f</command> to locate a file.</entry>
</row>
<row>
<entry><command>%D</command></entry>
<entry>multiple directories. Used in conjunction with
<command>%F</command> to locate files.</entry>
</row>
<row>
<entry><command>%n</command></entry>
<entry>Nom de fichier unique sans chemin.</entry>
</row>
<row>
<entry><command>%N</command></entry>
<entry>Plusieurs noms de fichier sans chemin.</entry>
</row>
<row>
<entry><command>%k</command></entry>
<entry>Un URI ou un nom de fichier local indiquant l'emplacement du fichier desktop.</entry>
</row>
<row>
<entry><command>%v</command></entry>
<entry>Nom du dispositif d'entrée.</entry>
</row>
</tbody>
</tgroup>
</table>
</section>
<section id="internationalization">
<title>Langues étrangères</title>
<para>Pour créer des noms et des commentaires traduits, des lignes supplémentaires pour chaque version traduite doivent être ajoutées. Par exemple, pour ajouter une version suédoise du commentaire, ajouter la ligne suivante :</para>
<para>
<command>
Comment[sv]=Exempelprogramnamn
</command>
</para>
<para>Il n'y a aucune limite au nombre de traductions dans le fichier.</para>
<tip>
<para>Comme il est lourd de maintenir une longue liste de traductions dans un fichier, une meilleure solution pour créer ces traductions est d'utiliser le paquet <application>intltool</application>. Consultez les pages man de <application>intltool-extract</application> et de <application>intltool-merge</application> pour plus d'informations.</para>
</tip>
</section>
<section id="desktop-references">
<title>Références</title>
<para><ulink url="http://standards.freedesktop.org/desktop-entry-spec/latest/index.html">Spécification des entrées desktop</ulink> — Spécifications pour la création d'un fichier desktop.</para>
</section>
</section>
<section id="icons">
<title>Installation d'icônes</title>
<para>Dans le fichier <xref linkend="ex-sample-desktop-file"/>, nous avons indiqué comme icône pour cette application le fichier <filename><replaceable>programme.png</replaceable></filename>. Afin que cela fonctionne, il faut placer ce fichier icône dans le bon répertoire.</para>
<para>Le bureau recherche les icônes dans le sous-répertoire du thème choisi dans <filename>/usr/share/icons/</filename>. Les icônes du programme doivent être au moins disponibles avec une résolution de 48x48 pixels. Placez l'icône dans <filename>/usr/share/icons/hicolor/48x48/apps/</filename>. Il s'agit du répertoire dans lequel le bureau recherche s'il n'y a pas d'icône pour votre programme dans le thème sélectionné. Si vous possédez des icônes à thème, placez-les dans les répertoires appropriés.</para>
<para>Pour intégrer visuellement au mieux votre application au bureau GNOME tout en lui conservant un aspect visuel natif si elle est utilisée sous KDE, Windows XP ou Mac OS X, suivez les <ulink url="http://tango.freedesktop.org/Tango_Icon_Theme_Guidelines">Conseils pour le style Tango</ulink> lorsque vous réalisez vos graphismes. Le document explique divers aspects de la conception d'icônes dont les couleurs, l'éclairage et les tailles. Quelques flux de travaux et des tutoriels en vidéo sont également fournis.</para>
<section id="icons-references">
<title>Références</title>
<para><ulink url="http://standards.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html">Spécification de thème d'icônes</ulink> — Décrit comment installer et concevoir des icônes en respectant un thème.</para>
<para><ulink url="http://standards.freedesktop.org/icon-naming-spec/latest/">Spécification pour la dénomination des icônes</ulink> — Fournit un schéma canonique pour la dénomination des fichiers icône.</para>
<para><ulink url="http://tango.freedesktop.org/Tango_Icon_Theme_Guidelines">Conseils pour le style Tango</ulink> — Donne des explications sur la manière de concevoir artistiquement des icônes propres et « multi-plateformes ».</para>
</section>
</section>
<section id="mime">
<title>Ajout de types MIME</title>
<para>Si votre application peut ouvrir des types MIME spécifiques, vous devez le faire savoir au bureau dans le fichier desktop. Par exemple, si votre application accepte les fichiers <acronym>PNG</acronym>, ajoutez la ligne suivante dans votre fichier desktop :</para>
<para>
<screen>MimeType=image/png</screen>
</para>
<para>Des types MIME supplémentaires peuvent être ajoutés en séparant les différents types par des points-virgules.</para>
<para>Le système connaît déjà un grand nombre de types MIME. Cependant, si vous en créez un vous-même, vous devez faire enregistrer votre type MIME dans la base de données MIME. Dans le répertoire <filename>/usr/share/mime/packages/</filename>, créez un fichier <acronym>XML</acronym> respectant le format de l'<xref linkend="ex-mime-xml"/>.</para>
<example id="ex-mime-xml">
<title>Exemple de fichier pour enregistrer un nouveau type MIME</title>
<screen>
<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
<mime-type type="application/x-<replaceable>example</replaceable>">
<comment>Example file type </comment>
<magic priority="50">
<match value="<replaceable>search-string</replaceable>" type="string" offset="10:140"/>
</magic>
<glob pattern="*.<replaceable>newextension</replaceable>"/>
</mime-type>
</mime-info>
</screen>
</example>
<para>Dans cet exemple, remplacez l'exemple de type MIME par le nom de votre type MIME. La section <firstterm>magic</firstterm> recherche dans les fichiers la chaîne de recherche pour faire l'identification. La ligne <firstterm>glob</firstterm> utilise le suffixe des noms de fichiers pour l'identification.</para>
<tip>
<para>Parce que la commande <command>magic</command> oblige l'ordinateur à ouvrir les fichiers pour rechercher la chaîne, la commande <command>glob</command> est préférable.</para>
</tip>
<para>Une fois que votre nouveau type MIME est correctement décrit dans le fichier, tapez ce qui suit dans un terminal :</para>
<para>
<screen>update-mime-database /usr/share/mime</screen>
</para>
<tip>
<para>Pour plus d'informations sur la manière de faire un bon choix d'extension MIME et d'enregistrer votre type MIME, consultez le site de l'<ulink url="http://www.iana.org/cgi-bin/mediatypes.pl">IANA</ulink>.</para>
</tip>
<section id="mime-references">
<title>Références</title>
<para><ulink url="http://standards.freedesktop.org/shared-mime-info-spec/latest/">Spécification des informations MIME partagées</ulink> — Décrit en détails le système de déclaration MIME.</para>
</section>
</section>
</chapter>
<chapter id="deeper-integration">
<title>Intégration plus complète avec le Bureau</title>
<para>Ce chapitre contient une liste de choses à faire pour permettre à votre application une intégration dans GNOME meilleure que le strict minimum. Par exemple, GNOME est capable de fournir un retour à l'utilisateur pendant que l'application est lancée : vous trouverez comment activer ce retour à la <xref linkend="startup-notification"/>. Si votre logiciel crée des documents ou d'autres données « imprimables », vous pouvez installer un utilitaire pour la création de vignettes pour permettre au gestionnaire de fichiers de GNOME de créer des vignettes spécifiques à votre programme.</para>
<section id="startup-notification">
<title>Notification au démarrage</title>
<para>Bien que les champs detaillés à la <xref linkend="desktop-files"/> fournissent suffisamment d'informations pour que le bureau reconnaisse votre programme, il existe d'autres champs qui peuvent être utiles dans votre cas particulier. L'un de ces champs est celui de la <firstterm>notification au démarrage</firstterm>.</para>
<para>Quand la notification de démarrage est activée, le tableau de bord et le curseur indiquent à l'utilisateur que l'application a été lancée. Lorsque l'application apparaît à l'écran, le tableau de bord et le curseur retournent dans leur état normal.</para>
<para>Pour faire savoir au lanceur que votre application prend en charge la notification du démarrage, ajoutez la ligne suivante à votre fichier desktop :</para>
<para>
<command>
StartupNotify=true
</command>
</para>
<para>Cette commande dans le fichier desktop permet au bureau d'utiliser n'importe quelle notification au démarrage existante pour votre application ou votre toolkit. La plupart des toolkits modernes fonctionnent de manière transparente avec le système de notification. Si vous n'utilisez pas un toolkit moderne, le lien sur les <ulink url="http://freedesktop.org/wiki/Standards_2fstartup_2dnotification_2dspec">spécifications pour la notification au démarrage</ulink> vous explique en détail ce dont vous avez besoin pour la mettre en place vous-même.</para>
<tip>
<para>Indépendemment du toolkit, il y a un type d'applications pour lequel vous devez gérer manuellement les retours. Les applications capables de contrôle à distance (celles qui disent à un processus existant d'ouvrir une nouvelle fenêtre au lieu de lancer un nouveau processus) ne peuvent utiliser le mécanisme intégré. La valeur de l'environnement DESKTOP_LAUNCH_ID doit être transmise par votre application et celle-ci doit notifier l'ouverture de cette fenêtre au système de lancement. Si vous utilisez <application>GTK+</application>, la documentation de <function>gdk_notify_startup_complete()</function> contient quelques informations supplémentaires.</para>
</tip>
<section id="startup-notification-references">
<title>Références</title>
<para><ulink url="http://standards.freedesktop.org/startup-notification-spec/startup-notification-latest.txt">Protocole de notification au démarrage</ulink> — Décrit de manière très détaillée comment la notification au démarrage est mise en place dans le système X Window.</para>
</section>
</section>
<section id="thumbnailer">
<title>Installation d'un générateur de vignettes</title>
<para>Le gestionnaire de fichiers GNOME, Nautilus, est capable d'afficher dans ses listes de fichiers des petites vignettes adaptées à chaque fichier à la place des icônes génériques. Par exemple, un document d'un traitement de texte peut prendre l'apparence d'une version miniature de la première page du document. Ceci est utile car cela permet aux utilisateurs d'avoir une petite représentation des données consultables dans leurs fichiers, ce qui peut aider à se souvenir du fichier qu'ils recherchent. Il est possible de rendre capable votre application de créer ces vignettes en quelques étapes simples.</para>
<!-- FIXME: screenshot of Nautilus showing thumbnails -->
<para>Un <firstterm>générateur de vignettes</firstterm> est un programme sans interface graphique dont les valeurs en entrée sont un fichier et une taille en pixels et qui crée une vignette pour ce fichier. GNOME choisit le générateur de vignettes à utiliser sur la base du type MIME du fichier pour lequel il faut générer une vignette. La correspondance entre les types MIME et les générateurs de vignettes est enregistrée comme une série de clés GConf.</para>
<para>Pour chaque type MIME que vous souhaitez prendre en charge, vous devez créer une paire de clés GConf :</para>
<variablelist>
<varlistentry>
<term><literal>/desktop/gnome/thumbnailers/<replaceable>application@x-foo</replaceable>/enable</literal></term>
<listitem>
<para>Type : booléen. Détermine si ce générateur de vignettes doit être utilisé. Vous pouvez activer ou désactiver chaque générateur individuellement. Lorsque vous installez un nouveau générateur de vignettes, vous devez évidement définir la valeur de cette clé à <symbol>true</symbol> (vrai).</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>/desktop/gnome/thumbnailers/<replaceable>application@x-foo</replaceable>/command</literal></term>
<listitem>
<para>Type : chaîne. Il s'agit de la commande que GNOME doit utiliser pour générer une vignette concernant un fichier de type <replaceable>application@x-toto</replaceable>. Par exemple, la valeur pourrait être « <literal>application-x-toto-vignette %i %o %s</literal> ». Voir ci-dessous pour une explication des symboles pourcentage.</para>
</listitem>
</varlistentry>
</variablelist>
<para>Par conséquent, chaque type MIME nécessite deux clés GConf (<literal>enable</literal> et <literal>command</literal>) sous le même chemin. Le nom du chemin peut être obtenu à partir du nom du type MIME en substituant un « <literal>/</literal> » par un « <literal>@</literal> ». Par exemple, un générateur de vignettes pour le type <literal>image/x-mon-format</literal> nécessite deux clés : <literal>/desktop/gnome/thumbnailers/image@x-mon-format/enable</literal> et <literal>/desktop/gnome/thumbnailers/image@x-mon-format/command</literal>.</para>
<para>Dans la clé <literal>command</literal>, GNOME cherche les séquences avec pourcentage et les remplace par leur valeur réelle :</para>
<informaltable frame="none">
<tgroup cols="2">
<tbody valign="top">
<row>
<entry><literal>%i</literal></entry>
<entry>Nom du fichier d'entrée. C'est le fichier que votre générateur de vignettes doit lire.</entry>
</row>
<row>
<entry><literal>%u</literal></entry>
<entry>
Input URI. If your thumbnailer can handle URIs
instead of plain file names, use <literal>%u</literal>
instead of <literal>%i</literal>.
</entry>
</row>
<row>
<entry><literal>%o</literal></entry>
<entry>Nom du fichier de sortie. C'est sous ce nom que votre générateur de vignettes doit écrire l'image vignette au format PNG.</entry>
</row>
<row>
<entry><literal>%s</literal></entry>
<entry>
Size of the thumbnail as a single integer. For
example, if this gets substituted with
<literal>128</literal>, it means that your thumbnailer
should output an image no bigger than 128×128
pixels.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>Soit <literal>%i</literal> soit <literal>%u</literal> doit apparaître dans votre commande et <literal>%o</literal> est également obligatoire. Le terme <literal>%s</literal> est optionnel mais il est recommandé que votre générateur de vignettes y prête attention.</para>
<section>
<title>Informations supplémentaires</title>
<para>Comme paramètre de configuration supplémentaire, vous pouvez activer la clé booléenne <literal>/desktop/gnome/thumbnailers/disable_all</literal> pour désactiver la génération de toutes les vignettes.</para>
</section>
<!-- FIXME: we mentioned the GConf keys, but not how to set them
globally. Do we need to describe how to install
schemas/defaults? -->
</section>
</chapter>
<appendix id="apx-integration-checklist">
<title>Liste de contrôle pour l'intégration</title>
<para>Cet appendice fournit une liste de contrôle des diverses tâches présentées dans ce guide. Vous pouvez utiliser cette liste de contrôle pour vous assurer que votre logiciel est intégré au bureau GNOME au moins à un niveau très élémentaire et également comme ressource pour planifier la continuation de votre travail d'intégration.</para>
<orderedlist>
<listitem>
<para>Est-ce que votre programme apparaît dans les menus du tableau de bord GNOME ?</para>
</listitem>
<listitem>
<para>Est-ce que votre programme possède une icône pour les menus du tableau de bord ou du bureau ? Dans ce cas, possèdent-elles des tailles pré-rendues et une version <acronym>SVG</acronym> redimensionnable ?</para>
</listitem>
<listitem>
<para>Si votre programme peut charger et enregistrer des fichiers, est-ce que les types MIME gérés sont enregistrés ?</para>
</listitem>
<listitem>
<para>Est-ce que votre programme fournit des icônes MIME pour le gestionnaire de fichiers ?</para>
</listitem>
<listitem>
<para>Est-ce que votre programme prend en charge la notification au démarrage afin que GNOME puisse fournir un retour à l'utilisateur pendant que l'application est chargée ?</para>
</listitem>
<listitem>
<para>Si votre programme crée des documents « imprimables », est-ce qu'il installe un générateur de vignettes utilisable par le gestionnaire de fichiers ?</para>
</listitem>
</orderedlist>
</appendix>
<appendix id="apx-acknowledgments">
<title>Remerciements</title>
<para>Un grand merci à Jakub Steiner pour avoir fourni une très belle feuille de style CSS pour la version HTML de ce guide !</para>
</appendix>
</book>
|