1. Gestalten Sie die Benutzeroberfläche wie zuvor, achten Sie jedoch darauf, Beschriftungen für alle Texte zu verwenden, die eine mehrsprachige Benutzeroberfläche erfordern
2. Wenn Sie fertig sind, wählen Sie die Datei im Projektmappen-Explorer aus und wählen Sie Extras->Lokale Ressource generieren
3. Sie werden feststellen, dass ein Verzeichnis, App_LocalResources, generiert wird. In diesem Verzeichnis befindet sich eine zusätzliche Resx-Datei. Wenn Ihre ASPX-Datei beispielsweise „default.aspx“ lautet, wird eine Datei mit dem Namen „default.aspx.resx“ generiert.
4.
Öffnen Sie diese Datei und sehen Sie sich dengesamten
Text im Etikett an.
Öffnen Sie die ursprüngliche ASPX-Datei und sehen Sie sich die Quelle an. Sie werden feststellen, dass sich der Quellcode geändert hat:
<%@ Page Language="VB" MasterPageFile="~/MasterPage.master" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="Default2" title="Untitled Page" Culture="auto" Meta: resourceskey="PageResource1" UICulture="auto" %>
…………
<asp:Localize ID="Localize1" runat="server" meta:resourcekey="Localize1Resource1"></asp:Localize>
6. Beachten Sie hier: meta:resourcekey="PageResource1" und meta:resourcekey="Localize1Resource1" Dies bedeutet, dass der Text hier aus der Ressource gelesen wird.
7. OK, erstellen Sie jetzt die Ressourcendatei für eine andere Sprache. Es ist ganz einfach: Kopieren Sie Default.aspx.resx, fügen Sie es ein und benennen Sie es dann in Default.aspx.fr-fr.resx um. Beachten Sie, dass fr-fr der Name der Sprache ist, die Sie verwenden möchten. Wenn Sie sich einen DVDrip ansehen, sollten Sie denken, dass er einer Untertiteldatei sehr ähnlich ist, oder?
8. Manche Leute fragen: Woher kenne ich den Namen dieser Sprache? Es ist ganz einfach, öffnen Sie den IE, Extras->Internetoptionen->Sprachen->Hinzufügen, es befindet sich in der Mitte der Box.
9. Beginnen Sie nun mit der Bearbeitung des Textes anderer Ressourcen. Öffnen Sie Default.aspx.fr-fr.resx, vergleichen Sie den Originalinhalt und ändern Sie den Inhalt in Französisch.
10. Zu diesem Zeitpunkt haben wir die erste Phase abgeschlossen. ASP.Net wählt die angezeigte Sprache basierend auf den Sprachpräferenzen des Benutzers aus. Ändern Sie die Einstellungen im IE, ändern Sie den gerade erwähnten Ort in fr-fr, öffnen Sie diese Seite und werfen Sie einen Blick darauf? Wenn es Französisch ist, herzlichen Glückwunsch. Wenn nicht, gehen Sie zurück und wiederholen Sie den Vorgang ...
11. OK, als nächstes möchten wir Benutzern ermöglichen, ihre eigene Sprache statt automatisch auszuwählen. Wir verwenden Cookies, um Benutzerentscheidungen zu speichern. Auf Anwendungsebene lesen wir dieses Cookie und legen die entsprechende Kultur und Kultur fest. Wenn wir zum ersten Mal reinkommen, müssen wir natürlich noch die Browsereinstellungen lesen, die über Request.UserLanguages erhältlich sind.
Private SupportedLanguages As String() = {"en-us", "fr-fr"}
Öffentliche Const LANGUAGE_COOKIE_NAME As String = „UserLanguage“
Sub Application_AcquireRequestState(ByVal sender As Object, ByVal e As EventArgs)
Dimmen Sie languageCookie als HttpCookie = Request.Cookies(LANGUAGE_COOKIE_NAME)
Dimmen Sie language als String = String.Empty
Wenn (SpracheCookie ist nichts) Dann
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))
Wenn index >= 0, dann
language = SupportedLanguages(index)
Exit For
End If
Next
If language = String.Empty Then _
language = SupportedLanguages(0)
Response.Cookies.Add(New HttpCookie(LANGUAGE_COOKIE_NAME, language))
Else
language = languageCookie.Value
End If
Dim culture As CultureInfo = New CultureInfo(Sprache)
System.Threading.Thread.CurrentThread.CurrentUICulture = culture
End Sub
12. Dann benötigen wir eine Seite, auf der Benutzer die Sprache auswählen können. Dazu verwenden wir beispielsweise zwei Schaltflächen. Nachdem wir auf diesen Button geklickt haben, möchten wir dieses Cookie auf die entsprechende Sprache einstellen:
Protected Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Behandelt Button2.Click
SetLanguage("fr-fr")
End Sub
Protected Sub SetLanguage(ByVal language As String)
Response.Cookies(Global.ASP.global_asax.LANGUAGE_COOKIE_NAME).Value = language
Dim culture As CultureInfo = New CultureInfo(sprache)
System.Threading.Thread.CurrentThread.CurrentUICulture = culture
Server.Transfer( Request.Path)
End Sub
Beachten Sie den Server.Transfer(Request.Path) am Ende. Dies dient dazu, die Seite erneut zu lesen, damit auf der Seite auch die neu ausgewählte Sprache angezeigt wird.
13. Abschließend müssen wir die automatische Auswahl von ASP.Net entfernen. Aus Default.aspx entfernen:
Culture="auto" UICulture="auto"
14. Öffnen Sie es und werfen Sie einen Blick darauf!