This article has been localized into German by the community.
Ändern der aktiven Kultur
In einem früheren Kapitel haben wir uns die CultureInfo-Klasse angesehen und kurz besprochen, wie sie für eine Seite geändert werden kann. Da es jedoch so wichtig ist, die aktuelle Kultur zu ändern, wird in diesem Kapitel ein detaillierter Blick auf die verschiedenen Möglichkeiten zur Erreichung dieses Ziels gegeben.
Automatisch
Sowohl Culture als auch UICulture werden automatisch basierend auf den Browsereinstellungen Ihres Besuchers festgelegt. Versuchen Sie, die folgende Seite auszuführen:
<%@ Page Language="C#" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>CultureInfo demo</title>
</head>
<body>
<form id="MainForm" runat="server">
<% Response.Write("Your current culture: " + System.Globalization.CultureInfo.CurrentCulture.DisplayName); %>
</form>
</body>
</html>
Greifen Sie jetzt auf die Spracheinstellungen Ihres Browsers zu:
Internet Explorer: Klicken Sie auf die Schaltfläche Extras, wählen Sie Internetoptionen und klicken Sie dann auf die Schaltfläche Sprachen.
Firefox: Klicken Sie auf das Menü Extras, wählen Sie Optionen, wählen Sie die Registerkarte Inhalt und klicken Sie dann auf die Schaltfläche Auswählen in Gruppe Sprachen.
Fügen Sie eine weitere Sprache hinzu und verschieben Sie sie an den Anfang der Liste. Schließen Sie den Dialog und laden Sie die Seite neu (F5). Sie sehen nun den Namen der Kultur, die Ihrer neu ausgewählten Sprache entspricht.
Die Seitendirektive Klasse
Wie wir im vorherigen Kapitel gesehen haben, können wir einfach sowohl Kulture als auch UI Kultur definieren, indem wir auf die Eigenschaften in der Page-Direktive zugreifen:
<%@ Page Language="C#" Culture="en-US" UICulture="en-US" %>
Da die Page-Direktive nur eine Verknüpfung zur Page-Klasse ist, kann dies auch über CodeBehind erfolgen. Wir müssen dies jedoch zu einem bestimmten Zeitpunkt tun, bevor die Seite gerendert wird, um sicherzustellen, dass sie den gewünschten Effekt hat. Hier kommt die InitializeCulture() -Methode ins Spiel, eine Methode, die von ASP.NET ziemlich früh im Page-Lebenszyklus aufgerufen wird und die Sie überschreiben können:
public partial class CultureInfoTest : System.Web.UI.Page
{
protected override void InitializeCulture()
{
Page.Culture = "en-GB";
Page.UICulture = "en-GB";
}
protected void Page_Load(object sender, EventArgs e)
{
Response.Write(Page.Culture);
}
}
Beachten Sie, dass die Eigenschaften Page.Culture und Page.UICulture selbst lediglich Verknüpfungen zu System.Threading.Thread.CurrentThread.CurrentCulture und System.Threading.Thread.CurrentThread.CurrentUICulture sind.
Global
Sie können die Kultur und UI Kultur für alle Ihre Seiten über die Datei web.config festlegen. Verwenden Sie den Globalisierungsknoten, der ein untergeordneter Knoten des Knotens system.web ist, wie folgt:
<globalization uiCulture="en-US" culture="en-US" />
Bei Bedarf können Sie diese Einstellung auf einzelnen Seiten überschreiben.