Hi,

@1 yes, routes_in does the magic for you, it works perfectly for me, you
should also consider to modifying routes_out to convert links back to
/yourapp/en/.... format or you can do it "manually" in your templates ...

@2 yes, internalization framework T(...) should be used just for application
labels and short text, for content you should definitely use database backed
text. For small and fixed number of languages (2-3) I would use database
columns like text_en, text_fr. If you need to support many languages, I
would recomend create extra table with structure: ID, LANGUAGE, TEXT and
link it to your table with content and replace your text field with
reference to ID in this new table. Then you can select correct translation
using ID and selected language.

Jiri

2010/3/15 aure <aureliengir...@googlemail.com>

> Please, I would need some help for developing a multilanguage website.
>
>
> 1. I would like to use different URLs for each language:
>
> /myapp/en/index.html
> /myapp/en/user.html
> ...
>
> /myapp/fr/index.html
> /myapp/fr/user.html
> ...
>
> My problem is that I would rather avoid making duplicates of
> index.html in different languages. I need only one such file, but I
> want the URL to show like /myapp/en/index.html for an English version
> of the page and /myapp/fr/index.html for a French version. How can
> this be achieved?
>
> Is the method described by Massimo (with routes_in...) the solution to
> my problem? (I have tried to play with it but have not managed to get
> it to actually work).
>
> 2. Then, it seems it would be best not using T(...) when the content
> is big, let us say for a post on a blog. Am I right? In that case
> would it be a good solution to have a table in the database storing
> posts with a language column to differentiate them by language?
>
> Thanks in advance.
>
> Aurelien
>
> On 19 avr 2009, 17:08, Jiri Zahradil <jiri.zahra...@gmail.com> wrote:
> > I tried to investigate that and it is clear that content localized by
> > session/browser preferance only *cannot* be properly indexed by search
> > engines. Localized version of content must have 1) own URL, 2) must have
> > properly set Content-Language in HTTP headers (can be set by meta tag
> also).
> > --
> > Jiri
> >
> > On Sun, Apr 19, 2009 at 5:05 PM, mdipierro <mdipie...@cs.depaul.edu>
> wrote:
> >
> > > I do not know. This may help:
> >
> > >http://www.seoconsultants.com/meta-tags/language.asp
> >
> > > On Apr 19, 5:03 am, jiri <jiri.zahra...@gmail.com> wrote:
> > > > Thanks, routes_in fragment seems to be what I was looking for.
> Session
> > > > variable for remembering last selected language - I like that, I am
> > > > going to include that also.
> >
> > > > I am not sure about handling language purely using sessions in
> > > > general. It could be  worthful if you have an app like webmail for
> > > > example and you want to translate it. But in case of site with
> content
> > > > in multiple languages I believe that right way is to have pages
> > > > (content) in different languages to have different URLs. How can
> > > > search engine handle different language version of page/article if
> > > > language is handled using sessions(and browser language setting)
> > > > only?
> >
> > > > Jiri
> >
> > > > On 18 Dub, 17:41, mdipierro <mdipie...@cs.depaul.edu> wrote:
> >
> > > > > Personally I do not user routes much and I like to do
> >
> > > > > if request.vars.force_language: session.force_language
> > > > > if session.force_language: T.force(force_language)
> >
> > > > > and have button in the 'index' page that reload the index page in
> > > > > various languages
> >
> > > > > <a href="{{=URL(r=request,vars=dict(force_language='fr-
> > > > > fr'))}}">French</a>
> >
> > > > > Because of the session var, web2py will remember my preferred
> > > > > language.
> >
> > > > > Massimo
> >
> > > > > On Apr 18, 10:35 am, mdipierro <mdipie...@cs.depaul.edu> wrote:
> >
> > > > > > routes_in = (
> > > > > > ('/yourapp/static/(?P<any>.*)','/yourapp/static/$any'),
> > > > > >
> ('/yourapp/$language/(?P<any>.*)','/yourapp/default/$any?_language=
> > > > > > $language'),
> > > > > > )
> >
> > > > > > and in your model
> >
> > > > > > if request.vars._language: T.force(request.vars._language)
> >
> > > > > > Massimo
> >
> > > > > > On Apr 18, 9:49 am, Iceberg <iceb...@21cn.com> wrote:
> >
> > > > > > > By the way, I believe the T("...") handles short phrase better,
> but
> > > if
> > > > > > > you need to deal with some long article such as company
> background
> > > > > > > description, it will also be a good choice to manually organize
> > > your
> > > > > > > file as:
> > > > > > >   yourapp/static/en/about.html
> > > > > > >   yourapp/static/de/about.html
> > > > > > >   ...
> >
> > > > > > > On Apr18, 10:09pm, Jason Brower <encomp...@gmail.com> wrote:
> >
> > > > > > > > It's my understanding the web2py takes care of all the multi
> > > language
> > > > > > > > stuff automatically, no need to set it in the browser.
> > > > > > > > Just set the language file and make sure to put a T("")
> Around ya
> > > > > > > > strings.
> > > > > > > > br-
> > > > > > > > Jason Brower
> >
> > > > > > > > On Sat, 2009-04-18 at 04:14 -0700, jiri wrote:
> > > > > > > > > Hello,
> >
> > > > > > > > > I am new to web2py and I am working on multi-language site
> > > using this
> > > > > > > > > framework. What is the best way to structure URLs for such
> > > site?
> > > > > > > > > Previously I used this scheme (see below) in Pylons
> framework,
> > > it was
> > > > > > > > > mapped using routing module to "lang" parameter and then
> > > correct
> > > > > > > > > language was set up just before selected controller
> function
> > > (by URL)
> > > > > > > > > was called. What I need to do to use this scheme in web2py
> or
> > > what is
> > > > > > > > > the recommended way to do this?
> >
> > > > > > > > > /en/about/
> > > > > > > > > /en/products/
> > > > > > > > > ...
> > > > > > > > > /de/about/
> > > > > > > > > /de/products/
> > > > > > > > > ...
> > > > > > > > > /es/about/
> > > > > > > > > /es/products/
> > > > > > > > > ...
> >
> > > > > > > > > Jiri
>

-- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To post to this group, send email to web...@googlegroups.com.
To unsubscribe from this group, send email to 
web2py+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/web2py?hl=en.

Reply via email to