Pregunta

Estoy construyendo un sitio en Google App Engine y su código del núcleo y la base de datos está diseñado para manejar diferentes idiomas y regiones.

Lo que realmente estoy buscando son sugerencias sobre cómo los de URL debe ser estructurados, específicamente para un gae / Django / Python configuración, por lo que el sitio web sabe en qué idioma se debe cargar las páginas en función de la URL.

Aquí están mis sugerencias, por favor carillón adentro en lo que cree que es mejor:

SUBDOMINIO: http://fr.mysite.com/ Pero, ¿es posible tener diferentes subdominios, como "en", "fr", "de", y todavía apuntar a la misma aplicación Google en su cuenta?

extensión de dominio: http://www.mysite.fr / ¿Sería será posible comprar nombres de dominio diferente para cada uno de los idiomas, haga que señale a la misma aplicación?

primera carpeta: http://www.mysite.com/fr/about- nosotros Este método funcionaría, pero sin ser molesto para codificar y yo preferiría no tener las URL más largos de lo necesario. Pensamientos?

¿Hay otras opciones que no estoy pensando? Cualquier consejo sería apreciado, gracias.

¿Fue útil?

Solución

Los tres de esas son las posibilidades de un punto de vista del desarrollo. El modelo de "extensión de dominio" es probable que llegar a ser caro y hasta imposible, en función de sus recursos y los idiomas que desea apoyo -. .Fr, por ejemplo, se limita únicamente a los residentes o entidades con una presencia francesa

El modelo de "primera carpeta" no puede ser tan difícil de programa para. Cuando la configuración de los controladores, usted podría hacer algo como esto:

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

¿Qué pasaría entonces de manera explícita el identificador de idioma en el que el primer parámetro al controlador.

Los subdominios, como usted ha señalado, va a ser el más limpio desde una perspectiva url. Como se señala en la documentación PythonRuntime medio ambiente puede asignar a varios subdominios la misma aplicación - en aplicaciones de datos hospedada todos responden a [nada] [nombre de la aplicación] .appspot.com.. El huésped usado para el acceso puede ser extraído de la solicitud objeto.

En general, parece que más de una preferencia personal que otra cosa.

Otros consejos

Sólo quería señalar que esto también se podría hacer con un prefijo en la url. Como los siguientes:

www.site.com/en/rest_of_url

www.site.com/fr/rest_of_url

la aplicación sería configuración como esta:

 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)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top