rails i18n - translating text with inside.
- by egarcia
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?