Ich denke, es hängt sehr davon ab, wie Ihre Anwendung die Benutzersprachen behandelt (will). Wenn sich Ihre Benutzer auf Ihrer Website anmelden müssen, haben Sie wahrscheinlich eine Seite mit Kontoeinstellungen mit einem entsprechenden Benutzerprofilobjekt oder etwas ähnlichem dahinter. In einem solchen Fall würde ich denken, dass Sie diese Einstellungen in der DB speichern würden, und wenn der Benutzer auf Ihre Website zurückkommt, erhalten Sie die Benutzerinformationen irgendwie (d. H. Von einem Cookie), laden Sie Ihr Benutzerprofilobjekt aus der Datenbank. Die Informationen würden in einer Sitzung aufbewahrt, da ich denke, dass dies in diesem Fall am besten geeignet wäre. Wenn sich Ihre Benutzer nicht anmelden müssen, sodass Sie sie im Grunde nicht direkt identifizieren können, würde ich die Spracheinstellungen in einem Cookie speichern. Dies gibt Ihrem Benutzer den Wert, dass er die Seite immer in seiner bevorzugten Sprache finden wird, wenn er später wiederkommt (da er die Cookies nicht löscht und die Lebensdauer des Cookies lang genug ist). Als dritte Möglichkeit können Sie die Sprache des Benutzers anhand seiner Standard-Browsereinstellungen identifizieren (wie oben bereits erwähnt).
Wie gesagt, es hängt wirklich von den Bedürfnissen Ihrer Anwendung ab. Was Sie jedoch im Auge behalten müssen, ist das
Tschüss
Eine weitere Überlegung, die in keiner der anderen Antworten erwähnt wird, ist Suchmaschinenfreundlichkeit. Wenn Sie für jede Sprache eine andere URL verwenden
http://{en|cy}.example.com/subdir/ or http://example.com/{en|cy}/subdir), dann können Suchmaschinen Ihre Website in mehreren Sprachen indizieren.
Wenn Sie dieses Szenario betrachten, in dem ein Benutzer eine Reihe von Seiten in "en" durchsucht hat und die Sprachinformationen in der Cookie-Sitzung gespeichert wurden und Seiten zwischengespeichert wurden (http, browser, app) ..
Wenn die Sprache vom Benutzer auf "cy" umgeschaltet wird, würde eine Änderung für die aktuelle Seite erfolgen, aber wenn der Benutzer zu einer Seite zurückkehrt, die er zuvor besucht hat (wo die Header-Caches abgelaufen sind, ist er nicht abgelaufen) Lade die Seite in "en" hoch, da die Querystring die Sprache nicht angibt - damit Inhalte in dieser Sprache geliefert werden können.
Es ist unwahrscheinlich, dass ein Benutzer die Sprache so häufig ändern möchte - aber als Entwickler ist es ein Szenario, das behandelt werden sollte.
irgendwelche Ideen, bitte zögern Sie nicht zu schreien.
Profileigenschaften wurden speziell zum Speichern von Benutzerprofilen erstellt. spezifische Präferenzen. Dies wäre ein guter Ort, um diese Art von Daten zu speichern.
Es gibt eine Eigenschaft, die übergeben wird, wenn ein Browser eine Anfrage stellt, die Sie verwenden können. Auf diese Eigenschaft wird in Ihrem Code durch Verweisen verwiesen:
%Vor%Alternativ können Sie den Benutzer auffordern, eine bevorzugte Sprache anzugeben und sie in einem Cookie zu speichern.
Fügen Sie in Ihrem Page.Load-Handler Folgendes ein:
%Vor%Querystring ist nicht der richtige Ort dafür, es sei denn, es wird zuerst von der Querystring gelesen und woanders gespeichert.
Speichern Sie es in einem Cookie, oder wenn Cookies deaktiviert sind, speichern Sie es in Sitzung oder Viewstate.
Kevins Antwort "profile properties" ist eine einfache Möglichkeit, eine etablierte Bibliothek mit minimalem Aufwand für Sie schwer zu machen.
Tags und Links c# asp.net internationalization multilingual