rails i18n - translating text with links inside.

Posted by egarcia on Stack Overflow See other posts from Stack Overflow or by egarcia
Published on 2010-03-30T08:59:13Z Indexed on 2010/03/30 9:33 UTC
Read the original article Hit count: 466

Filed under:
|

Hi there!

I'd like to i18n a text that looks like this:

Already signed up? Log in!

Note that there is a link on the text. On this example it points to google - in reality it will point to my app's log_in_path.

I've found two ways of doing this, but none of them looks "right".

The first way I know involves having this my en.yml:

log_in_message: "Already signed up? <a href='{{url}}'>Log in!</a>"

And in my view:

<p> <%= t('log_in_message', :url => login_path) %> </p>

This works, but having the <a href=...</a> part on the en.yml doesn't look very clean to me.

The other option I know is using localized views - login.en.html.erb, and login.es.html.erb.

This also doesn't feel right since the only different line would be the aforementioned one; the rest of the view (~30 lines) would be repeated for all views. It would not be very DRY.

I guess I could use "localized partials" but that seems too cumberstone; I think I prefer the first option to having so many tiny view files.

So my question is: is there a "proper" way to implement this?

© Stack Overflow or respective owner

Related posts about ruby-on-rails

Related posts about i18n