#1 Le 10/04/2011, à 15:54
- argolance
Substitution de chaine dans menu gtkdialog [RESOLU]
Bonjour,
config_file:
Name=Application English name
Name[fr]=Nom français de l'application
Name[de]=...
Name[es]=...
...
Le script ci-dessous va chercher la valeur de la variable LANGUE dans le fichier de configuration ci-dessus.
Note: l'anglais étant la langue par défaut, "[en]" n'est pas spécifié mais seulement" Name=..." et c'est là que le bât blesse...
#! /bin/sh
export test_GUI="<window>
<menubar>
<menu label=\"TEST\">
<menuitem label=\"$(grep '^Name\['$LANGUE\]' /path/config_file | cut -d'=' -f2) ${label="$(grep '^Name=' /path/config_file | cut -d'=' -f2)"}\">
</menuitem>
</menu>
</menubar>
</window>"
gtkdialog --program=test_GUI --center
Avec le script ci-dessus, le label anglais du menu se substitue bien au label de la langue courante si la variable n'est pas renseignée soit parce que la valeur n’existe pas dans le fichier de configuration ou soit tout simplement parce que la langue courante de l'utilisateur est l'anglais.
Mais en revanche, j'ai les deux labels qui s'affichent simultanément lorsque la valeur existe... et je ne veux évidemment que celui de la langue courante...
Je sais pas si je suis suffisamment clair là?
Merci de votre attention!
Cordialement.
Dernière modification par argolance (Le 29/07/2012, à 10:29)
Hors ligne
#2 Le 25/07/2012, à 15:38
- argolance
Hors ligne
#3 Le 28/07/2012, à 15:43
- Postmortem
Re : Substitution de chaine dans menu gtkdialog [RESOLU]
Salut,
Si tu n'as pas eu réponse à ta question :
#!/bin/sh LANGUE=$1 NOM_APPLI=$(grep "^Name\[$LANGUE\]=" config_file | cut -d = -f 2) if [ -z "$NOM_APPLI" ] then NOM_APPLI=$(grep "^Name=" config_file | cut -d = -f 2) fi export test_GUI="<window> <menubar> <menu label=\"TEST\"> <menuitem label=\"$NOM_APPLI\"> </menuitem> </menu> </menubar> </window>" echo "$test_GUI"
$ ./test.sh
<window>
<menubar>
<menu label="TEST">
<menuitem label="Application English name">
</menuitem>
</menu>
</menubar>
</window>
$ ./test.sh en
<window>
<menubar>
<menu label="TEST">
<menuitem label="Application English name">
</menuitem>
</menu>
</menubar>
</window>
$ ./test.sh fr
<window>
<menubar>
<menu label="TEST">
<menuitem label="Nom français de l'application">
</menuitem>
</menu>
</menubar>
</window>
Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »
Hors ligne
#4 Le 29/07/2012, à 08:59
- argolance
Re : Substitution de chaine dans menu gtkdialog [RESOLU]
Hello,
Merci pour la réponse.
Mon script a plusieurs menus et chacun des menus comporte bon nombre d'entrées, rendant difficile l'approche envisagée au départ et du coup, la solution que tu proposes. Elle peut néanmoins être utile pour régler des problèmes du même genre...
J'ai donc choisi d'intervenir non pas en "aval" mais en "amont", en (re)construisant tout simplement des fichiers de configuration adaptés.
Bon dimanche.
Cordialement.
Hors ligne