Сайт приложений Google App, построенный для международной аудитории, несколько языков

StackOverflow https://stackoverflow.com/questions/4081756

Вопрос

Я строю сайт на приложении Google App, и его основной код и база данных предназначены для обработки различных языков и регионов.

То, что я действительно ищу, являетесь предложениями о том, как URL-адрес должен быть структурирован, в частности для настройки GAE / Django / Python, поэтому веб-сайт знает, на каком языке он должен загружать страницы в зависимости от URL.

Вот мои предложения, пожалуйста, позвоните на то, что вы думаете, лучше всего:

Поддомен: http://fr.mysite.com/ Но возможно, это возможно иметь разные субдомены, такие как «en», «FR», «de» и все еще указывают на то же приложение Google в вашей учетной записи?

Расширение домена: http://www.mysite.fr./ Было бы возможно приобрести разные доменные имена для каждого из языков, затем укажите его в одно и то же приложение?

Первая папка: http://www.mysite.com/fr/about-us. Этот метод будет работать, но было бы раздражает кодировать, и я бы предпочел не иметь более длинных URL, чем необходимо. Мысли?

Есть ли другие варианты, о которых я не думаю? Любой совет будет оценен, спасибо.

Это было полезно?

Решение

Все три из них являются возможностями с точки зрения развития. Модель «расширения домена», вероятно, окажется дорогим и, возможно, невозможным в зависимости от ваших ресурсов и языков, которые вы хотите поддержать - .fr, например, ограничен только жителями или организациями с французским присутствием.

Модель «Первая папка» может быть не так сложно программировать. При настройке ваших обработчиков вы можете сделать что-то подобное:

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

Что затем явно пропустите идентификатор языка в качестве первого параметра для обработчика.

Поддомены, как вы указали, стану самыми чистыми с точки зрения URL. Как отмечено в Экокраса Pythonruntime Документы Вы можете сопоставить несколько поддоменов к тому же приложению - на самом деле принимаемые приложения все отвечают на [что-нибудь]. [Название приложения] .Appspot.com. Хост, используемый для доступа, может быть извлечен из объекта запроса.

В целом это кажется больше личных предпочтений, чем что-либо еще.

Другие советы

Я просто хотел указать, что это также можно сделать с префиксом в URL. Как это:

www.site.com/en/rest_of_url.

www.site.com/fr/rest_of_url.

Приложение будет установлено так:

 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)
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top