Bonsoir à tous,
Je suis actuellement en train de développer une petite application afin de mettre en pratique différentes choses que j'ai pu lire par ci par la mais qui permettent d'améliorer le process de dev et la maintenance (injection de dépendances, design patterns...).
Tant qu'à faire, je me suis dit que j'allais internationaliser mon appli pour tester car je dois avouer que je ne l'ai jamais fait.
Jusque là tout fonctionne bien, j'ai bien une appli multi langues mais maintenant je m'interesse au concret, à vos expériences et façon de faire.
Voici le contexte :
Imaginons une appli divisée en plusieurs projets dont certains sont des projets dits "utilitaires" ou "réutilisables" comme vous préférez. Donc en gros, j'ai cherché a internationaliser des projets que je vais réutiliser dans d'autres applis. Ce sont en général des librairies de codes divers et variés.
Ce que je voulais savoir c'est comment vous procédez pour implanter ce genre de systeme, avez vous des astuces, des trucs qui font que c'est moins galere ?
Voici comment moi je procède :
J'ajoute un fichier de resources nommé "maclasse.resx" pour la ressource par défaut (en anglais) et un fichier de resources nommé "maclasse.fr.resx" pour la ressource en francais.
Ensuite dans ma librairie, par exemple sur un throw new exception(le message) je fais appel à ma ressource.
Le fait de devoir instancier à chaque fois le resourcemanager puis d'appeler le getstring, ca me broutait un peu, je trouvais que ca manquait un peu d'automatisme, j'ai donc créé une fonction "utilitaire" qui me permet de faire ca en une seule ligne :
La fonction
L'appel à la fonction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Public Shared Function GetResourceString(ByVal CallingObjectType As Type, ByVal Name As String) As String Try Dim rm As New Resources.ResourceManager(CallingObjectType.Assembly.GetName.Name & "." & CallingObjectType.Name, CallingObjectType.Assembly) Return rm.GetString(Name) Catch ex As Exception Return "Error : No language resource found" End Try End Function
Qu'en pensez vous ? y'a-t-il meilleure solution ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part Throw New Exception(Utils.GetResourceString(GetType(MaClasse), "Maclasse_MaMethode_Exception"))
Merci d'avance
A bientot
Partager