Frage

Ich baue eine Website auf Google App Engine und seinem Kern-Code und Datenbank ist so konzipiert, verschiedene Sprachen und Regionen zu behandeln.

Was ich suche wirklich sind Vorschläge, wie die URL der sollte strukturiert werden, die speziell für eine gae / django / Python-Setup, so dass die Website weiß, was Sprache soll es die Seiten auf der URL in Abhängigkeit wird geladen.

Hier sind meine Vorschläge, bitte läuten auf das, was Sie denken, ist am besten können:

SUBDOMAIN: http://fr.mysite.com/ Aber ist dies möglich, verschiedene Sub-Domains zu haben, wie „en“, „fr“, „de“, und immer noch auf den gleich Google App auf Ihrem Konto zeigen?

Domain-Endung: http://www.mysite.fr / Wäre es möglich, verschiedenen Domain-Namen für jede der Sprachen zu kaufen, es dann auf die gleiche Anwendung zeigen?

erste Ordner: http://www.mysite.com/fr/about- wir Mit dieser Methode funktionieren würden, wären aber zu Code ärgerlich sein, und ich habe lieber nicht mehr Urls als nötig. Gedanken?

Gibt es andere Optionen, die ich bin nicht zu denken? Jede Beratung wird gebeten, danke.

War es hilfreich?

Lösung

Alle drei sind solche Möglichkeiten aus entwicklungs Standpunkt. Die „Domain-Endung“ -Modell ist wahrscheinlich teuer sein und möglicherweise unmöglich zu beweisen, je nach Ressourcen und die Sprachen, die Sie unterstützen möchten -. .Fr zum Beispiel nur Bewohner oder Entitäten mit einer Französisch Präsenz beschränkt

Das „erster Ordner“ Modell kann nicht so schwer zu Programm. Wenn Ihre Handler einrichten, können Sie etwas tun:

application = webapp.WSGIApplication(
[
  ('/(en|fr|de)/', IndexController),
]

Welche dann explizit die Sprachkennung in als ersten Parameter an die Prozedur übergeben würde.

Subdomains, wie Sie weist darauf hin, wird die sauberste von einer URL Perspektive sein. Wie in der PythonRuntime Environment docs können Sie auf mehrere Subdomains Karte die gleiche Anwendung - in der Tat gehosteten Anwendungen werden alle reagieren auf [alles] [Anwendungsname] .appspot.com.. Gastgeber für den Zugriff verwendet wird, kann aus dem Request-Objekt extrahiert werden.

Insgesamt scheint es, wie eher eine persönliche Präferenz als alles andere.

Andere Tipps

Ich wollte nur darauf hinweisen, dass dies auch mit einem Präfix in der URL getan werden könnte. Wie diese:

www.site.com/en/rest_of_url

www.site.com/fr/rest_of_url

die App-Setup so sein würde:

 class LanguageHandler(webapp2.RequestHandler):
     def dispatch(self):
         request = self.request
         args = request.route_args
         if len(args) and args[0] in ['en','fr']:
             self.language = args[0]
             request.route_args = args[1:]
         try:
             # Dispatch the request.
             webapp2.RequestHandler.dispatch(self)
         finally:
             # The web page response Header will now include the 2 letter language code...
             self.response.headers['Content-Language'] = str(self.language)

 class HomePage(LanguageHandler):
     def get(self):
         # self.language is now 'en' or 'fr'
         # ...code goes here...

 app = webapp2.WSGIApplication([
     (r'/(en|fr)', HomePage),
 ], debug = True)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top