Je développe une application multi-langue : Français / Anglais destinée à
être vendu en version soit Française seulement, soit Anglaise seulement ou
bilingue.
Si je force la création d'un exécutable en Anglais seulement, Nation() peut
encore être changé à volonté mais les messages sortent toujours en anglais
SAUF que n'ayant aucun moyen de connaître la langue forcée durant
l'exécution toutes les instructions dans le style...
SI Nation()=5 ALORS Info.Français SINON Info.Anglais
ne fonctionnent pas bien puisque la langue forcée est l'anglais (Nation(3))
et que Nation() peut égaler 5.
Quelqu'un a déjà un truc de détection de la langue forcé?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Real Phil
Réponse à moi-même.
Je ne crois pas qu'une variable Windev existe (si oui, m'en aviser s'il vous plait), alors j'ai trouvé une solution que je publie en cas où cela aiderait quelqu'un d'autre.
Av_Nation est un entier=Nation() NationForcée est un entier=0 // 0 = version non forcée, bilingue Nation(5) // Francais SI "Francais"="Anglais" ALORS NationForcée=3 Nation(3) // Anglais SI "Francais"="Francais" ALORS NationForcée=5 SI NationForcée<>0 ALORS Nation(NationForcée) SINON Nation(Av_Nation)
Info("NationForcée = "+NationForcée)
SI NationForcée<>0 ALORS // Rend invisible le choix du changement de langue dans le Menu Principal MenuSelectMoins("Menu Principal",Configure.Langue) FIN
Notez-bien que la chaîne "Francais" dans SI "Francais" = est traduite avec Control+T et que la section franchise dit "Francais" et la section anglaise dit "Anglais". Sinon cela ne fonctionnerait pas.
Réal Phil
Réponse à moi-même.
Je ne crois pas qu'une variable Windev existe (si oui, m'en aviser s'il vous
plait), alors j'ai trouvé une solution que je publie en cas où cela aiderait
quelqu'un d'autre.
Av_Nation est un entier=Nation()
NationForcée est un entier=0 // 0 = version non forcée, bilingue
Nation(5) // Francais
SI "Francais"="Anglais" ALORS NationForcée=3
Nation(3) // Anglais
SI "Francais"="Francais" ALORS NationForcée=5
SI NationForcée<>0 ALORS Nation(NationForcée) SINON Nation(Av_Nation)
Info("NationForcée = "+NationForcée)
SI NationForcée<>0 ALORS
// Rend invisible le choix du changement de langue dans le Menu Principal
MenuSelectMoins("Menu Principal",Configure.Langue)
FIN
Notez-bien que la chaîne "Francais" dans SI "Francais" = est traduite avec
Control+T et que la section franchise dit "Francais" et la section anglaise
dit "Anglais". Sinon cela ne fonctionnerait pas.
Je ne crois pas qu'une variable Windev existe (si oui, m'en aviser s'il vous plait), alors j'ai trouvé une solution que je publie en cas où cela aiderait quelqu'un d'autre.
Av_Nation est un entier=Nation() NationForcée est un entier=0 // 0 = version non forcée, bilingue Nation(5) // Francais SI "Francais"="Anglais" ALORS NationForcée=3 Nation(3) // Anglais SI "Francais"="Francais" ALORS NationForcée=5 SI NationForcée<>0 ALORS Nation(NationForcée) SINON Nation(Av_Nation)
Info("NationForcée = "+NationForcée)
SI NationForcée<>0 ALORS // Rend invisible le choix du changement de langue dans le Menu Principal MenuSelectMoins("Menu Principal",Configure.Langue) FIN
Notez-bien que la chaîne "Francais" dans SI "Francais" = est traduite avec Control+T et que la section franchise dit "Francais" et la section anglaise dit "Anglais". Sinon cela ne fonctionnerait pas.
Réal Phil
jm
Salut
J'ai créé dans mon appli une fenetre de choix de langage : Le bouton "Valider" contient le code suivant :
Clé_Registre,Valeur_Registre sont des chaînes Langage est une chaîne SI Franc_Select..Visible = Vrai ALORS Langage = "Français" Clé_Registre = RegistreExiste("HKEY_LOCAL_MACHINESOFTWAREGest_Parc") SI Clé_Registre = "0" // La clé Gest_Parc n'existe pas // creation de la clé SI PAS RegistreCréeClé("HKEY_LOCAL_MACHINESOFTWAREGest_Parc") ALORS Erreur("Erreur lors de la création de la clé") RETOUR FIN // écrire une valeur dans la clé SI PAS RegistreEcrit("HKEY_LOCAL_MACHINESOFTWAREGest_Parc","Langue", Langage) ALORS Erreur("Erreur lors l'écriture dans la clé") RETOUR FIN SINON // écrire une valeur dans la clé SI PAS RegistreEcrit("HKEY_LOCAL_MACHINESOFTWAREGest_Parc","Langue", Langage) ALORS Erreur("Erreur lors l'écriture dans la clé") RETOUR FIN FIN SINON Langage = "English" Clé_Registre = RegistreExiste("HKEY_LOCAL_MACHINESOFTWAREGest_Parc") SI Clé_Registre = "0" // La clé Gest_Parc n'existe pas // creation de la clé SI PAS RegistreCréeClé("HKEY_LOCAL_MACHINESOFTWAREGest_Parc") ALORS Erreur("Erreur lors de la création de la clé") RETOUR FIN // écrire une valeur dans la clé SI PAS RegistreEcrit("HKEY_LOCAL_MACHINESOFTWAREGest_Parc","Langue", Langage) ALORS Erreur("Erreur lors l'écriture dans la clé") RETOUR FIN SINON // écrire une valeur dans la clé SI PAS RegistreEcrit("HKEY_LOCAL_MACHINESOFTWAREGest_Parc","Langue", Langage) ALORS Erreur("Erreur lors l'écriture dans la clé") RETOUR FIN FIN FIN Choix_Langue(Langage) //Applique la langue à tout le projet Utilise(Menu) Ferme
La procedure "Choix_Langue" est la suivante :
PROCEDURE Choix_Langue(ChoixLang) Français est un entier=5 Anglais est un entier=3 Espagnol est un entier=7 //la langue est choisie avec le sélecteur ChoixLang SELON ChoixLang CAS "Français" : //français Nation(Français) AUTRE CAS : //anglais Nation(Anglais) FIN
En debut d'appli je vais lire le registre pour connaitre le langage par defaut
A+
JM
"Real Phil" a écrit dans le message de news: L_gRd.16082$
Réponse à moi-même.
Je ne crois pas qu'une variable Windev existe (si oui, m'en aviser s'il vous plait), alors j'ai trouvé une solution que je publie en cas où cela aiderait quelqu'un d'autre.
Av_Nation est un entier=Nation() NationForcée est un entier=0 // 0 = version non forcée, bilingue Nation(5) // Francais SI "Francais"="Anglais" ALORS NationForcée=3 Nation(3) // Anglais SI "Francais"="Francais" ALORS NationForcée=5 SI NationForcée<>0 ALORS Nation(NationForcée) SINON Nation(Av_Nation)
Info("NationForcée = "+NationForcée)
SI NationForcée<>0 ALORS // Rend invisible le choix du changement de langue dans le Menu Principal MenuSelectMoins("Menu Principal",Configure.Langue) FIN
Notez-bien que la chaîne "Francais" dans SI "Francais" = est traduite avec Control+T et que la section franchise dit "Francais" et la section anglaise dit "Anglais". Sinon cela ne fonctionnerait pas.
Réal Phil
Salut
J'ai créé dans mon appli une fenetre de choix de langage :
Le bouton "Valider" contient le code suivant :
Clé_Registre,Valeur_Registre sont des chaînes
Langage est une chaîne
SI Franc_Select..Visible = Vrai ALORS
Langage = "Français"
Clé_Registre = RegistreExiste("HKEY_LOCAL_MACHINESOFTWAREGest_Parc")
SI Clé_Registre = "0" // La clé Gest_Parc n'existe pas
// creation de la clé
SI PAS RegistreCréeClé("HKEY_LOCAL_MACHINESOFTWAREGest_Parc")
ALORS
Erreur("Erreur lors de la création de la clé")
RETOUR
FIN
// écrire une valeur dans la clé
SI PAS
RegistreEcrit("HKEY_LOCAL_MACHINESOFTWAREGest_Parc","Langue", Langage)
ALORS
Erreur("Erreur lors l'écriture dans la clé")
RETOUR
FIN
SINON
// écrire une valeur dans la clé
SI PAS
RegistreEcrit("HKEY_LOCAL_MACHINESOFTWAREGest_Parc","Langue", Langage)
ALORS
Erreur("Erreur lors l'écriture dans la clé")
RETOUR
FIN
FIN
SINON
Langage = "English"
Clé_Registre = RegistreExiste("HKEY_LOCAL_MACHINESOFTWAREGest_Parc")
SI Clé_Registre = "0" // La clé Gest_Parc n'existe pas
// creation de la clé
SI PAS RegistreCréeClé("HKEY_LOCAL_MACHINESOFTWAREGest_Parc")
ALORS
Erreur("Erreur lors de la création de la clé")
RETOUR
FIN
// écrire une valeur dans la clé
SI PAS
RegistreEcrit("HKEY_LOCAL_MACHINESOFTWAREGest_Parc","Langue", Langage)
ALORS
Erreur("Erreur lors l'écriture dans la clé")
RETOUR
FIN
SINON
// écrire une valeur dans la clé
SI PAS
RegistreEcrit("HKEY_LOCAL_MACHINESOFTWAREGest_Parc","Langue", Langage)
ALORS
Erreur("Erreur lors l'écriture dans la clé")
RETOUR
FIN
FIN
FIN
Choix_Langue(Langage)
//Applique la langue à tout le projet
Utilise(Menu)
Ferme
La procedure "Choix_Langue" est la suivante :
PROCEDURE Choix_Langue(ChoixLang)
Français est un entier=5
Anglais est un entier=3
Espagnol est un entier=7
//la langue est choisie avec le sélecteur ChoixLang
SELON ChoixLang
CAS "Français" : //français
Nation(Français)
AUTRE CAS : //anglais
Nation(Anglais)
FIN
En debut d'appli je vais lire le registre pour connaitre le langage par
defaut
A+
JM
"Real Phil" <_pasde_Spam_realp@ultra.ca> a écrit dans le message de news:
L_gRd.16082$3p4.685956@wagner.videotron.net...
Réponse à moi-même.
Je ne crois pas qu'une variable Windev existe (si oui, m'en aviser s'il
vous
plait), alors j'ai trouvé une solution que je publie en cas où cela
aiderait
quelqu'un d'autre.
Av_Nation est un entier=Nation()
NationForcée est un entier=0 // 0 = version non forcée, bilingue
Nation(5) // Francais
SI "Francais"="Anglais" ALORS NationForcée=3
Nation(3) // Anglais
SI "Francais"="Francais" ALORS NationForcée=5
SI NationForcée<>0 ALORS Nation(NationForcée) SINON Nation(Av_Nation)
Info("NationForcée = "+NationForcée)
SI NationForcée<>0 ALORS
// Rend invisible le choix du changement de langue dans le Menu
Principal
MenuSelectMoins("Menu Principal",Configure.Langue)
FIN
Notez-bien que la chaîne "Francais" dans SI "Francais" = est traduite avec
Control+T et que la section franchise dit "Francais" et la section
anglaise
dit "Anglais". Sinon cela ne fonctionnerait pas.
J'ai créé dans mon appli une fenetre de choix de langage : Le bouton "Valider" contient le code suivant :
Clé_Registre,Valeur_Registre sont des chaînes Langage est une chaîne SI Franc_Select..Visible = Vrai ALORS Langage = "Français" Clé_Registre = RegistreExiste("HKEY_LOCAL_MACHINESOFTWAREGest_Parc") SI Clé_Registre = "0" // La clé Gest_Parc n'existe pas // creation de la clé SI PAS RegistreCréeClé("HKEY_LOCAL_MACHINESOFTWAREGest_Parc") ALORS Erreur("Erreur lors de la création de la clé") RETOUR FIN // écrire une valeur dans la clé SI PAS RegistreEcrit("HKEY_LOCAL_MACHINESOFTWAREGest_Parc","Langue", Langage) ALORS Erreur("Erreur lors l'écriture dans la clé") RETOUR FIN SINON // écrire une valeur dans la clé SI PAS RegistreEcrit("HKEY_LOCAL_MACHINESOFTWAREGest_Parc","Langue", Langage) ALORS Erreur("Erreur lors l'écriture dans la clé") RETOUR FIN FIN SINON Langage = "English" Clé_Registre = RegistreExiste("HKEY_LOCAL_MACHINESOFTWAREGest_Parc") SI Clé_Registre = "0" // La clé Gest_Parc n'existe pas // creation de la clé SI PAS RegistreCréeClé("HKEY_LOCAL_MACHINESOFTWAREGest_Parc") ALORS Erreur("Erreur lors de la création de la clé") RETOUR FIN // écrire une valeur dans la clé SI PAS RegistreEcrit("HKEY_LOCAL_MACHINESOFTWAREGest_Parc","Langue", Langage) ALORS Erreur("Erreur lors l'écriture dans la clé") RETOUR FIN SINON // écrire une valeur dans la clé SI PAS RegistreEcrit("HKEY_LOCAL_MACHINESOFTWAREGest_Parc","Langue", Langage) ALORS Erreur("Erreur lors l'écriture dans la clé") RETOUR FIN FIN FIN Choix_Langue(Langage) //Applique la langue à tout le projet Utilise(Menu) Ferme
La procedure "Choix_Langue" est la suivante :
PROCEDURE Choix_Langue(ChoixLang) Français est un entier=5 Anglais est un entier=3 Espagnol est un entier=7 //la langue est choisie avec le sélecteur ChoixLang SELON ChoixLang CAS "Français" : //français Nation(Français) AUTRE CAS : //anglais Nation(Anglais) FIN
En debut d'appli je vais lire le registre pour connaitre le langage par defaut
A+
JM
"Real Phil" a écrit dans le message de news: L_gRd.16082$
Réponse à moi-même.
Je ne crois pas qu'une variable Windev existe (si oui, m'en aviser s'il vous plait), alors j'ai trouvé une solution que je publie en cas où cela aiderait quelqu'un d'autre.
Av_Nation est un entier=Nation() NationForcée est un entier=0 // 0 = version non forcée, bilingue Nation(5) // Francais SI "Francais"="Anglais" ALORS NationForcée=3 Nation(3) // Anglais SI "Francais"="Francais" ALORS NationForcée=5 SI NationForcée<>0 ALORS Nation(NationForcée) SINON Nation(Av_Nation)
Info("NationForcée = "+NationForcée)
SI NationForcée<>0 ALORS // Rend invisible le choix du changement de langue dans le Menu Principal MenuSelectMoins("Menu Principal",Configure.Langue) FIN
Notez-bien que la chaîne "Francais" dans SI "Francais" = est traduite avec Control+T et que la section franchise dit "Francais" et la section anglaise dit "Anglais". Sinon cela ne fonctionnerait pas.
Réal Phil
Real Phil
Salut,
Ton cas est un peu différent puisque tu offre un choix de langue dès le démarrage de ton application.
Mais est-ce que ce ne serait pas plus beaucoup plus facile d'utiliser directement un simple champ sélecteur à 3 choix?
Exemple, la fenêtre offre 3 choix 1= Francais, 2=anglais et 3=Espagnol
SELON ChoixLangue CAS 1 : Nation(5) CAS 2 : Nation(3) AUTRE CAS : Nation(7) FIN
// et j'aurais tendance à écrire le résultat directement dans un fichier HF HLit(Info,1) Info.LangueDeDépart=Nation() HModifie(Info)
Et c'est tout! Il me semble que ça fait beaucoup moins de ligne de code non?
Et pour connaître le dernier langage choisi par l'usager il n'y a qu'à faire; HLit(Info) Nation(Info.LangueDeDépart)
Mais mon cas est différent puisque je développe en deux langue et je construit un exécutable dans une seule langue.
Réal Phil.
"jm" a écrit dans le message de news:4215fe74$0$813$
Salut
J'ai créé dans mon appli une fenetre de choix de langage : Le bouton "Valider" contient le code suivant :
Clé_Registre,Valeur_Registre sont des chaînes Langage est une chaîne SI Franc_Select..Visible = Vrai ALORS Langage = "Français" Clé_Registre = RegistreExiste("HKEY_LOCAL_MACHINESOFTWAREGest_Parc") SI Clé_Registre = "0" // La clé Gest_Parc n'existe pas // creation de la clé SI PAS RegistreCréeClé("HKEY_LOCAL_MACHINESOFTWAREGest_Parc") ALORS Erreur("Erreur lors de la création de la clé") RETOUR FIN // écrire une valeur dans la clé SI PAS RegistreEcrit("HKEY_LOCAL_MACHINESOFTWAREGest_Parc","Langue", Langage) ALORS Erreur("Erreur lors l'écriture dans la clé") RETOUR FIN SINON // écrire une valeur dans la clé SI PAS RegistreEcrit("HKEY_LOCAL_MACHINESOFTWAREGest_Parc","Langue", Langage) ALORS Erreur("Erreur lors l'écriture dans la clé") RETOUR FIN FIN SINON Langage = "English" Clé_Registre = RegistreExiste("HKEY_LOCAL_MACHINESOFTWAREGest_Parc") SI Clé_Registre = "0" // La clé Gest_Parc n'existe pas // creation de la clé SI PAS RegistreCréeClé("HKEY_LOCAL_MACHINESOFTWAREGest_Parc") ALORS Erreur("Erreur lors de la création de la clé") RETOUR FIN // écrire une valeur dans la clé SI PAS RegistreEcrit("HKEY_LOCAL_MACHINESOFTWAREGest_Parc","Langue", Langage) ALORS Erreur("Erreur lors l'écriture dans la clé") RETOUR FIN SINON // écrire une valeur dans la clé SI PAS RegistreEcrit("HKEY_LOCAL_MACHINESOFTWAREGest_Parc","Langue", Langage) ALORS Erreur("Erreur lors l'écriture dans la clé") RETOUR FIN FIN FIN Choix_Langue(Langage) //Applique la langue à tout le projet Utilise(Menu) Ferme
La procedure "Choix_Langue" est la suivante :
PROCEDURE Choix_Langue(ChoixLang) Français est un entier=5 Anglais est un entier=3 Espagnol est un entier=7 //la langue est choisie avec le sélecteur ChoixLang SELON ChoixLang CAS "Français" : //français Nation(Français) AUTRE CAS : //anglais Nation(Anglais) FIN
En debut d'appli je vais lire le registre pour connaitre le langage par defaut
A+
JM
"Real Phil" a écrit dans le message de news: L_gRd.16082$ > Réponse à moi-même. > > Je ne crois pas qu'une variable Windev existe (si oui, m'en aviser s'il > vous > plait), alors j'ai trouvé une solution que je publie en cas où cela > aiderait > quelqu'un d'autre. > > Av_Nation est un entier=Nation() > NationForcée est un entier=0 // 0 = version non forcée, bilingue > Nation(5) // Francais > SI "Francais"="Anglais" ALORS NationForcée=3 > Nation(3) // Anglais > SI "Francais"="Francais" ALORS NationForcée=5 > SI NationForcée<>0 ALORS Nation(NationForcée) SINON Nation(Av_Nation) > > Info("NationForcée = "+NationForcée) > > SI NationForcée<>0 ALORS > // Rend invisible le choix du changement de langue dans le Menu > Principal > MenuSelectMoins("Menu Principal",Configure.Langue) > FIN > > Notez-bien que la chaîne "Francais" dans SI "Francais" = est traduite
avec
> Control+T et que la section franchise dit "Francais" et la section > anglaise > dit "Anglais". Sinon cela ne fonctionnerait pas. > > Réal Phil >
Salut,
Ton cas est un peu différent puisque tu offre un choix de langue dès le
démarrage de ton application.
Mais est-ce que ce ne serait pas plus beaucoup plus facile d'utiliser
directement un simple champ sélecteur à 3 choix?
Exemple, la fenêtre offre 3 choix 1= Francais, 2=anglais et 3=Espagnol
SELON ChoixLangue
CAS 1 : Nation(5)
CAS 2 : Nation(3)
AUTRE CAS : Nation(7)
FIN
// et j'aurais tendance à écrire le résultat directement dans un fichier HF
HLit(Info,1)
Info.LangueDeDépart=Nation()
HModifie(Info)
Et c'est tout!
Il me semble que ça fait beaucoup moins de ligne de code non?
Et pour connaître le dernier langage choisi par l'usager il n'y a qu'à
faire;
HLit(Info)
Nation(Info.LangueDeDépart)
Mais mon cas est différent puisque je développe en deux langue et je
construit un exécutable dans une seule langue.
Réal Phil.
"jm" <jmfusella@free.fr> a écrit dans le message de
news:4215fe74$0$813$8fcfb975@news.wanadoo.fr...
Salut
J'ai créé dans mon appli une fenetre de choix de langage :
Le bouton "Valider" contient le code suivant :
Clé_Registre,Valeur_Registre sont des chaînes
Langage est une chaîne
SI Franc_Select..Visible = Vrai ALORS
Langage = "Français"
Clé_Registre = RegistreExiste("HKEY_LOCAL_MACHINESOFTWAREGest_Parc")
SI Clé_Registre = "0" // La clé Gest_Parc n'existe pas
// creation de la clé
SI PAS RegistreCréeClé("HKEY_LOCAL_MACHINESOFTWAREGest_Parc")
ALORS
Erreur("Erreur lors de la création de la clé")
RETOUR
FIN
// écrire une valeur dans la clé
SI PAS
RegistreEcrit("HKEY_LOCAL_MACHINESOFTWAREGest_Parc","Langue", Langage)
ALORS
Erreur("Erreur lors l'écriture dans la clé")
RETOUR
FIN
SINON
// écrire une valeur dans la clé
SI PAS
RegistreEcrit("HKEY_LOCAL_MACHINESOFTWAREGest_Parc","Langue", Langage)
ALORS
Erreur("Erreur lors l'écriture dans la clé")
RETOUR
FIN
FIN
SINON
Langage = "English"
Clé_Registre = RegistreExiste("HKEY_LOCAL_MACHINESOFTWAREGest_Parc")
SI Clé_Registre = "0" // La clé Gest_Parc n'existe pas
// creation de la clé
SI PAS RegistreCréeClé("HKEY_LOCAL_MACHINESOFTWAREGest_Parc")
ALORS
Erreur("Erreur lors de la création de la clé")
RETOUR
FIN
// écrire une valeur dans la clé
SI PAS
RegistreEcrit("HKEY_LOCAL_MACHINESOFTWAREGest_Parc","Langue", Langage)
ALORS
Erreur("Erreur lors l'écriture dans la clé")
RETOUR
FIN
SINON
// écrire une valeur dans la clé
SI PAS
RegistreEcrit("HKEY_LOCAL_MACHINESOFTWAREGest_Parc","Langue", Langage)
ALORS
Erreur("Erreur lors l'écriture dans la clé")
RETOUR
FIN
FIN
FIN
Choix_Langue(Langage)
//Applique la langue à tout le projet
Utilise(Menu)
Ferme
La procedure "Choix_Langue" est la suivante :
PROCEDURE Choix_Langue(ChoixLang)
Français est un entier=5
Anglais est un entier=3
Espagnol est un entier=7
//la langue est choisie avec le sélecteur ChoixLang
SELON ChoixLang
CAS "Français" : //français
Nation(Français)
AUTRE CAS : //anglais
Nation(Anglais)
FIN
En debut d'appli je vais lire le registre pour connaitre le langage par
defaut
A+
JM
"Real Phil" <_pasde_Spam_realp@ultra.ca> a écrit dans le message de news:
L_gRd.16082$3p4.685956@wagner.videotron.net...
> Réponse à moi-même.
>
> Je ne crois pas qu'une variable Windev existe (si oui, m'en aviser s'il
> vous
> plait), alors j'ai trouvé une solution que je publie en cas où cela
> aiderait
> quelqu'un d'autre.
>
> Av_Nation est un entier=Nation()
> NationForcée est un entier=0 // 0 = version non forcée, bilingue
> Nation(5) // Francais
> SI "Francais"="Anglais" ALORS NationForcée=3
> Nation(3) // Anglais
> SI "Francais"="Francais" ALORS NationForcée=5
> SI NationForcée<>0 ALORS Nation(NationForcée) SINON Nation(Av_Nation)
>
> Info("NationForcée = "+NationForcée)
>
> SI NationForcée<>0 ALORS
> // Rend invisible le choix du changement de langue dans le Menu
> Principal
> MenuSelectMoins("Menu Principal",Configure.Langue)
> FIN
>
> Notez-bien que la chaîne "Francais" dans SI "Francais" = est traduite
avec
> Control+T et que la section franchise dit "Francais" et la section
> anglaise
> dit "Anglais". Sinon cela ne fonctionnerait pas.
>
> Réal Phil
>
Ton cas est un peu différent puisque tu offre un choix de langue dès le démarrage de ton application.
Mais est-ce que ce ne serait pas plus beaucoup plus facile d'utiliser directement un simple champ sélecteur à 3 choix?
Exemple, la fenêtre offre 3 choix 1= Francais, 2=anglais et 3=Espagnol
SELON ChoixLangue CAS 1 : Nation(5) CAS 2 : Nation(3) AUTRE CAS : Nation(7) FIN
// et j'aurais tendance à écrire le résultat directement dans un fichier HF HLit(Info,1) Info.LangueDeDépart=Nation() HModifie(Info)
Et c'est tout! Il me semble que ça fait beaucoup moins de ligne de code non?
Et pour connaître le dernier langage choisi par l'usager il n'y a qu'à faire; HLit(Info) Nation(Info.LangueDeDépart)
Mais mon cas est différent puisque je développe en deux langue et je construit un exécutable dans une seule langue.
Réal Phil.
"jm" a écrit dans le message de news:4215fe74$0$813$
Salut
J'ai créé dans mon appli une fenetre de choix de langage : Le bouton "Valider" contient le code suivant :
Clé_Registre,Valeur_Registre sont des chaînes Langage est une chaîne SI Franc_Select..Visible = Vrai ALORS Langage = "Français" Clé_Registre = RegistreExiste("HKEY_LOCAL_MACHINESOFTWAREGest_Parc") SI Clé_Registre = "0" // La clé Gest_Parc n'existe pas // creation de la clé SI PAS RegistreCréeClé("HKEY_LOCAL_MACHINESOFTWAREGest_Parc") ALORS Erreur("Erreur lors de la création de la clé") RETOUR FIN // écrire une valeur dans la clé SI PAS RegistreEcrit("HKEY_LOCAL_MACHINESOFTWAREGest_Parc","Langue", Langage) ALORS Erreur("Erreur lors l'écriture dans la clé") RETOUR FIN SINON // écrire une valeur dans la clé SI PAS RegistreEcrit("HKEY_LOCAL_MACHINESOFTWAREGest_Parc","Langue", Langage) ALORS Erreur("Erreur lors l'écriture dans la clé") RETOUR FIN FIN SINON Langage = "English" Clé_Registre = RegistreExiste("HKEY_LOCAL_MACHINESOFTWAREGest_Parc") SI Clé_Registre = "0" // La clé Gest_Parc n'existe pas // creation de la clé SI PAS RegistreCréeClé("HKEY_LOCAL_MACHINESOFTWAREGest_Parc") ALORS Erreur("Erreur lors de la création de la clé") RETOUR FIN // écrire une valeur dans la clé SI PAS RegistreEcrit("HKEY_LOCAL_MACHINESOFTWAREGest_Parc","Langue", Langage) ALORS Erreur("Erreur lors l'écriture dans la clé") RETOUR FIN SINON // écrire une valeur dans la clé SI PAS RegistreEcrit("HKEY_LOCAL_MACHINESOFTWAREGest_Parc","Langue", Langage) ALORS Erreur("Erreur lors l'écriture dans la clé") RETOUR FIN FIN FIN Choix_Langue(Langage) //Applique la langue à tout le projet Utilise(Menu) Ferme
La procedure "Choix_Langue" est la suivante :
PROCEDURE Choix_Langue(ChoixLang) Français est un entier=5 Anglais est un entier=3 Espagnol est un entier=7 //la langue est choisie avec le sélecteur ChoixLang SELON ChoixLang CAS "Français" : //français Nation(Français) AUTRE CAS : //anglais Nation(Anglais) FIN
En debut d'appli je vais lire le registre pour connaitre le langage par defaut
A+
JM
"Real Phil" a écrit dans le message de news: L_gRd.16082$ > Réponse à moi-même. > > Je ne crois pas qu'une variable Windev existe (si oui, m'en aviser s'il > vous > plait), alors j'ai trouvé une solution que je publie en cas où cela > aiderait > quelqu'un d'autre. > > Av_Nation est un entier=Nation() > NationForcée est un entier=0 // 0 = version non forcée, bilingue > Nation(5) // Francais > SI "Francais"="Anglais" ALORS NationForcée=3 > Nation(3) // Anglais > SI "Francais"="Francais" ALORS NationForcée=5 > SI NationForcée<>0 ALORS Nation(NationForcée) SINON Nation(Av_Nation) > > Info("NationForcée = "+NationForcée) > > SI NationForcée<>0 ALORS > // Rend invisible le choix du changement de langue dans le Menu > Principal > MenuSelectMoins("Menu Principal",Configure.Langue) > FIN > > Notez-bien que la chaîne "Francais" dans SI "Francais" = est traduite
avec
> Control+T et que la section franchise dit "Francais" et la section > anglaise > dit "Anglais". Sinon cela ne fonctionnerait pas. > > Réal Phil >