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: 497
ruby-on-rails
|i18n
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