Une place pour une véritable innovation. Partagez vos propres utilitaires créés avec la communauté Manjaro.
Questions et discussions sur la programmation et le codage.
Répondre

Problème d'accès au Desktop en multi-langues!

#1Messageil y a 11 mois

Bonjour,

Dans le cadre du script d'installation de l'IDE QB64 que j'ai écrit, j'ai, à la demande de l'utilisateur, la possibilité de céer un lanceur de QB64 depuis son bureau.

Et ce script est aussi destiné à désinstaller QB64.

La création de ce lanceur est faite par la série de commandes suivantes :

MYUSERNAME="fnux" ### ou votre nom d'utilisateur
DESKTOP_NAME="Desktop" ### ou le nom approprié de la langue utilisée
cp /opt/qb64/qb64.desktop "/home/$MYUSERNAME/DESKTOP_NAME/" ### jusque là, ça va, le starter est créé
chmod +x "/home/$MYUSERNAME/$DESKTOP_NAME/qb64.desktop" ### là ça coince
chown $MYUSERNAME:root /home/$MYUSERNAME/$DESKTOP_NAME/qb64.desktop ### et là aussi

Pour supprimer ce lanceur, je commence par rechercher s'il existe par et s'il est présent je fais simplement :

QB64_STARTER=$(find /home/$MYUSERNAME/$DESKTOP_NAME -type f name "qb64.desktop" | wc -l) ### là, le starter n'est pas détecté
if [ "$QB64_STARTER" != 0 ]
  then
    rm -R "/home/$MYUSERNAME/$DESKTOP_NAME/qb64.desktop" ### et là, ça ne fonctionne pas, le starter n'est pas supprimé.
fi

Cela se passe très bien en Anglais, Allemand, Espagnol, Français, Italien ou Russe dans la mesure ou le nom du dossier "Desktop" n'est traduit que par un seul mot comme par exemple en français "Bureau" ou en espagnol "Escritorio" ou encore en Allemand "Schreibtisch" etc.

Mais là où j'ai un problème est avec les langues dans les quelles le nom du bureau est traduit en plusieurs mots: exemple en portugais le mot "Desktop" est traduit par "Área de Trabalho".

En effet, lorsque je crée le lanceur, il est bien créé sur le bureau mais j'obtiens les messages suivants :

chmod: nao e possivel acessar '/home/fnux/Área' : Arquivo ou diretorio nao encontrado
chmod: nao e possivel acessar 'de' : Arquivo ou diretorio nao encontrado
chmod: nao e possivel acessar 'Trabalho/qb64.desktop' : Arquivo ou diretorio nao encontrado
chown: nao e possivel acessar '/home/fnux/Área' : Arquivo ou diretorio nao encontrado
chown: nao e possivel acessar 'de' : Arquivo ou diretorio nao encontrado
chown: nao e possivel acessar 'Trabalho/qb64.desktop' : Arquivo ou diretorio nao encontrado

Et lorsque je veux supprimer ce lanceur (et il est bien présent) j'obtiens les messages suivants:

find: "/home/fnux/Área ": Arquivo ou diretorio nao encontrado
find: "de": Arquivo ou diretorio nao encontrado
find: "Trabalho": Arquivo ou diretorio nao encontrado

Et le lanceur n'est pas supprimé alors qu'il est bien présent et qu'il a bien été détecté!

Manifestement, le nom "Área de Trabalho" est alors découpé en trois mots différents ce qui implique l'impossibilité des commandes chmod, chown et find de s'exécuter.

Que dois-je faire pour que ces 3 mots ne composent qu'un seul et unique mot ?

Merci d'avance de votre aide car je suis bien coincé. :merci::maître:

Cordialement.

PS: ce script disponible en Anglais, Français, Allemand, Russe et Portugais est disponible ici : http://www.as2.com/qb64/index.html
Modifié en dernier par Fnux le 24 Déc 2016, 10:16, modifié 1 fois.

Problème d'accès au Desktop en multi-langues!

#2Messageil y a 11 mois

'LLo,

A la louche, j'essaierai de coller des " " autour du nom/variable qui contiendra des espaces dans le qb64.desktop original que tu copies ou comme suit :
cp /opt/qb64/qb64.desktop "/home/$MYUSERNAME/"DESKTOP_NAME"/" ### jusque là, ça va, le starter est créé

Problème d'accès au Desktop en multi-langues!

#3Messageil y a 11 mois

Bonjour fassil, :salut:

fassil a écrit :'LLo,

A la louche, j'essaierai de coller des " " autour du nom/variable qui contiendra des espaces dans le qb64.desktop original que tu copies ou comme suit :
cp /opt/qb64/qb64.desktop "/home/$MYUSERNAME/"DESKTOP_NAME"/" ### jusque là, ça va, le starter est créé

:merci::merci::merci:

Il y a des jours où je ferai mieux d'aller jouer à la pétanque plutôt que de vouloir écrire du sh ! :rigole:

En fait, je le savais (et je le fais d'ailleurs à d'autres endroits du script) mais sur ce coup là, j'avais complètement oublié de mettre les " " !

Encore :merci::maître:

Joyeuses fêtes de Noël.

Répondre