Accueil
Accueil Le Club Delphi Kylix C C++ Java J2EE DotNET & C# Visual Basic Access Pascal Dev Web PHP ASP XML UML SQLSGBD Windows Linux Autres
logo

precedent    sommaire    suivant   


Quelle est la meilleure technique pour internationaliser une application?
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 : fr Internationalisation d'une application asp.NET (1.1)
lien : faq Comment permettre à un utilisateur de choisir sa langue d'affichage des textes?

Comment permettre à un utilisateur de choisir sa langue d'affichage des textes?
auteur : Didier Danse
Une grande quantité de sites proposent de choisir la langue d'affichage des textes. Pour faire cela, il suffit d'ajouter une liste déroulante dont les valeurs sont, par exemple, "fr", "fr-BE", "en-US".

En récupérant cette valeur, il suffit alors d'effectuer une modification dynamique de la culture à utiliser ou encore d'utiliser:

Dim Lang As String = Request.UserLanguages(0)
Dim CurrentCulture As CultureInfo = New CultureInfo(Lang)
Select CurrentCulture.Name.Substring(0, 2).ToUpper
Case "FR"
LaText.Text = "Texte en français..."
' break
Case "EN", Else
LaText.Text = "Text written in English..."
' break
End Select 
lien : fr Internationalisation d'une application asp.NET (1.1)
lien : faq Quelle est la meilleure technique pour internationaliser une application?
lien : faq Je modifie le CurrentCulture et pourtant mes textes sont toujours affichés dans la langue par défaut, pourquoi?

Comment afficher une date selon la culture du client?
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 : fr Internationalisation d'une application asp.NET (1.1)

Je modifie le CurrentCulture et pourtant mes textes sont toujours affichés dans la langue par défaut, pourquoi?
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 : fr Internationalisation d'une application asp.NET (1.1)
lien : faq Comment permettre à un utilisateur de choisir sa langue d'affichage des textes?

Comment générer un fichier .resources dynamiquement?
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 : fr Internationalisation d'une application asp.NET (1.1)
lien : faq Comment utiliser un fichier .resources qui ne se trouve pas dans une dll?

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 : fr Internationalisation d'une application asp.NET (1.1)
lien : faq Comment générer un fichier .resources dynamiquement?

precedent    sommaire    suivant   

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.

Vos questions techniques : forum d'entraide Accueil - Publiez vos articles, tutoriels, cours et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones. Nous contacter - Copyright 2000..2005 www.developpez.com