lundi 2 février 2009

[spip] Modifier les traductions par défaut de Spip

Pour de nombreux textes génériques dans tout site web, spip propose des traductions déjà faites pour la partie privée. Celles-ci sont disponibles dans la partie privée > configuration > gestion des langues > fichiers de langue. Elles se présentent ainsi : <:accueil_du_site:> et puis la traduction en face.

Pour les modifier, nous allons créer, s'il n'existe pas déjà, un fichier de langue que nous allons appeler local_lang.php (local_en.php pour l'anglais, par exemple, ou local_fr.php pour le français, selon la langue que l'on souhaite modifier) et enregistrer dans /squelettes/lang/. Si ce fichier existe déjà, on va simplement ajouter les codes correspondants à celui-ci et spip les prendra en compte : en effet celui-ci prend en compte d'abord les fichiers local_lang.php, puis ceux par défaut.

Dans le fichier local_lang.php vierge, on va placer le code suivant :

<?php

// This is a SPIP language file -- Ceci est un fichier langue de SPIP
$GLOBALS[$GLOBALS['idx_lang']] = array(

// Correction des traductions par defaut de spip
'accueil_du_site' => 'Accueil du site',
'page_precedente' => 'page précédente',
'page_suivante' => 'page suivante'

);
?>


On va insérer les traductions entre les deux parenthèses. Pour chaque traduction on va dire :
'accueil_du_site' => 'Accueil du site',
sauf pour la dernière :
'plan_site' => 'Plan du site'
La différence ? Il n'y a pas de virgule à la fin... c'est très important, car mettre une virgule à la fin de la dernière ligne peut planter tout le site. Autre détail, il faut encoder les accents façon HTML : &eacute; pour faire un é par exemple. Sinon nous retrouverons des erreurs dans le texte traduit. Cette erreur-là aussi peut être à l'origine d'un plantage du site entier...

Aussi, l'idéal est de commenter ces lignes largement, en commençant les lignes où il y a des commentaires par //, car ce fichier peut devenir très long.

Donc, pour modifier la traduction par défaut de <:accueil_du_site:>, on repère d'abord la ligne dans les fichiers de langue visibles dans l'interface privée, puis on vient la traduire dans le fichier local_lang.php.

0 commentaires: