2010-08-31 34 views
11

config/locales/pl.yml文件(從here採樣):的Rails 2.3.5的I18n月/日的名稱翻譯的問題

pl: 
    date: 
    day_names: [Niedziela, Poniedziałek, Wtorek, Środa, Czwartek, Piątek, Sobota] 
    month_names: [~, Styczeń, Luty, Marzec, Kwiecień, Maj, Czerwiec, Lipiec, Sierpień, Wrzesień, Październik, Listopad, Grudzień] 

script/console

I18n.locale = 'pl' 
=> "pl" 

Time.now.strftime("%A, %B") 
=> "Tuesday, August" 

爲什麼?或者換一種說法 - 我如何獲得翻譯的月份名稱?我還會注意到,語言環境文件是絕對可讀的,因爲它包含了大量其他翻譯,這些翻譯都可以工作。

回答

17

這取決於您正在使用哪個導軌版本。 有一個幫助翻譯,在軌道3.0.0(我不知道它是哪個版本可用)。

在視圖中,你可以寫

localize Time.now, :format => '%A, %B' 
在腳本/控制檯

(或滑軌控制檯)中鍵入:

controller.localize Time.now, :format => '%A, %B' 

,看看它是否工作。 另外還有l助手(小寫的L),這是localize的縮寫:

controller.l Time.now, :format => '%A, %B' 
+0

謝謝!這完全是關於使用'localize'而不是'translate'幫手。順便說一句,在控制檯(在Rails 2.3)它應該是'helper.localize Time.now,:format =>「%B」',而不是'controller.'。另外,你必須在'pl.yml'中有'pl,time,formats'條目。 – 2010-09-01 11:11:10