BastNic's blog

Tag :

LDAP

Fil des billets

Franciser phpLDAPadmin

phpLDAPadmin est une interface web d'administration d'annuaires LDAP. Vous pouvez l'installer par la commande

sudo aptitude install phpldapadmin

Et la documentation sur les annuaires OpenLDAP se trouve sur le wiki ubuntu-fr. Néanmoins je ne parlerais ici que de sa traduction et non de son utilisation.

 46 /* The language setting. If you set this to 'auto', phpLDAPadmin will attempt
 47    to determine your language automatically. Otherwise, available lanaguages
 48    are: 'ct', 'de', 'en', 'es', 'fr', 'it', 'nl', and 'ru'
 49    Localization is not complete yet, but most strings have been translated.
 50    Please help by writing language files. See lang/en.php for an example. */
 51 //$config->custom->appearance['language'] = 'auto';

D'après l'aide, pour passer l'interface en français il faut décommenter la ligne et mettre fr. Mais tel quel, ça ne marche pas !

Analysons le problème : Sur Ubuntu, le paquet installe par défaut les fichiers dans /etc/phpldapadmin/ pour les fichiers de conf et templates et dasn /usr/share/phpldapadmin/ pour les fichiers systèmes. Le passage que j'ai cité ci-dessus se trouve dans /etc/phpldapadmin/config.php.

Fichier /usr/share/phpldapadmin/lib/common.php, ligne 121 :

121     # Grab the language file configured in config.php
122     if ($language != null) {
123         if (strcmp($language,'english') == 0)
124             $language = 'en_GB';
125         $language_file = LANGDIR.$language ;
126         
127         # Set language
128         putenv('LANG='.$language); # e.g. LANG=de_DE
129         setlocale(LC_ALL,$language.".UTF-8"); # set LC_ALL to de_DE
130         bindtextdomain('messages',LANGDIR);
131         bind_textdomain_codeset('messages','UTF-8');
132         textdomain('messages');
133         header('Content-type: text/html; charset=UTF-8', true);
134     }

On constate dans ce bout de code que les instructions sur la langue doit-être du type 'fr_FR' plutôt que 'fr'.

Fichier /etc/phpldapadmin/config.php, ligne 51

  51  $config->custom->appearance['language'] = 'fr_FR';

Update du 3/06 : En fait il existe une méthode auto_lang justement pour passer la langue de "fr" à "fr_FR". Du coup la modification devient.

Fichier /usr/share/phpldapadmin/lib/common.php, ligne 125 :

125         $language = auto_lang($language);

Malgrès cette correction, phpLDAPadmin n'est toujours pas en français.
Heureusement, bien que ce soit assez peu documenté sur Internet, on trouve assez facilement qu'il manque ligne 129 une précision sur le codage du texte. phpLDAPadmin est tout en UTF-8, on en conclut donc qu'il faut ajouter :

Fichier /usr/share/phpldapadmin/lib/common.php, ligne 129 :

129         setlocale(LC_ALL,$language.".UTF-8"); # set LC_ALL to de_DE

On recharge la page, et tout est maintenant en français.

Rapport de bug : Bug 118322 signalé sur le launchpad.


LDAP - Administration système

Je l'ai... Maintenant il ne me reste plus qu'à tout comprendre et mettre en pratique.

Je trouve que les informations sur LDAP ne sont vraiment pas claires sur Internet : j'ai passé des demi-journées entières à essayer d'à la fois comprendre le principe et le fonctionnement. J'ignore encore ce que vaut ce livre, mais je pense qu'au moins ça me clarifiera les idées. Et comme je vais en avoir fortement (et forcément) besoin pour le boulot, ça ne peut-être que du bonus.

Je confronterais le contenu du livre avec l'article sur openLDAP du wiki ubuntu-fr.org. Qui sait, peut-être que j'aurais même le niveau pour le compléter un peu (j'en doute).

Bon dimanche aprem à tous, bonnes vacances aux heureux étudiant de Bordeaux 1 et une petite prière sur la météo qu'il fera sur Saint Médard dans deux heures (sortie roller prévue).