On 13 Jan 2014, at 7:00 AM, Gael Princivalle <gaelprinciva...@gmail.com> wrote: > Thanks Alan, Jonathan. > > I've test more this simple solution: > routers = dict( > BASE = dict(default_application=' > test'), > test = dict(languages=['en', 'it'], default_language='it'), > ) > > And it works fine for me. > > The only problem I have now if for switching between two languages reloading > the current function. > If fact if I switch with (in my menu): > {{response.menu.append(('IT', False, URL('it', 'index'), [('EN', False, > URL('en', 'index'), [])]))}} > > It works fine. > If I try with request.function, request.function give me the language + the > function: > {{response.menu.append(('IT', False, URL('it', request.function), [('EN', > False, URL('en', request.function), [])]))}} > So if I have mydomain.com/it and I ask for english, web2py tries to load > mydomain.com/it/en . KO. > > Is there an elegant way to avoid this problem of do I have to play with a > session variable ?
There's apparently a deficiency in URL that makes this difficult for you. URL gets the language to insert into the outgoing URL from request.uri_language, and has no language argument to override it. That could and should be fixed. In the meantime, here's a hack you could use (not tested). It needs to be converted to template format, but you'll get the idea. uri_language = request.uri_language urls = {} for lang in ('it', 'en'): request.uri_language = lang urls[lang] = URL(request.function) request.uri_language = uri_language {{response.menu.append(('IT', False, urls['it'], [('EN', False, urls['en'], [])]))}} -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.