2016-05-25 13 views
1

Ich arbeite an einer Website, die international eingesetzt wird. Sehr große Seite, aber der Einfachheit halber ist alles, worum wir uns sorgen, meine Error.aspx mit C# -Code dahinter. Ich möchte diese benutzerdefinierte Fehlerseite so dynamisch wie möglich gestalten. Es gibt mindestens eine Handvoll Sprachen, in denen wir diese Seite jetzt lesen müssen und weitere folgen werden. Diese Seite muss unabhängig und ohne Referenzdatenbank funktionieren.Stand-alone-Fehlerseite mit übersetzten Text?

Ich hätte gerne etwas Text, und die passende Übersetzung erscheint basierend auf der Sprache, die für diese Domäne geeignet ist ... z. ".com" = Englisch, ".ca/fr" = Französisch, ".mx" = Spanisch ... Sie bekommen die Idee.

Was ist der beste Weg, dies zu tun?

Ich habe in APIs untersucht, aber die anständigen haben eine Kostenschwelle, und während es wirklich hilfreich aussehen könnte, ist dies nur ziemlich Standard Fehlermeldung Text, das ist unwahrscheinlich, dass zu ändern scheint, wie Overkill zu haben dynamischer Übersetzer. Es kann mit der Skalierbarkeit helfen, aber es ist unbegrenzt zusätzliches Geld, wenn es nur bei einer Handvoll von Gelegenheiten, bei denen wir eine andere Sprache/ein anderes Land/eine andere Domäne hinzufügen, nur vs.

Die andere Idee, die ich hatte, war es einfach in der C# fest codieren. Analysieren Sie Request.URL und holen Sie sich die Domain und machen Sie eine ständig wachsende switch-Anweisung, die den entsprechenden Text zuweisen würde. (Nebenbei, ich versuche auch, einen besseren Weg zu finden, dies zu tun, aber ist der Ländercode etwas, das eine verfügbare Information von entweder dem Anfrageobjekt oder dem Server wäre?) Dieser Weg wäre unabhängig, präzise, und der einzige Nachteil auf einer konkreten Ebene wären die Kosten für das Hinzufügen neuer Sprachen oder das Ändern jeder Zeichenkette (wahrscheinlich nicht so viele, zumindest auf den ersten), wenn der Inhalt der Fehlermeldung angepasst werden müsste. Aber das fühlt sich wie eine schlechte Übung an.

Ich habe das für einen Tag jetzt erforscht, aber ich habe keine Alternativen zu diesen 2 Optionen gefunden. Was sind die besten Verfahren für die Bearbeitung kleiner Textmengen für die Übersetzung ohne die Verwendung eines CMS?

Antwort

2

Es gibt eine einfache integrierte Möglichkeit zur Lokalisierung in ASP.NET Web Forms. Es verwendet die Spracheinstellungen im Browser des Clients, um die Sprache auszuwählen. Es wäre überflüssig, die Schritte zur Einrichtung zu notieren, denn es gibt viele Informationen zu diesem Thema, die online verfügbar sind. Here is a good tutorial.

EDIT:
Es könnte eine gute Idee sein, auf HTML-Ressourcen-Dateien zu lesen. Das ist der HTML-Standard für den Umgang mit verschiedenen Sprachen (Lokalisierung). Und es ist, was ASP.NET im Hintergrund verwendet, wenn eine lokale Ressource für ein Serversteuerelement erstellt wird.

+1

Große Ressource, genau das, was ich gesucht habe, und ich hätte den Begriff Lokalisierung gehört, sollte diese Punkte verbunden haben, Danke! – Jon

+0

Also nur ein kleiner Fehler in dem Prozess - ich habe gerade gesagt, dass die Kultur von Domäne festgelegt werden muss ... Ich kann das abrufen, und ich kann es vergleichen, was die Seite gerade lädt, und wenn es sich unterscheidet, Ich kann die CurrentThread.CurrentCulture auf den neuen Wert setzen, aber beim Zurückleiten auf die gleiche Seite ist die Kultureinstellung die, die der Browser anfangs gesagt hat ... es gibt eine Möglichkeit, sie auf einen anderen neu zu laden resx spezifisch? – Jon