Est-il possible de choisir la classe ou le module qui doit faire référence ? VB

Résolu
whombat Messages postés 188 Date d'inscription mercredi 12 octobre 2005 Statut Membre Dernière intervention 19 novembre 2011 - 13 oct. 2011 à 00:04
whombat Messages postés 188 Date d'inscription mercredi 12 octobre 2005 Statut Membre Dernière intervention 19 novembre 2011 - 15 oct. 2011 à 23:13
Bonjours à tous.

Je voudrais tenter une application multilangue. J'ai vu l'excellent tuto : http://morpheus.developpez.com/localisationdotnet/ mais, à l'essai, c'est, pour l'instant, trop long et compliqué pour moi.

D'autant que (pour ceux qui le connaissent) if faut sans cesse revenir sur la langue de la culture de base avant d'en choisir une autre. Par ex : Culture de base FR. Je veux voir ce que ça donne en EN puis en JA, il faut faire FR -> EN -> FR -> JA. Donc, semble-t-il, avec ma très très faible connaissance, il y a un détail qui cloche.

J'ai donc pensé (et testé) un module qui regroupe toutes les variables et leur traduction : Public MainText as string = "Hello Word !"

Mais il faut un module par langue (pour la traduction, le doc entier en français est traduit direct - merci Google). Reste qu'il n'est pas possible de charger les 12 modules ensemble. On se retrouverait avec 12 fois la variable MainText et ce serait la dernière lue qui aurait raison.

Comment faire ?

Bien sûr, tout cela pour éviter le fichier extérieur car là, effectivement, c'est du velours.

J'ai entendu parler, sur le forum, de gens qui avaient tenté les classes (je suppose que c'est la même chose que je veux faire avec des modules...). Mais je ne vois pas, là non plus, comment les utiliser.

Quelqu'un aurait une idée ?

Merci d'avance.

Cordialement.

Whombat

3 réponses

whombat Messages postés 188 Date d'inscription mercredi 12 octobre 2005 Statut Membre Dernière intervention 19 novembre 2011
15 oct. 2011 à 23:13
Merci de ta réponse.

En fait, j'ai trouvé une solution : directement créer les fichiers de traduction sur un module dédié, en les sériant par sub. il n'y a donc qu'un fichier à réaliser, celui en français, qui sera traduit par Google dans toutes les langues voulues.

ATTENTION, il y a un truc :

Créer un module Param (par ex.) avec la liste déclarée de toutes les variables :

Public BONJOUR as string = string.Empty
Public QUITTER as string = string.Empty
Public ANNULER as string = string.Empty
........

Dans un autre module, appelé Langues (par ex.) créer toutes les sub par langue

Public Shared Sub Langue_Fr()
BONJOUR = "Bonjour"
QUITTER = "Quitter"
ANNULER = "Annuler"
............
End Sub

Enfin dans la feuille main, dans sub New, aller voir (dans la cultureInfo ou dans un fichier de config , la lang du visiteur

Dim Lang as string = String.Empty

'La Lang est connue par le moyen que l'on veut
Lang = LangEnregistree

Select case Lang
Case "Fr"
Langue_Fr()
Case "En"
Langue_En()
..............
Case else
Langue_Fr()
End Select

'Puis mettre les contrôles à jour
AJourControls()

Public Shared sub AjourControls()
Butt_Quit_Feuill_Main.Text=QUITTER
Butt_Annul_Feuill_Main.Text=ANNULER
.....
End sub

Les Variables doivent être en MAJUSCULES car Google ne traduit pas les mots en majuscule. Un fichier en Français, le temps de l'écrire, au fur et à mesure du dessin des contrôles, c'est rien à faire. La traduction de Google, même en grec, arabe ou Japonais, tout compris c'est une minute le coup. Copier / coller et nous voilà en 2 heures avec une application de 100 langues (ou plus...) ! Et qui ne risque pas de planter !!!

Cordialement,

Whombat.

Prédire l'avenir est particulièrement aléatoire, 
surtout lorsqu'il s'agit du futur.
3
whombat Messages postés 188 Date d'inscription mercredi 12 octobre 2005 Statut Membre Dernière intervention 19 novembre 2011
13 oct. 2011 à 00:20
Précision sur mon message précédent :

J'écrivais : les fichiers extérieurs c'est du velours. Taratata, c'est du velours tant qu'on reste dans du caractère latin. Dès qu'on veut voir le finlandais, l'islandais ou le grec ça coince parce que le bloc note ne prends pas les Unicode. Et à passer par des documents Word (à supposé qu'ils lisent et écrivent l'Unicode) cela demande une sacrée gymnastique à l'importation pour y lire les variables stockées.

Tout cela bien sûr vu de mon petit niveau. Mais il me semble.
Cordialement,

Whombat.

Prédire l'avenir est particulièrement aléatoire, 
surtout lorsqu'il s'agit du futur.
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
14 oct. 2011 à 12:50
Bonjour,

En .NET, tu peux ouvrir un fichier en UTF-8 par exemple.
Ensuite, il faut parfois passer par d'autres éditeurs de texte (NotePad++ par exemple) qui sont plus à jour à ce niveau.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS et aussi ce lien[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
0
Rejoignez-nous