Domanda

Sto costruendo un sito su Google App Engine e il suo codice di base e il database è progettato per gestire lingue e regioni diverse.

Quello che sto davvero cercando sono suggerimenti su come l'URL dovrebbero essere strutturati, in particolare per un Gae / Django / Python messa a punto, in modo che il sito web sa che lingua si deve caricando le pagine a seconda del URL.

Qui sono i miei suggerimenti, si prega di carillon in su quello che pensi sia meglio:

sottodominio: http://fr.mysite.com/ Ma è possibile avere diversi sottodomini, come ad esempio "en", "fr", "de", e ancora puntare allo stesso Google App nel tuo account?

DOMINIO ESTENSIONE: http://www.mysite.fr / Would It possibile acquistare i nomi di dominio diversi per ciascuna delle lingue, quindi puntare alla stessa applicazione?

prima cartella: http://www.mysite.com/fr/about- Questo metodo avrebbe funzionato, ma sarebbe fastidioso per il codice e preferirei non avere gli URL più lunghi del necessario. Pensieri?

Ci sono altre opzioni non sto pensando di? Tutto il consiglio sarebbe apprezzato, grazie.

È stato utile?

Soluzione

Tutti e tre di questi sono possibilità dal punto di vista dello sviluppo. Il modello di "estensione del dominio" è probabile che rivelarsi costoso e possibilmente impossibile a seconda delle vostre risorse e le lingue che si desidera supporto -. .Fr per esempio è limitato ai soli residenti o entità, presenza francese

Il modello "prima cartella" non può essere così difficile da programmare per. Durante l'impostazione dei gestori, si potrebbe fare qualcosa di simile:

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

che sarebbe poi passare esplicitamente l'identificatore lingua come primo parametro al gestore.

Sottodomini, come lei ha sottolineato, stanno per essere il più pulito dal punto di vista URL. Come indicato nella documentazione del PythonRuntime Ambiente è possibile mappare più sottodomini a la stessa applicazione - in applicazioni infatti ospitato saranno tutti rispondono al [nulla] [nome dell'applicazione] .appspot.com.. L'host utilizzato per l'accesso può essere estratto dall'oggetto richiesta.

Nel complesso sembra più di una preferenza personale che altro.

Altri suggerimenti

volevo solo far notare che questo potrebbe essere fatto anche con un prefisso nell'URL. Come queste:

www.site.com/en/rest_of_url

www.site.com/fr/rest_of_url

l'app sarebbe messa a punto in questo modo:

 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)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top