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.

Reply via email to