Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

WD8 - Projets Multi-langues

5 réponses
Avatar
Réal Phil
Bonsoir,

Ce message s'adresse aux d=E9veloppeurs de Projets multi-langues.

Je d=E9clare plusieurs variables (forc=E9ment Globales) dans
l'Initilisation du Projet.
Certaines de ces variables contiennent des textes dans les deux
langues.

Une s=E9lection ou un Bouton depuis le Menu Principal permet un
changement de langue.
Par exemple, pour changer du francais =E0 l'anglais je fais;
Nation(3); Utilise("Menu Principal")

Tout semble fonctionner =E0 merveille puisque la tr=E8s grande majorit=E9
des textes sont traduit conform=E9ment. Mais les variables chaines
d=E9clar=E9es dans l'Intro du Projet ne passent pas automatiquement =E0
l'anglais. Et je ne veux pas devoir d=E9clarer ces variables dans
l'ouverture de la fen=EAtre "Menu Principal" puisque j'en ai besoin d=E8s
le d=E9marrage du Projet - puisque certaines validations importantes
(avec messages de rejet) sont faites avant m=EAme l'affichage du Menu.

Par contre si je compile le Projet dans une seule langue, tout est Ok.
(c'est un peu normal)
--------------------------
Comme solution possible, j'ai pens=E9 d=E9clarer les variables en
question dans l'intro du projet - mais sans les textes. J'appelle
ensuite (depuis l'intro) une proc=E9dure du genre Proc_MesTextes() qui
contiendrait ces variables chaines avec les textes dans les deux
langues.
Et sur le clic du bouton pour changer =E0 l'anglais le code devient;
Nation(3); Utilise("Menu Principal"); Proc_MesTextes()
--------------------------

Mais je ne penses pas que cela fonctionne parce que quand je tente de
changer directement une variable juste apr=E8s =ABNation(3);
Utilise("Menu Principal")=BB le contenu de la variable ne change pas.

Comment faire ?

5 réponses

Avatar
joseph cvjetic
Salut
Réinitialiser les variables chaines après le clic sur le bouton de
changement de langue
ou relancer l'application avec un selon que nation() J Cvjetic

"Réal Phil" a écrit dans le message de news:

Bonsoir,

Ce message s'adresse aux développeurs de Projets multi-langues.

Je déclare plusieurs variables (forcément Globales) dans
l'Initilisation du Projet.
Certaines de ces variables contiennent des textes dans les deux
langues.

Une sélection ou un Bouton depuis le Menu Principal permet un
changement de langue.
Par exemple, pour changer du francais à l'anglais je fais;
Nation(3); Utilise("Menu Principal")

Tout semble fonctionner à merveille puisque la très grande majorité
des textes sont traduit conformément. Mais les variables chaines
déclarées dans l'Intro du Projet ne passent pas automatiquement à
l'anglais. Et je ne veux pas devoir déclarer ces variables dans
l'ouverture de la fenêtre "Menu Principal" puisque j'en ai besoin dès
le démarrage du Projet - puisque certaines validations importantes
(avec messages de rejet) sont faites avant même l'affichage du Menu.

Par contre si je compile le Projet dans une seule langue, tout est Ok.
(c'est un peu normal)
--------------------------
Comme solution possible, j'ai pensé déclarer les variables en
question dans l'intro du projet - mais sans les textes. J'appelle
ensuite (depuis l'intro) une procédure du genre Proc_MesTextes() qui
contiendrait ces variables chaines avec les textes dans les deux
langues.
Et sur le clic du bouton pour changer à l'anglais le code devient;
Nation(3); Utilise("Menu Principal"); Proc_MesTextes()
--------------------------

Mais je ne penses pas que cela fonctionne parce que quand je tente de
changer directement une variable juste après «Nation(3);
Utilise("Menu Principal")» le contenu de la variable ne change pas.

Comment faire ?
Avatar
[Bernard Vessiot]
Gilles avait écrit le 12/12/2006 :
Réal Phil avait soumis l'idée :
Bonsoir,

Ce message s'adresse aux développeurs de Projets multi-langues.

Je déclare plusieurs variables (forcément Globales) dans
l'Initilisation du Projet.



Comment faire ?



Perso, je n'utilise pas la gestion des langues Windev.

J'ai fait mon propre fichier XML, qui contient les traductions pour les
fenêtres, contrôles, checkbox, etc...

Et à l'ouverture de la fenêtre, je parcours la collection de contrôles
contenu dans la fenêtre et je récupère automatiquement son (ses) libellé(s).

Avantages : multiples

A) Pas besoin de recompiler pour ajouter une langue
B) Pas besoin de recompiler pour changer un libellé.
C) Pas besoin d'ouvrir à nouveau une fenêtre quand je change de langue dans
l'application.

Inconvénients : Je n'en vois pas, tout est centralisé, et visible d'un coup
d'oeil.



salut,
c'est interessant !
cependant est-ce que cela n'alourdit pas le chargement de l'appli,
surtout dans le cas ou il y a beaucoup de fenetres ?
j'imagine en plus que tu dois gérer les erreurs : un utilisateur qui
viande le fichier xml( si si ça arrive !) ou qui supprime une ligne et
la, ça doit être galère...

--
[Bernard Vessiot]
34980 Saint Gély du Fesc

Avatar
[Bernard Vessiot]
Gilles a présenté l'énoncé suivant :
[Bernard Vessiot] a formulé ce mardi :
Gilles avait écrit le 12/12/2006 :
Réal Phil avait soumis l'idée :
Bonsoir,

Ce message s'adresse aux développeurs de Projets multi-langues.

Je déclare plusieurs variables (forcément Globales) dans
l'Initilisation du Projet.



Comment faire ?



Perso, je n'utilise pas la gestion des langues Windev.

J'ai fait mon propre fichier XML, qui contient les traductions pour les
fenêtres, contrôles, checkbox, etc...

Et à l'ouverture de la fenêtre, je parcours la collection de contrôles
contenu dans la fenêtre et je récupère automatiquement son (ses)
libellé(s).

Avantages : multiples

A) Pas besoin de recompiler pour ajouter une langue
B) Pas besoin de recompiler pour changer un libellé.
C) Pas besoin d'ouvrir à nouveau une fenêtre quand je change de langue
dans l'application.

