TOC

This article has been localized into German by the community.

Lokalisierung:

Die Kulturinfo Klasse

Für die Lokalisierung Ihrer Anwendung ist insbesondere eine Klasse von großer Bedeutung: Die CultureInfo -Klasse aus dem System.Globalization -Namensraum. In dieser Klasse erhalten Sie Informationen zu nahezu jeder möglichen Kultur, einschließlich einer Vielzahl kulturspezifischer Einstellungen. Die CultureInfo-Klasse kann Ihnen beim Lokalisieren Ihrer Webseiten wirklich helfen, insbesondere, weil ASP.NET einen Verweis auf die spezifische CultureInfo-Instanz behält, die sich auf einen bestimmten Besucher bezieht. Klingt es kompliziert Lassen Sie mich Ihnen ein kleines Beispiel zeigen:

<%@ Page Language="C#" Culture="Auto" %>
<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>

Versuchen Sie dies auszuführen und Sie erhalten eine Kultur, die mit Ihnen verwandt ist - aber wie? Da die Culture-Eigenschaft der Page-Direktive auf Auto festgelegt ist, wird dies von Ihrem Browser gesteuert. In den meisten Browsern können Sie Ihre bevorzugten Sprachen festlegen. Daraufhin versucht ASP.NET, die für Sie zu verwendende Kultur zu ermitteln. Darauf werden wir später noch näher eingehen. Ihre aktuelle Kultur wird in vielen Fällen verwendet, zum Beispiel beim Formatieren von Daten und Zahlen, da dies von Kultur zu Kultur unterschiedlich ist. Jetzt möchten Sie möglicherweise eine bestimmte Kultur verwenden, unabhängig davon, was Ihr Besucherbrowser Ihnen mitteilt. In diesem Fall können Sie die Culture-Eigenschaft der Seite wie folgt festlegen:

<%@ Page Language="C#" Culture="en-US" %>

Wenn Sie das Beispiel jetzt ausführen, erhalten Sie die Ausgabe "English (United States)" (Englisch) mit einer bestimmten US-Kultur. Englisch gibt es auch in anderen Varianten, zum Beispiel britisch oder australisch. en-US wird als eine spezifische Kultur angesehen, wobei en (nur Englisch) als eine neutrale Kultur angesehen wird, da es sich nur um eine Sprache handelt, die für kein Land spezifisch ist. Führen Sie das folgende Beispiel aus, um den Unterschied zwischen zwei Kulturen zu erkennen:

<%@ Page Language="C#" Culture="en-US" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>CultureInfo demo</title>
</head>
<body>
    <form id="MainForm" runat="server">
        <% Response.Write("Current date, in a culture specific format: " + DateTime.Now.ToString()); %>
    </form>
</body>
</html>

Versuchen Sie nun, die Seite Culture in eine deutsche zu ändern:

<%@ Page Language="C#" Culture="de-DE" %>

Sie werden feststellen, dass genau dieselbe Codezeile ein anderes Ergebnis ausgibt, da dies kulturabhängig ist. Sie können jedoch tatsächlich ein kulturelles Datum (oder eine Zahl oder etwas anderes) ausgeben, ohne die Kultur der Seite zu ändern. Zum Beispiel so:

<% Response.Write("Current date, in a culture specific format: " + DateTime.Now.ToString(System.Globalization.CultureInfo.GetCultureInfo("de-DE").DateTimeFormat)); %>

Wir erhalten einfach einen Verweis auf eine deutsche Kultur und verwenden ihn dann als Parameter für die ToString() - Methode in der DateTime-Klasse. CultureInfo enthält eine NumberFormat-Eigenschaft zum Formatieren von Zahlen. Das Formatieren von Datums- und Zahlenangaben ist natürlich nur ein kleiner Teil der Lokalisierung einer Anwendung. Die CultureInfo-Klasse ist jedoch die Grundlage dieses Prozesses (oder kann dies zumindest sein), vor allem, weil sie so gut in das .NET-Framework und insbesondere in ASP.NET integriert ist.

Kultur vs. UIKultur

Dies war alles über die Culture-Eigenschaft, aber die Page-Klasse kommt mit einer anderen verwandten Eigenschaft: der UICulture-Eigenschaft. UI steht für User Interface. Dies ist also die Eigenschaft, mit der wir die Sprache identifizieren können, die für den visuellen Teil der Seite verwendet wird, während die Culture-Eigenschaft für Nicht-UI-Elemente wie Datums- und Zahlenformatierung und Sortierung verwendet wird und so weiter. In vielen Situationen möchten Sie dieselbe Kultur und dieselbe UICulture verwenden. In einigen Fällen möchten Sie diese beiden jedoch trennen, z.B.: wenn der Text einer Website lokalisiert werden soll, aber dennoch ein konsistentes Datum oder ein konsistentes Zahlenformat ausgegeben werden soll, egal woher der Benutzer kommt.


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!