I'm building a site on google app engine and its core code and database is designed to handle different languages and regions.
What I'm really looking for are suggestions on how the url's should be structured, specifically for a gae/django/python setup, so the website knows what language it should be loading the pages in depending on the url.
Here are my suggestions, please chime in on what you think is best:
SUBDOMAIN: http://fr.mysite.com/ But is this possible to have different subdomains, such as "en", "fr", "de", and still point to the same google app in your account?
DOMAIN EXTENSION: http://www.mysite.fr/ Would it be possible to purchase different domain names for each of the languages, then point it to the same app?
FIRST FOLDER: http://www.mysite.com/fr/about-us This method would work, but would be annoying to code for and I'd rather not have longer urls than needed. Thoughts?
Are there any other options I'm not thinking of? Any advice would be appreciated, thanks.
All three of those are possibilities from a development standpoint. The "domain extension" model is likely to prove to be expensive and possibly impossible depending on your resources and the languages you wish to support - .fr for example is restricted to only residents or entities with a French presence.
The "first folder" model may not be that difficult to program for. When setting up your handlers, you could do something like this:
application = webapp.WSGIApplication(
[
('/(en|fr|de)/', IndexController),
]
Which would then explicitly pass the language identifier in as the first parameter to the handler.
Subdomains, as you pointed out, are going to be the cleanest from a url perspective. As noted in the PythonRuntime Environment docs you can map multiple subdomains to the same application - in fact hosted applications will all respond to [anything].[application name].appspot.com. The host used for access can be extracted from the request object.
Overall it seems like more of a personal preference than anything else.