2012-11-28 43 views
0

我有簡單的登錄表單。會話不是模型,只是控制器進行身份驗證並保存cookie來記住用戶。翻譯登錄表格

<%= form_for(:session, url:sessions_path, html:{id:"login_form"}) do |f| %> 
    <div> 
    <%= f.label :email %> 
    <%= f.text_field :email %> 
    </div> 
    <div> 
    <%= f.label :password %> 
    <%= f.password_field :password %> 
    </div> 
    <%= f.submit "Login" %> 
<%end%> 

我想這平移,並:email標籤:password,適用機型我知道如何做到這一點:

activerecord: 
    attributes: 
    user: 
     password: Hasło 
     name: Login 
     password_digest: Potwierdzenie hasła 

但在這裏我必須在什麼鍵,我應該把它放在不知道。

回答

0

我改變了這個標籤行:

<%= f.label :password,t("activerecord.attributes.user.password") %>

它的工作原理,但我不知道這是否是最好的方式。

+0

這會得到一些基礎知識,但請考慮遵循Rails指南中提出的模式(我在上面的答案中鏈接),以便讓您的生活更輕鬆,以及遵循和維護代碼的人員:-) –

+0

我改變了翻譯到't(「。password」)'並在session.new.password中輸入trasnlation。這是否更好? –

0

Rails已完全設置爲localization and internationalization, guide linked here

國際化文件的常用位置是config/locales/<language-code>.yml。使用I18N類的t方法在文件中查找關鍵字並返回要用正確語言顯示的值。

還有一個Railscast on I18N雖然它有點過時,最有可能的。

+0

我做到了。閱讀指南兩次,並觀看修訂的電視直播:)。我知道我可以像我回答我的帖子那樣做。我想如果我只用'f.label:password',就有一些'魔術'鍵的路徑,所以我不必爲標籤方法添加額外的t()參數。 –

+0

好吧,在C,C++,Java和其他幾種語言中完成了I18N之後,這與我所見過的魔術差不多:-)。神奇的路徑是'config/locales'。你不需要像'activerecord.attributes.user.password'這樣長的鍵 - 'user.password'(遵循你的模型的結構)可能就足夠了。爲了節省更多的字符,丟失括號並在可能的情況下使用懶惰的查找,例如'<%= f.label:password,t'.password''%> –