At 08:42 2002-06-06 +0000, you wrote:
>Personnellement, je ne voulais pas mettre l'i18n au niveau des exceptions et
>j'ai pour cela plusieurs raisons :
>
>- Etant donn� que j'ai une interface web, c'est au niveau de la requ�te que
>je r�cup�re la Locale. Si je veux i18ner  directement la classe
>ExceptionFonctionnelle il faut alors que je passe en param�tre � toutes mes
>m�thodes m�tier la Locale utilis�e ce qui me para�t lourd.
>- Je consid�re que le traitement des r�gles de gestion m�tier est ind�pendant
>de cette Locale et donc c'est pour cela que je voulais traiter l'i18n
>uniquement au niveau de ma couche de pr�sentation.

Ce n'est pas vrai. Tu n'as seulement qu'� passer la Locale � ta classe qui 
g�n�re les exceptions. De cette fa�on, quand tu "throw" une exception dans 
une de tes m�thodes, cette derni�re n'a pas � passer la Locale en 
param�tre. Ton argument sur la lourdeur ne tient donc pas.

L'id�e c'est que lorsque tu "throw" une exception toi-m�me, tu indiques 
qu'une condition particuli�re n'est pas remplie et donc que le programme ne 
peut se poursuivre. Tu ajoute donc une message dans le constructeur de 
cette exception qui indique que telle condition particuli�re a �t� 
rencontr�e. Or ce message est un champ dans la classe des exceptions qui 
provient de la lecture de ton fichier .PROPERTIES. Donc la traduction est 
g�r�e � un autre niveau.

Maintenant, que ce message ajout� soit en fran�ais, en anglais, en italien, 
... ne change absolument rien au fonctionnement, car c'est la job de ton 
ResourceBundle de toujours pointer sur le fichier .PROPERTIES contenant les 
textes dans la langue de ta Locale.

Finalement, ton JSP v�rifie si une exception se trouve dans la requ�te et 
si c'est le cas, il affiche de fa�on triviale le message d'erreur rencontr�.

Sylvain


>Pour l'instant je m'en sors en ajoutant une liste d'Objets (mes arguments) �
>mon exception. Lorsque je traduis, s'il l'un de ces objets est une string je
>le traduis (la traduction d'une cha�ne inconnue retourne cette cha�ne). Je ne
>trouve pas cela formidable mais pour l'instant je n'ai pas trouv� mieux.
>
>Seb
>
>Le Mercredi 5 Juin 2002 17:42, vous avez �crit :
>
> > Voici comment tu pourrais le faire (j'assume que lorsque tu parles de
> > gestion des exceptions, tu veux dire la gestion des exceptions que tu
> > g�n�res toi-m�me)
> >
> > - Pour chaque message d'erreur pertinent � ton application, tu cr�e une
> > nouvelle clef dans un fichier .PROPERTIES
> > - Tu as autant de fichier .PROPERTIES que tu supportes de language.
> > - Ta classe ExceptionFonctionnelle doit comprendre un champ de type
> > ResourceBundle, que tu initialises avec la source de ton fichier
> > .PROPERTIES. example: private static ResourceBundle resFile =
> > ResourceBundle.getBundle(com.ta_compagnie.context_path.nom_fichier);
> >
> > - Ta classe ExceptionFonctionnelle doit comprendre un champ pour chaque
> > message d'erreur diff�rent. Ce champ doit lire la clef correspondante dans
> > ton fichier .PROPERTIES
> > example: public final static String MAUVAIS_UNAME =
> > resFile.getString("exception.uname.mauvais");
> >
> > -A chaque fois que tu "throw" une exception, celle-ci sera automatiquement
> > traduite si tu fournis un message d'erreur correspondant � un des messages
> > d'erreur compris dans ta classe ExceptionFonctionnelle dans le constructeur
> > de la nouvelle exception (ouf !)
> > Example: if (machin!=56)
> >                 throw new
> > ExceptionFonctionnelle(ExceptionFonctionnelle.MAUVAIS_UNAME);
> >
> > -A chaque fois que l'utilisateur change de langue, une m�thode dans
> > ExceptionFonctionnelle doit relire les clefs de ton fichier .PROPERTIES en
> > fonction de la langue choisie.
> >
> >
> > De cette fa�on, tu traites les exceptions uniform�ment. Si tu veux ajouter
> > des param�tres � traduire, tu ajoutes des champs dans ta classe
> > ExceptionFonctionnelle et aussi les clefs correspondantes dans ton fichier
> > .PROPERTIES. Et oui, c'est juste de designer ton application pour que la
> > partie m�tier se charge de la gestion des exception et que la partie
> > pr�sentation ne fait que l'afficher, car c'est conforme au paradigme MVC.
> >
> > Sylvain
> >
> > At 15:13 2002-06-05 +0000, you wrote:
> > > > 1-Quand tu dis "j'avais une ExceptionFonctionnelle je r�cup�rais le
> > > > message associ� dans ma partie pr�sentation que je traduisais",
> > > > veux-tu dire que tu traduis le message associ� � l'exception en
> > > > fonction du choix de langue de l'utilisateur ?
> > >
> > >Oui, je traduis le message en fonction de la langue de l'utilisateur.
> > >
> > > > 2-Lorsque tu parles de la partie m�tier et de la partie pr�sentation,
> > > > est-ce que tu veux dire que la partie m�tier est constitu�e de classes
> > > > Java et que la partie pr�sentation est constitu�e de JSP ou bien d'un
> > > > interface graphique genre Swing ?
> > >
> > >Ma partie m�tier correspond � des classes java et ma partie pr�sentation
> > > est un framework model2 maison constitu� de jsp, servlet et classes java
> > >
> > >__________________________________________________________________________
> > >____ ifrance.com, l'email gratuit le plus complet de l'Internet !
> > >vos emails depuis un navigateur, en POP3, sur Minitel, sur le WAP...
> > >http://www.ifrance.com/_reloc/email.emailif
> >
> > --------------------------------
> > Sylvain Cliche
> > 822-6000 Ext. 7765
> > [EMAIL PROTECTED]
>
>______________________________________________________________________________
>ifrance.com, l'email gratuit le plus complet de l'Internet !
>vos emails depuis un navigateur, en POP3, sur Minitel, sur le WAP...
>http://www.ifrance.com/_reloc/email.emailif

--------------------------------
Sylvain Cliche
822-6000 Ext. 7765
[EMAIL PROTECTED]

Répondre à