Midilibre.fr
Tous les blogs | Alerter le modérateur| Envoyer à un ami | Créer un Blog


06/10/2009

XDG Base Directory Specification - French - Traduction Française

67-t256.pngVoici ma traduction de la spécification sur les répertoires de base de Freedesktop.org. Le but de ces spécifications n'est pas de standardiser les interfaces, mais d'harmoniser les échanges entre les différents environnement. Comme les procédures de copier/coller, raccourcis clavier..... tout est défini de manière à avoir une unification et des codes communs : une harmonisation de l'infrastructure. De nombreux programmes utilisent ces spécifications, gnome, kde, X.Org, mais également telepathy, gstreamer, .... Ci dessous la traduction de la partie sur les répertoires de base.

Version : 0.6
Source : http://standards.freedesktop.org/basedir-spec/latest/inde...
Auteur : Waldo Bastian
Traduction : Stéphane de la Linuxerie


Introduction

Plusieurs spécifications portent sur les fichiers et les formats de fichiers. Cette spécification précise où doivent se trouver ces fichiers en définissant un ou plusieurs répertoires référents où les fichiers devraient se trouver.

Les bases

La spécification XDG Base Directory Specification est basé sur les concepts suivants:

- Un seul répertoire relatif aux informations propre à l' utilisateur doit contenir ces fichiers. Il est défini par la variable  d'environnement  $XDG_DATA_HOME.

- Un seul répertoire pour les fichiers de configuration. Ce répertoire est défini par la variable  d'environnement  $XDG_CONFIG_HOME.

- Une liste de répertoire classé par ordre de préférence pour indiquer ou les fichiers de données doivent être cherché. Cette liste est définie par la variable   d'environnement  $XDG_DATA_DIRS.

- Une liste de répertoire classé par ordre de préférence pour indiquer ou les fichiers de configuration doivent être cherché. Cette liste est définie par la variable  d'environnement   $XDG_CONFIG_DIRS.

- Un seul répertoire pour indiquer l'endroit ou doivent se  trouver les informations non essentiel (caché) propre à l'utilisateur. Ce répertoire est défini par la variable d'environnement  $XDG_CACHE_HOME.

Les variables d'environnement

$XDG_DATA_HOME défini le répertoire où les fichiers de données de l'utilisateur doivent être stockés. Si cette variable est vide ou non rempli, un  répertoire par défaut équivalent à  $HOME/.local/share devra être utilisé.

$XDG_CONFIG_HOME défini le répertoire ou doivent se trouver les fichiers de configurations de l'utilisateur. Si cette variable est vide ou non rempli, un  répertoire équivalent à $HOME/.config devra être utilisé.

$XDG_DATA_DIRS défini une liste, par ordre de préférence, des répertoires qui peuvent contenir les fichiers de données de l'utilisateur en plus du répertoire $XDG_DATA_HOME. Les répertoires de cette variable doivent être séparé par deux points ":". Si cette variable est vide ou non rempli, une valeur égale à  /usr/local/share/:/usr/share/ devra être utilisé

$XDG_CONFIG_DIRS défini une liste, par ordre de préférence, des répertoires  qui peuvent contenir les fichiers de données de l'utilisateur en plus du répertoire $XDG_CONFIG_HOME. Les répertoires de cette variable doivent être séparé par deux points ":". Si cette variable est vide ou non rempli, une valeur égale à /etc/xdg devra être utilisé

L'ordre des répertoire reflète leur importance : le premier est le plus important. Quand la même information est définie dans plusieurs endroits, c'est la définition du répertoire le plus important qui prime. Le répertoire défini par $XDG_DATA_HOME est le plus important des répertoires définis dans $XDG_DATA_DIRS. Le répertoire défini par $XDG_CONFIG_HOME est le plus important des répertoires définis dans $XDG_CONFIG_DIRS..

$XDG_CACHE_HOME défini le répertoire ou doivent se trouver les fichiers de données non essentiel de l'utilisateur. Si cette variable est vide ou non rempli, un  répertoire équivalent à $HOME/.cache devra être utilisé.

Référencement de cette spécification

D'autres spécifications peuvent référencer cette spécification en spécifiant l'endroit d'un fichier de donnée comme $XDG_DATA_DIRS/repertoire/fichier

Ce qui implique :

- Un tel fichier devra être installé dans $datadir/repertoire/fichier avec /usr/share par défaut pour $datadir

- Une version spécifique de l'utilisateur d'un fichier de donnée peut être crée dans $XDG_DATA_HOME/repertoire/fichier en prenant les valeurs par défaut si $XDG_DATA_HOME n'est pas défini.

- Les recherches de fichiers de données devront se faire dans ./repertoire/fichier sur tout les répertoires indiqués dans $XDG_DATA_HOME et $XDG_DATA_DIRS. Si une des variables n'est pas rempli ou est vide, les variables par défaut comme défini par cette spécification pourront être utilisées.

D'autres spécifications peuvent référencer cette spécification en spécifiant l'endroit d'un fichier de donnée comme $XDG_CONFIG_DIRS/repertoire/fichier

Ce qui implique :

- Un tel fichier devra être installé dans $sysconfdir/repertoire/fichier avec /etc par défaut pour $sysconfdir

- Une version spécifique de l'utilisateur d'un fichier de donnée peut être crée dans $XDG_CONFIG_HOME/repertoire/fichier en prenant les valeurs par défaut si $XDG_CONFIG_HOME n'est pas défini.

- Les recherches de fichiers de données devront se faire dans ./repertoire/fichier sur tout les répertoires indiqués dans $XDG_CONFIG_HOME et $XDG_CONFIG_DIRS. Si une des variables n'est pas rempli ou est vide, les variables par défaut comme défini par cette spécification pourront être utilisées.

Dans le cas ou, lorsque l'on essaie d'écriture un fichier, le répertoire de destination n'existe pas, il devra être prévu une tentative de création avec les permissions à 0700. Si le répertoire existe les permissions ne doivent pas être changé. L'application doit tenir compte du fait que le fichier puisse ne pas être écrit, soit parce que le répertoire n'existe pas et ne peut être crée, soit pour tout autres raisons. Dans un tel cas, l'application pourra présenter un message d'erreur à l'utilisateur.

Dans le cas ou, lorsque l'on essaie de lire un fichier, pour n'importe quelle raison il n'est pas accéssible (par ex: lorsque le répertoire n'existe pas, le fichier n'existe pas ou l'utilisateur n'est pas autorisé à ouvrir le fichier) Alors le traitement de ce fichier devra être passé. Si le fichier n'est absolument pas accessible l'application pourra présenter un message d'erreur à l'utilisateur.

Une spécification qui se référe à  $XDG_DATA_DIRS ou $XDG_CONFIG_DIRS devra définir le comportement quand un fichier est trouvé dans plusieurs répertoires. Elle pourra, par exemple, définir que seul le fichier dans le plus important des répertoires soit utilisé, ou, autre exemple, elle pourra définir une fusion des informations issues des différents fichiers.