| auteur : Didier Danse |
Il existe différentes solutions pour internationaliser une application:
- Utilisation de fichiers texte
- Utilisation d'une base de données
- Traduction dans le code
- Utilisation des fichiers ressources
Chacune de ces techniques a ses avantages et ses inconvénients. Il faut trouver une technique permet d'allier facilité de maintenance et rapidité d'exécution.
Plusieurs techniques sont prévues par .NET et celle qui paraît être la meilleure est la solution des fichiers ressources. Effectivement, les fichiers ressources sont des fichiers textes optimisés puisqu'au chargement, ils sont entièrement triés afin de limiter les accès qu'ils soient au niveau de la mémoire ou des différents disques.
|
lien : Internationalisation d'une application asp.NET (1.1)
lien : Comment permettre à un utilisateur de choisir sa langue d'affichage des textes?
|
| auteur : Didier Danse |
Plus exactement, il s'agit de se baser sur les paramètres définis dans le navigateur du client...
Lorsqu'un client se connecte à un site, le navigateur, lors de la demande, envoie toute une série d'informations telles que la langue de prédilection et bien d'autres choses.
Il reste donc à récupérer cette valeur et à l'utiliser...
Pour mettre à jour de manière dynamique la culture à utiliser:
Mise à jour dynamique de la culture |
Dim lang As String = Request . UserLanguages (0)
Thread. CurrentThread . CurrentCulture = New CultureInfo (lang)
|
Dès lors, toutes les dates seront formatées selon la culture du client.
|
lien : Internationalisation d'une application asp.NET (1.1)
|
| auteur : Didier Danse |
Deux raisons sortent du lot:
- la modification se fait dans le code d'un événement. On est donc déjà passé par le Page_Load et les textes sont déjà chargés. Il faut donc s'arranger pour mettre le chargement des textes dans une autre méthode et l'appeler dans le code de l'évènement.
- la page est rechargée sans redéfinir la culture à utiliser.
Il est donc conseillé d'utiliser une variable de session pour stocker la culture à utiliser:
Changement dynamique de la langue de l'utilisateur |
Private Sub Page_Load (ByVal sender As Object, ByVal e As System. EventArgs )
If Not Page. IsPostBack OrElse Session (" User-Language " ) Is Nothing Then
Dim CurrentCulture As CultureInfo = New CultureInfo (Request . UserLanguages (0))
Session (" User-Language " ) = Request . UserLanguages (0)
End If
LaText. Text = CurrentCulture. Name
ChargerTextes
End Sub
Private Sub BuChangeLanguage_Click (ByVal sender As Object, ByVal e As EventArgs)
Thread. CurrentThread . CurrentCulture = New CultureInfo (DdlLanguage. SelectedValue )
LaText. Text = Thread. CurrentThread . CurrentCulture . Name
Session (" User-Language " ) = Thread. CurrentThread . CurrentCulture . Name
ChargerTextes
End Sub
|
|
lien : Internationalisation d'une application asp.NET (1.1)
lien : Comment permettre à un utilisateur de choisir sa langue d'affichage des textes?
|
| auteur : Didier Danse |
Lorsque vous utilisez les fichiers ressources et que vous compilez sous Visual Studio, celui-ci se charge de générer le fichier .resources à partir du fichier .resx qui est un simple fichier xml.
Pour générer un fichier et ajouter des valeurs dynamiquement, quelques lignes de code suffisent:
Génération dynamique d'un fichier .resources |
Dim fs As FileStream = New FileStream (" items.resources " , FileMode. OpenOrCreate , FileAccess. Write )
Dim writer As IResourceWriter = New ResourceWriter (fs)
writer. AddResource (" clé " , " valeur " )
writer. Generate
writer. Close
|
|
lien : Internationalisation d'une application asp.NET (1.1)
lien : Comment utiliser un fichier .resources qui ne se trouve pas dans une dll?
|
| auteur : Didier Danse |
La plupart des tutoriaux présents sur le net expliquent comment utiliser un fichier ressources provenant d'une dll. Lorsque l'on génére le fichier de manière dynamique, le code est légèrement différent:
Utiliser un fichier .resources non inclus dans une dll |
Dim manager As ResourceManager = ResourceManager. CreateFileBasedResourceManager (" nom fichier sans extension ni culture " , " chemin d'accès au fichier " , Nothing )
|
Exemple:
Utiliser un fichier .resources non inclus dans une dll |
Dim manager As ResourceManager = ResourceManager. CreateFileBasedResourceManager (" items " , Server . MapPath (" . " ), Nothing )
|
|
lien : Internationalisation d'une application asp.NET (1.1)
lien : Comment générer un fichier .resources dynamiquement?
|
Consultez les autres F.A.Q's
Les sources présentés sur cette pages sont libre de droits,
et vous pouvez les utiliser à votre convenance. Par contre cette page de présentation de ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs.
Copyright ©2007
Developpez LLC. Tout droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de
l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à 3 ans
de prison et jusqu'à 300 000 E de dommages et intérets.
Cette page est déposée à la SACD.
|