rails i18n - translating text with 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:03 UTC
        
        
        Read the original article
        Hit count: 424
        
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