2016-06-08 26 views
1

t some_translation_key僅在some_translation_key處於第一級時纔會發現,即en.some_translation_key。我想,這將在任何級別找到一個翻譯的方法,那就是:如何在Rails I18n的任何級別找到翻譯?

en: 
    level1: 
    level2: 
     some_translation_key: 'The translation of some translation key' 

我還是想用t some_translation_key訪問它不知道level1level2。有沒有辦法?

回答

1

你會如何翻譯level1.level2.some_keylevel3.level4.some_key區分?

你可以做些什麼來得到簡潔的翻譯鍵是這樣使用它:t '.some_key',這將尋找在#{controller}.#{view}.some_key的關鍵。

舉例來說,如果你有這樣的代碼在app/views/users/new.html.erb

<h1><%= t '.title' %></h1> 

Rails會尋找與關鍵users.new.title翻譯。的http://guides.rubyonrails.org/i18n.html

+0

謝謝,但我基本上想要找到它找到的第一個翻譯字符串。基本上不希望重複,因爲我需要編寫動態代碼來查找「電子郵件」或類似的翻譯。 – Aurimas

+1

如果您的翻譯非常通用,那麼只需使用「全球」鍵,如「app.email」即可。根據我的經驗,如果採用「動態翻譯」風格,翻譯會變得非常多毛。 –

1

您可以使用由點分隔的字符串。

t("level1.level2.some_translation_key") 
+0

我沒有關於'level1'和'level2'的信息,只有結束翻譯字符串。這是我正在處理的一個動態的事情,但是感謝那些顯而易見的,也許對某個人有用。 – Aurimas