Ipcop 1.4.7 et les fichiers languages

Forum traitant de la distribution sécurisée montante nommée IP cop et basée sur la distribution Smoothwall. C'est à l'heure actuelle le forum le plus actif du site.

Modérateur: modos Ixus

Ipcop 1.4.7 et les fichiers languages

Messagepar Franck78 » 09 Juil 2005 22:55

Chers développeurs d'addon,
Cher utilisateurs Ipcop,

La version 1.4.7 va bientôt sortir et elle comporte une évolution importante dans la gestion des fichiers de langues des addons.

La modification des fichiers de langue (fr.pl en.pl, ...) est désormais fortement déconseillée. Nous avons mis en place un mécanisme simplifiant votre tâche pendant l'installtion mais aussi la notre pendant les upgrade d'ipcop !

Il y aura donc moins d'addons cassés par un upgrade.

Utilisateurs
Pour utiliser un addon 'non convertit', terminez son installation par de cette ligne de commande:
Code: Tout sélectionner
perl -e "require '/var/ipcop/lang.pl'; &Lang::BuildCacheLang"

Remarque: une fois suffit. Installez tous les add-ons 'non convertit' d'abord, terminez soit par la commande, soit par un add-on convertit qui fera le boulot !


Développeurs
Le principe retenu est le suivant: dépot d'un fichier dans un répertoire commun. Seul le programme d'installation nécessite une adaptation.

Le format du fichier déposé reste identique au fichier .pl de base.
Code: Tout sélectionner
# french langue for addon xyz
%tr=(%tr, 'key' => 'value' );


L'addon doit fournir obligatoirement le fichier anglais. Les autres langues sont optionnelles.

Le nom du fichier est de la forme "name.XX.pl"
name: plutôt le nom de votre addon pour ne pas écraser autre chose...
XX: le code pays de la langue (en, fr, it, nl, de, .....)

Dés que votre installateur a déposé ses fichiers de langues, il faut qu'ipcop 'recompile' tout ça ! Ceci est fait par la commande

Code: Tout sélectionner
# Tell ipcop to uses newly added lang files
perl -e "require '/var/ipcop/lang.pl'; &Lang::BuildCacheLang"

La procédure place les permissions adaptées.

Pendant le développement d'un addon, l'appel de la procédure précédente est génante. Pour l'éviter, il faut effacer le ficher cache qui existe dans /var/run
Par exemple "/var/run/cache-lang.pl.fr" ou tous :!:
En son absence, Ipcop construit à la volée le tableau %tr .

Le code ipcop pour plus de détails ici

Extrait de l'installeur de mon addon

Code: Tout sélectionner
version=`awk '{ print $2 }' /etc/issue`

[ ! -e /var/ipcop/general-functions.pl ] && PRE143=1
[ ! -d /var/ipcop/addon-lang ] && PRE147=1

if [ -z $PRE143 ]; then
    echo "SquidGuard install on IPCOP $version and latter"
else
    echo "SquidGuard install on IPCOP $version or lower"
fi
....
# Add languages
for lang in fr de en nl ru it; do
    echo "Add language '$lang'"
    cat short-version >> squidGuard-$lang
    if [ -z $PRE147 ]; then
        f=/var/ipcop/addon-lang/squidGuard.$lang.pl
        echo "# This is squidGuard lan file for $lang"    >$f
        echo "%tr=(%tr,"                                >>$f
        cat squidGuard-$lang                            >>$f
        echo "'sg_dummy_key' => 'to use last comma ');"    >>$f
    else # old way to install lang
        f=/var/ipcop/langs/$lang.pl
        [ ! -e $backup/$lang.pl ] && cp -p $f $backup/
        sed "/^.*'sg_/d"     $f > $f.tmp  #remove existing lines
        sed -e "/%tr,/ r squidGuard-$lang" $f.tmp > $f
        rm $f.tmp
    fi
done
[ -z $PRE147 ] &&  perl -e "require '/var/ipcop/lang.pl'; &Lang::BuildCacheLang"



Franck
Franck
L'art de poser une question sur ce site afin d'obtenir la réponse
A LIRE
Avatar de l’utilisateur
Franck78
Amiral
Amiral
 
Messages: 5625
Inscrit le: 20 Fév 2004 01:00
Localisation: Paris

Retour vers IPCop

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit et 1 invité