Yes, just the request. The routing code is not something you can
easily fix. I spent a few hours on trying to figure out where the
actual parsing of arguments happen, but I can't really find the right
spot. Not like the i18n_label stuff where there was this one easy spot
which I had to change (and in the plugin override) to achieve the
effect I wanted.

On Sat, Oct 25, 2008 at 11:44, Sven Fuchs <[EMAIL PROTECTED]> wrote:
>
> Hey Karel,
>
> I'd happily +1 on that ticket :)
>
> But I can not find any code or patch on the ticket, so what would I +1
> on? Just the request?
>
> IIRC the resource_fu plugin solves this kind of thing by "anchoring"
> positioned arguments on the right side, instead of the left (like
> Rails does it by default).
>
> http://www.artweb-design.de/2007/5/13/concise-localized-rails-url-helpers-solved-twice
>
> This won't handle "old-school", non-named urls though using
> the :controller => 'foo', :action => 'bar' syntax, or will it?
>
>
>
> On 24.10.2008, at 11:51, Karel Minarik wrote:
>> I did some further digging, and can confirm that the only (?) problem
>> so far lies in the order, in which the params in routes are filled,
>> precisely as Iain writes.
>>
>> When you have this route definition:
>>
>>  map.resources :books, :path_prefix => '/:locale'
>>
>> Routes like `books_path`, `new_book_path`, etc work great,
>> `book_path(1)` etc throw an exception, because the ID (1) gets filled
>> into :locale and the :id is blank.
>>
>> When you call the helper like this: `book_path(I18n.locale, 1)`,
>> everything works fine and you get:
>>
>>  '/en-US/books/1'
>>
>> If anyone is interested in this being fixed, and having the option to
>> transparently fill the locale in your routes, please visit the ticket
>> page http://rails.lighthouseapp.com/projects/8994-ruby-on-rails/tickets/1251
>> and add your +1s and comments.
>>
>> Karel
>>
>> On Oct 22, 11:19 pm, Karel Minarik <[EMAIL PROTECTED]> wrote:
>>> Yes, indeed it behaves precisely like you describe, Iain. (I've tried
>>> on a sample app -- one question, where do you define
>>> `default_url_options`? I did in ApplicationController.)
>>>
>>> Routes like `books_path` or `new_book_path` work perfect, but not any
>>> route with params.
>>>
>>> If this would work, it would be *awesome*, because it's so
>>> transparent... I don't know nothing about routing internals as well,
>>> so we are in the hands of Destiny on this one? :)
>>>
>>> Best!,
>>>
>>> Karel
>>>
>>> Iain Hecker wrote:
>>>> Hi,
>>>
>>>> I'm sorry, I forgot all about it... Let's recap:
>>>
>>>> The problem is that Rails assigns non-hash objects to the first
>>>> variables in the route and only after that the default_url_options
>>>> get
>>>> assigned. So if you have user_url(1) for routes like
>>>> "/:locale/users/:id" then 1 will be assigned to :locale, and after
>>>> that the default_url_options kick in. They want to set :locale to
>>>> "en-US", but there is no :locale left, so it appends it ?locale=en-
>>>> US.
>>>> Then it raises a routing error because :id hasn't been filled.
>>>
>>>> If you don't have :locale in front, then this method works really
>>>> nice. You'd get what google uses (foo/bar?hl=en).
>>>> But I want to add the locale in front! (/en/foo/bar)
>>>
>>>> I have been wandering on lighthouse and found this ticket:
>>>> http://rails.lighthouseapp.com/projects/8994/tickets/22-default_url_o
>>>> ...
>>>
>>>> I don't know enough about the routing and url generation to solve
>>>> this, so I made a ticket:
>>>> http://rails.lighthouseapp.com/projects/8994-ruby-on-rails/tickets/12
>>>> ...
>>>
>>>> Iain
>>>
>>>> On Wed, Oct 22, 2008 at 18:51, Karel Minarik
>>>> <[EMAIL PROTECTED]> wrote:
>>>
>>>>> Hi,
>>>
>>>>> a while ago Iain mentioned the "default_url_options" method in
>>>>> Rails,
>>>>> which could be just what we need for preserving locale in URLs
>>>>> (thus
>>>>> being restafarians! :)
>>>
>>>>> Have you looked into any further, Iain? Has anybody else? It really
>>>>> looks like this would be perfect & transparent solution.
>>>
>>>>> Here are the docs:
>>>
>>>>> http://www.railsbrain.com/api/rails-2.1.0/doc/index.html?a=M000494&na
>>>>> ...
>>>
>>>>> Karel
>>>
>>>>>> From: "Iain Hecker" <[EMAIL PROTECTED]>
>>>>>> Date: Oct 3, 3:50 pm
>>>>>> Subject: Am I doing it right? (translating my first app)
>>>>>> To: rails-i18n
>>>
>>>>>> ...
>>>
>>>>>> Rails seems to have an answer to it, called
>>>>>> default_url_options[1],
>>>>>> but it doesn't seem to work. I've overwritten the method like
>>>>>> the api
>>>>>> tells me, but somehow it is ignored into generating the path. It
>>>>>> is
>>>>>> called, because it will break if I raise somthing in it. The
>>>>>> options
>>>>>> passed to it are what you'd expect (containing all the parameters
>>>>>> you'd pass to url_for)
>>>
>>>>>> Here's my method:
>>>
>>>>>>   def default_url_options(options = {})
>>>>>>     { :locale => I18n.locale }
>>>>>>   end
>> >
>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"rails-i18n" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/rails-i18n?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to