Frage

Ich habe eine Website, die letztlich Unterstützung 4 Sprachen und 2 Länder (USA, Kanada, Englisch und Spanisch)

Ich Frage mich, was ist der beste Weg, um set up die Verzeichnis-Struktur?

Jetzt habe ich eine root-site, die als site.com:

Dies bringt Sie zu einer Seite, wo Sie wählen Sie Ihr Land und Ihre Sprache.

Im Idealfall möchte ich das Verzeichnis wie folgt:

site.com/ca/en/ (Canada English)
site.com/ca/fr/ (Canada French)
site.com/us/en/ (US English)
site.com/us/es/ (US Spanish)

Aber das bedeutet, ich werden setzen ein "ca" und "uns" virtuelles Verzeichnis und Sprache virtuellen Verzeichnisse in die.IST, dass eine gute Praxis, oder sollte ich etwas tun wie:

site.com/ca-en/ (Canada English)
site.com/ca-fr/ (Canada French)
site.com/us-en/ (US English)
site.com/us-es/ (US Spanish)

edit:Ich habe Folgendes getan:

Es ist ein dummy-Verzeichnis:/ca/ und /us/ in der Anwendung.Sie beide haben ein Standard.aspx-das ist nur ein redirect.In meinem Fall, ich leiten Sie Sie auf Ihrer Englisch-sprachigen Websites:

Zum Beispiel:site.com/ca/ --> site.com/ca/en/ site.com/us/ --> site.com/us/en/

wenn site.com eingegeben wird, sind Sie gedrückt, um eine Sprache Auswahl Seite.Grundsätzlich verwende ich einen regulären Ausdruck in Global.asax auf jede Anfrage zu suchen, die Sprache/Kultur string.

Dies hat die folgenden Vorteile.- Land-Trennung.So haben Sie die Kontrolle über site.com/ca/ oder site.com/us/ und in der Lage sind zu bieten eine einfache URL für jedes Land.

Sowieso, die Virtuellen Verzeichnisse /en/ /fr/ und /en/ innen Ihre jeweiligen Land, in physischen Ordnern.

So haben Sie die folgende (Virtuelle Verzeichnisse sind in Fett):

site.com/ca/en/ (Standard) site.com/ca/fr/ site.com/us/en/ (Standard) site.com/us/es/

Was dies bedeutet ist, dass Sie brauchen, um fünf (identisch) die Applikationen, außer Sie können verwenden Sie die URL, um die aktuelle Sprache und das Land (und zeigen Sie es auf der richtigen Datenbank).

War es hilfreich?

Lösung 2

Gut, Sie möchten die Url für jede Seite.

Im wesentlichen ist es eigentlich eine Seite (gewartet) und wir sind mit der Globalisierung zu bestimmen, welche Verbindungszeichenfolge zu verwenden (verschiedene Datenbanken, identische Strukturen in jedem)

Jedes mal, wenn wir veröffentlichen, werde ich veröffentlichen zu vier Standorten.Identische app.

Globalisierung mithilfe einer URL, die KLINGT wie eine gute Idee, aber ich glaube nicht, dass es Spinne richtig, und selbst wenn Sie es tut, wird nicht eine gute bookmarkable link.(Französischer person sendet einen link zu einer anderen französischen person, die mit einem computer auf Englisch).Gibt es andere Auswirkungen, aber es gibt einen Grund, warum Websites wie apple und microsoft verwenden Sie unterschiedliche urls für jede Sprache/Kultur.

Auf jeder Sitzung starten, ich überprüfen Sie die url, und stellen Sie die Verbindung Zeichenfolgen entsprechend.

IN DAS ENDE, ich habe nur ein /ca/ und /de/ Verzeichnis in der Anwendung, fügen Sie einige virtuelle Verzeichnisse, um jede Sprache eine Antwort umleiten, um das "Sprache wählen" Seite.

Vielleicht nicht die beste Lösung, aber es scheint zu funktionieren.

Ein weiterer Vorteil dieser Methode ist, wenn es eine spezielle Seite, die nur für einen Standort, sondern es kann Hinzugefügt werden, dass die site nur.

Andere Tipps

Warum nicht mit einer Website und überprüfen Sie die client-Einstellung (Anforderung.servervariables / HTTP_ACCEPT_LANGUAGE) für welche Sprache zu verwenden und mit dem eingebauten Globalisierung asp.Net?

Wenn Sie völlig unterschiedliche Inhalte gezeigt werden, je nach Land/die Sprache, dann kann ich verstehen, warum trennen Sie Sie wie, dass.

allgemein anerkannte Nomenklatur für die Lokalisierung ist ll-CC for language code Bindestrich-Land-code.Beispiel:de-US, wenn de-de, wäre wahrscheinlich die Standard en-GB en-CA als ersatzoption...es-MX, etc sind auch würdig ist.Kann es besser sein, auf subdomains obwohl, die es erlauben würde, für die Aufteilung von Ressourcen, ohne dass komplexe load balancing Regeln vor.ex:us.en.yoursite.com ...dies ermöglicht auch eine einfachere Aufteilung von Servern in einer Serverfarm-Umgebung.Ich würde vorschlagen, dass der eigentliche code der gleiche mit einer änderung an den Einstellungen pro site, entsprechend der Lokalisation.Verwenden Sie dann eine Lokalisierung Ressource, die Sie übergeben, eine textuelle Schlüssel, und die Sprache der übersetzung behoben ist, basierend auf der Website-Lokalisierung Muster.Hinweis:.Net und andere Plattformen bieten resource Lokalisierungs-Optionen eingebaut.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top