Auf einer asp.net Website sollen zwei Sprachen angezeigt werden: Deutsch und für alle andere Benutzer defaultmäßig Englisch…
Damit angezeigte Sprache und Datums- sowie Zahlenformatierungen in einer asp.net Applikation automatisch den Benutzereinstellungen folgen, ist zunächst folgender Eintrag in der web.config im <system.web> Abschnitt notwendig. Wird er weggelassen, wird die Spracheinstellung des Servers verwendet, die oft nicht der des Users entspricht.
<globalization culture="auto" uiCulture="auto"/>
Weiters werden mindestens zwei Resourcen-Files benötigt. Dazu im Visual Studio (oder Visual Web Developer) mit rechter Maustaste auf das Projekt klicken –> Add –> Add asp.net Folder –> App_GlobalResources. Auf dem neu hinzugefügten Ordner wiederum rechte Maustaste –> Add –> New Item –> Resources File. Benenne das File “Webresources.resx”. Dies wird die englische Default Sprachdatei. Erzeuge ein weiteres Resourcen-File mit Namen “Webresources.de.resx” - dies wird die Sprachdatei für deutsche Benutzer.
In der Spalte “Name” der beiden Resourcen-Dateien werden nun die Bezeichner für die Strings eingetragen wie z.B. “resWelcome”. In die Spalte value kommt der Text der angezeigt werden soll, z.B. “Willkommen” bzw. in der englischen Resourcendatei “Welcome”.
Im asp.net Code wird der Text anschließend wie im folgenden Beispiel platziert:
<asp:Label ID="labelWelcomeText" Text="<%$ Resources:Webresources, resWelcome %>" runat="server"></asp:Label>
Um eine bestimmte Sprache und Region zu erzwingen (z.B. für alle Benutzer deutsch) verändere den Eintrag in der web.config wie folgt:
<globalization culture="de-DE" uiCulture="de-DE"/>
Zieht man das durch das ganze Webprojekt durch, genügt es einfach eine weitere Resourcendatei mit den Übersetzungen hinzuzufügen, um die Website eine weitere Sprache “sprechen” zu lassen.