2012-08-13 73 views
0

我正在查看rubygems.org的source code以進一步瞭解Rails以及如何將它用於功能性站點。rails'.variable'符號?

我有一個問題是究竟這些做什麼?:

<%= t 'download_count', :count => number_with_delimiter(@downloads_count) %> 
<%= t '.welcome_blurb' %> 

是某處存儲文本download_count.welcome_blurb變量?如果是這樣,我在哪裏可以找到它,它怎麼知道在哪裏看?

回答

7

download_count.welcome_blurb被翻譯的字符串,就可以在相應的語言文件名的文件config/locales/目錄中找到它們,在這種情況下en.yml英語:

download_counthttps://github.com/rubygems/rubygems.org/blob/master/config/locales/en.yml#L11 .welcome_blurbhttps://github.com/rubygems/rubygems.org/blob/master/config/locales/en.yml#L31

welcome_blurb之前的點表示懶惰的查找,這意味着翻譯的名稱空間默認爲您要從中調用它的視圖,如en.yml文件中所示:

home: 
    index: 
... 
    welcome_blurb: "Welcome to your community RubyGem host." 

所以.welcome_blurb實際上是指home.index.welcome_blurb

查看rails i18n documentation瞭解更多詳情。

+0

謝謝噸!真的爲我清除了一些東西 – 2012-08-13 05:50:07

+0

也 - 如果你只有en.yml文件,它不會翻譯成西班牙語嗎? – 2012-08-13 05:55:25

+1

非常歡迎!是的,如果你沒有es.yml文件,它不會翻譯成西班牙文。如果您希望翻譯默認爲英文或其他語言,則可以在'application.rb'中用'config.i18n.fallbacks = true'指定。 – 2012-08-13 05:55:26

1

t是寫作I18n.translate的簡寫方法,它將使用語言環境文件(可能在config/locales中)呈現適合當前語言設置的文本。

查看http://guides.rubyonrails.org/i18n.html瞭解更多詳情。