TOC

This article has been localized into German by the community.

Lokalisierung:

Hallo, lokalisierte Welt!

Versuchen wir, mit den Kenntnissen aus den vorherigen Kapiteln einen Text zu lokalisieren, um zu sehen, ob er funktioniert. Sie sollten ein neues Projekt in Visual Studio erstellen. Sie können die hinzugefügte Standardseite verwenden oder eine neue für diesen Zweck erstellen. Der Inhalt sollte ungefähr so aussehen:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Test.aspx.cs" Inherits="Test" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Demo</title>
</head>
<body>
    <form id="form1" runat="server">
        <asp:Label runat="server" ID="lblHelloWorld" Text="Hello, world!" />
    </form>
</body>
</html>

Wenn Sie es ausführen, erhalten Sie die gute alte "Hallo, Welt!" Nachricht im Klartext wie erwartet. Fügen wir nun etwas Lokalisierungszauber hinzu. Wir werden dafür die lokale, implizite Lokalisierung verwenden - beides sind neue Begriffe, die später erklärt werden. Klicken Sie zunächst mit der rechten Maustaste auf Ihr Projekt und wählen Sie im Untermenü ASP.NET-Ordner hinzufügen die Option App_LocalResources. In diesem Ordner werden lokale Ressourcen abgelegt, die jeweils für eine Datei in Ihrem Projekt spezifisch sind.

Klicken Sie nun mit der rechten Maustaste auf diesen neuen Ordner und fügen Sie ein neues Element hinzu. Dies sollte eine Ressourcendatei sein und der Name sollte mit Ihrer Seite identisch sein, jedoch mit der Erweiterung .resx. Zum Beispiel habe ich meine Seite Test.aspx aufgerufen, daher sollte meine Ressourcendatei Test.aspx.resx heißen. Dieser Teil ist wichtig - wenn ASP.NET eine Ressourcendatei automatisch einer bestimmten ASP.NET-Seite zuordnen soll, sollten die Namen so lauten. Dies ist unsere Standardressourcendatei, die verwendet wird, um die Standardversion unserer Zeichenfolgen beizubehalten. Fügen wir noch ein paar weitere Sprachen hinzu. Wieder wird der Dateiname verwendet, um die Ressourcendatei zuzuordnen. Um beispielsweise eine deutsche Sprachdatei hinzuzufügen, sollte der Name <Dateiname>.aspx.de.resx oder in der kulturspezifischen Version <Dateiname>.aspx.de-DE.resx lauten.

Ich habe Test.aspx.de-DE.resx und Test.aspx.es-ES.resx hinzugefügt, um die Seite ins Deutsche und Spanische zu übersetzen. Dann füge ich Test.aspx.resx eine neue Zeile mit dem Namen lblHelloWorld.Text hinzu. In meinem Projekt ist Englisch die Standardsprache, daher gebe ich dieser Zeile den Wert "Hallo Welt!". Ich öffne dann Test.aspx.de-DE.resx, füge eine Zeile mit dem gleichen Namen wie zuvor hinzu und setze den Wert auf "Hallo, Welt!". Ich mache dasselbe für Test.aspx.es-ES.resx, wo ich den Wert auf "Hola, mundo!" Setze. Ihre drei Ressourcendateien sollten jetzt alle eine Zeile mit dem Namen "lblHelloWorld.Text" und eine lokalisierte Version der Zeichenfolge "Hello world" enthalten.

Kehren Sie jetzt zu unserer ASP.NET-Seite zurück und verwenden Sie die meta: resourcekey -Eigenschaft in unserem Label-Steuerelement, damit diese unsere Ressourcenzeichenfolge verwendet. Es sollte so aussehen:

<asp:Label runat="server" ID="lblHelloWorld" Text="Hello, world!" meta:resourcekey="lblHelloWorld" />

Wie Sie sehen, habe ich die gleiche Zeichenfolge wie für die ID des Steuerelements verwendet. Sie erinnern sich wahrscheinlich daran, dass wir eine Ressourcenzeile mit dem Namen "lblHelloWorld.Text" hinzugefügt haben. Dies entspricht einem Steuerelement mit dem Ressourcenschlüssel "lblHelloWorld", das der Text-Eigenschaft dieses Steuerelements zugeordnet ist. Versuchen Sie nun, die UICulture-Eigenschaft auf Ihrer Seite festzulegen, und führen Sie das folgende Beispiel aus:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Test.aspx.cs" Inherits="Test" UICulture="de-DE" %>

Das Label ist jetzt in Deutsch. Ändern Sie UICulture in "es-ES" und laden Sie die Seite neu. Es ist jetzt in Spanisch. Versuchen Sie dann, es in etwas völlig anderes wie fr-FR zu ändern, und Sie werden stattdessen unsere Standardsprache verwenden, einfach weil wir keine lokalisierte Version des Strings in Französisch haben.

Dies war ein einfaches Beispiel, um Ihnen zu zeigen, wie es funktioniert, aber Sie benötigen ein bisschen mehr Informationen darüber, wie es funktioniert. In den nächsten Kapiteln werden wir uns mit lokaler und globaler Lokalisierung sowie impliziter und expliziter Lokalisierung befassen. An erster Stelle steht jedoch die CultureInfo-Klasse, da sie bei der Lokalisierung häufig verwendet wird.

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!