1. Créez l'interface comme avant, faites juste attention à utiliser des étiquettes pour tout texte nécessitant une interface multilingue
2. Après avoir terminé, sélectionnez le fichier dans l'Explorateur de solutions et sélectionnez Outils->Générer une ressource locale
3. Vous constaterez qu'un répertoire, App_LocalResources, est généré ; il existe un fichier resx supplémentaire dans ce répertoire. Par exemple, si votre fichier aspx est default.aspx, il générera un fichier appelé default.aspx.resx.
4. Ouvrez ce fichier et jetez un œil. Tout le texte de l'étiquette est ici
5. Ouvrez le fichier aspx d'origine et regardez la source. Vous constaterez que le code source a changé :
<%@ Page Language="VB" MasterPageFile="~/MasterPage.master" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="Default2" title="Page sans titre" Culture="auto" méta : resourcekey="PageResource1" UICulture="auto" %>
…………
<asp:Localize ID="Localize1" runat="server" meta:resourcekey="Localize1Resource1"></asp:Localize>
6. Notez ici : meta:resourcekey="PageResource1" et meta:resourcekey="Localize1Resource1" Cela signifie que le texte ici est lu à partir de la ressource.
7. OK, créez maintenant le fichier de ressources pour une autre langue. C'est très simple, copiez Default.aspx.resx et collez-le, puis renommez-le en Default.aspx.fr-fr.resx. Notez que fr-fr est le nom de la langue que vous souhaitez utiliser. Si vous regardez un DVDrip, vous devriez penser qu’il ressemble beaucoup à un fichier de sous-titres, n’est-ce pas ?
8. Certaines personnes demandent comment connaître le nom de cette langue ? C'est très simple, ouvrez IE, outils->options internet->langues->ajouter, c'est au milieu de la boîte.
9. Commencez maintenant à éditer le texte d'autres ressources. Ouvrez Default.aspx.fr-fr.resx, comparez le contenu original et modifiez le contenu en français.
10. À ce stade, nous avons terminé la première étape. ASP.Net choisira la langue affichée en fonction des préférences linguistiques de l'utilisateur. Changer les paramètres dans IE, changer l'endroit que nous venons de mentionner en fr-fr, ouvrir cette page et jeter un oeil ? Si c'est français, félicitations. Sinon, revenez en arrière et recommencez...
11. OK, ensuite, nous voulons permettre aux utilisateurs de choisir leur propre langue plutôt que automatiquement. Nous utilisons des cookies pour stocker les choix des utilisateurs. Au niveau de l'application, nous lisons ce cookie et définissons la culture et l'uiculture appropriées. Bien sûr, lorsque nous arrivons pour la première fois, nous devons encore lire les paramètres du navigateur, qui peuvent être obtenus auprès de Request.UserLanguages.
Langues prises en charge privées As String() = {"en-us", "fr-fr"}
Public Const LANGUAGE_COOKIE_NAME As String = "UserLanguage"
Sub Application_AcquireRequestState (ByVal sender As Object, ByVal et As EventArgs)
Dim languageCookie As HttpCookie = Request.Cookies (LANGUAGE_COOKIE_NAME)
Dim langage As String = String.Empty
Si (langageCookie n'est rien) Alors
Dim userLanguages As String() = Request.UserLanguages
Dim index As Integer
For i As Integer = 0 To userLanguages.Length - 1
index = Array.IndexOf (SupportedLanguages, userLanguages (i))
Si index >= 0 Alors
langue = SupportedLanguages(index)
Sortie pour
fin si
suivant
Si langue = String.Empty Alors _
langue = SupportedLanguages (0)
Response.Cookies.Add (New HttpCookie (LANGUAGE_COOKIE_NAME, langue))
Sinon
langue = langueCookie.Value
Fin Si
Dim culture As CultureInfo = New CultureInfo(langue)
System.Threading.Thread.CurrentThread.CurrentUICulture = culture
End Sub
12. Ensuite, nous devons avoir une page qui permet aux utilisateurs de sélectionner la langue. Par exemple, nous utilisons deux boutons pour le faire. Après avoir cliqué sur ce bouton, nous souhaitons paramétrer ce cookie dans la langue appropriée :
Sous-protégé Button2_Click (ByVal sender As Object, ByVal et As System.EventArgs) Handles Button2.Click
SetLanguage ("fr-fr")
End Sub
Sub SetLanguage protégé (langue ByVal As String)
Response.Cookies (Global.ASP.global_asax.LANGUAGE_COOKIE_NAME).Value = langue
Dim culture As CultureInfo = New CultureInfo (langue)
System.Threading.Thread.CurrentThread.CurrentUICulture = culture
Server.Transfer ( Request.Path)
Fin du sous-marin
Notez le Server.Transfer(Request.Path) à la fin, il s'agit de relire la page afin que la page affiche également la langue nouvellement sélectionnée.
13. Enfin, nous devons supprimer la sélection automatique d'ASP.Net. Supprimer de Default.aspx :
Culture="auto" UICulture="auto"
14. Ouvrez-le et jetez un oeil !