Right way to do

What is the right way to print localizations?

<%=t :User %> OR <%=t "User" %> OR <%=t ("User") %>

<%=t :User %> works fine, but <%=t :User.Username %> doesn't, but this
works:
<%=t ("User.Username") %>

What is the right way to print localizations?

<%=t :User %> OR <%=t "User" %> OR <%=t ("User") %>

<%=t :User %> works fine, but <%=t :User.Username %> doesn't, but this
works:
<%=t ("User.Username") %>

I'd go with <%=t "User" %>.

:User works in this case because t() is converting the argument to a string and :User.to_s => "User". :User.Username won't work because there is no "Username" method on the *symbol* "User".

-philip