Hi,

On Fri, Jul 5, 2013 at 5:39 PM, Yanick Champoux <yanick@babyl.dyndns.org> wrote:
On Fri, Jul 05, 2013 at 05:19:37PM +0100, Pedro Melo wrote:
> Hi,
>
> I'm being asked to write a webapp for a site that will have three versions
> for, one for each language.
>
> The current idea is to use http://site.tld/en/, http://site.tld/de/ and
> http://site.tld/fr/.
>
> I'll need to think this over on how to do this with Dancer2, but I want to
> reuse as much as possible of the routes between the three sites.
>
> Does anybody did this before and can share a strategy? My current best
> solution for this would be to had a hook as soon as possible and remove the
> first level path if it matches one of the languages we support and set a
> var for it.
>
> Any other suggestions?

In the same vein:

use Dancer2;


get '/*/**' => sub {
    var lang => (splat)[0];
    pass;
};

prefix '/*';

my %greeting = (
    en => 'howdie',
    fr => 'bonjour',
    de => 'hallo',
);

get '/welcome' => sub {
    return $greeting{ var 'lang' };
};


Yeah, this is similar to what I was playing with...
 

 
Another idea (and I'm just thinking out loud, so take all
here with a grain of salt) could be to have a nginx or apache
 reverse proxy taking in the urls /de/*, /fr/*, /en/*, rewrite
them as the prefix-less '*', and pass the language as an
environment variable.

Also though of that, and I might be going this route. The big disadvantage is that url_for doesn't work properly anymore. 

In the same vein, you could have en.site.tld, fr.site.tld, etc.

This the client doesn't want. I tried.

Thanks,
--
Pedro Melo
@pedromelo
http://www.simplicidade.org/
xmpp:melo@simplicidade.org
mailto:melo@simplicidade.org