Inconvénients : Je n'en vois pas, tout est centralisé, et visible d'un
coup d'oeil.



salut,
c'est interessant !
cependant est-ce que cela n'alourdit pas le chargement de l'appli, surtout
dans le cas ou il y a beaucoup de fenetres ?
j'imagine en plus que tu dois gérer les erreurs : un utilisateur qui viande
le fichier xml( si si ça arrive !) ou qui supprime une ligne et la, ça doit
être galère...




Le fichier est chargé en ram, ce n'est pas quelques extraitchaine qui
prennent un temp de folie, je n'ai pas remarqué de ralentissement.

Je n'ai pas ajouté de gestion d'erreur, mais on peut le faire, crypter le
fichier, etc... tout est possible.

Si le libellé n'est pas trouvé, le controle affiche 'translation error', je
n'ai rien géré d'autre que cela.



merci!

--
[Bernard Vessiot]
34980 Saint Gély du Fesc

Avatar
Olivier Priser
Salut à tous,

j'utilise plus ou moins cette méthode là également en Webdev.
A une exception : les différents libellés sont stockés dans une table avec une colonne(rubrique) par langue et un
identifiant entier.
Au chargement du projet, je charge la bonne colonne en fonction de la langue et je stocke la totalité des résultats dans
un tableau (array) de chaines.
Les indices du tableau sont les mêmes que les identifiants entier de la table et donc on s'y retrouve très bien.

Par contre, il faut quand même créer les boutons images dans les différentes langues mais bon, ça va ;-) !

Bon dev à tous !

Oliv

"[Bernard Vessiot]" a écrit dans le message de news:
Gilles a présenté l'énoncé suivant :
[Bernard Vessiot] a formulé ce mardi :
Gilles avait écrit le 12/12/2006 :
Réal Phil avait soumis l'idée :
Bonsoir,

Ce message s'adresse aux développeurs de Projets multi-langues.

Je déclare plusieurs variables (forcément Globales) dans
l'Initilisation du Projet.



Comment faire ?



Perso, je n'utilise pas la gestion des langues Windev.

J'ai fait mon propre fichier XML, qui contient les traductions pour les
fenêtres, contrôles, checkbox, etc...

Et à l'ouverture de la fenêtre, je parcours la collection de contrôles
contenu dans la fenêtre et je récupère automatiquement son (ses)
libellé(s).

Avantages : multiples

A) Pas besoin de recompiler pour ajouter une langue
B) Pas besoin de recompiler pour changer un libellé.
C) Pas besoin d'ouvrir à nouveau une fenêtre quand je change de langue
dans l'application.

Inconvénients : Je n'en vois pas, tout est centralisé, et visible d'un
coup d'oeil.



salut,
c'est interessant !
cependant est-ce que cela n'alourdit pas le chargement de l'appli, surtout
dans le cas ou il y a beaucoup de fenetres ?
j'imagine en plus que tu dois gérer les erreurs : un utilisateur qui viande
le fichier xml( si si ça arrive !) ou qui supprime une ligne et la, ça doit
être galère...




Le fichier est chargé en ram, ce n'est pas quelques extraitchaine qui
prennent un temp de folie, je n'ai pas remarqué de ralentissement.

Je n'ai pas ajouté de gestion d'erreur, mais on peut le faire, crypter le
fichier, etc... tout est possible.

Si le libellé n'est pas trouvé, le controle affiche 'translation error', je
n'ai rien géré d'autre que cela.



merci!

--
[Bernard Vessiot]
34980 Saint Gély du Fesc

Avatar
Réal Phil
Salut tout le monde,

Et merci pour toutes vos réponses.

Voici mes conclusions après analyse des différentes possibilitées;
o Ce serait trop long d'implémenter mon propre système multi-langue
à ce stade du projet.
o Finalement ma propre suggestion (voir le premier message de ce
thread) fonctionne très bien.
C'est juste un peu agaçant à faire et je dois modifier un peu la
logique pour certaines variables conditionnelles.

Je tenais quand même à savoir si d'autres solutions existaient et si
les versions plus récentes réglaient le problème.

Bonne journée.

Réal