Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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... sad 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

Re : Substitution de chaine dans menu gtkdialog [RESOLU]

...

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 :

cat test.sh a écrit :
#!/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. smile
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