0

我正在使用Ruby on Rails 3.2.13 Ruby 1.9.3。Ruby on Rails I18n - 日期的本地化在localhost中生效但尚未生產

我在en.yml文件下面的代碼:

date: 
    formats: 
    default: "%Y-%m-%d" 
    short: "%b %d" 
    long: "%A, %B %d, %Y" 
    mmyy: "%B %Y" 

我在fr.yml文件下面的代碼:media_created

date: 
    formats: 
    default: "%Y-%m-%d" 
    short: "%b %d" 
    long: "%A, %d %B %Y" 
    mmyy: "%B %Y" 

我的日期字段存儲在字符串中YYYY-MM-DD格式

這裏是在我的視圖,以顯示在我的視圖短日期格式的代碼:

<%= l media_item.media_created.to_date, format: :mmyy %> 

下面是如何我的短格式在本地主機(日期2013-07-01)工作的例子:

July 2013 (en) 
juillet 2013 (fr) 

這裏是我的長格式生產是如何工作的一個例子(日期2013年7月-01):

July 2013 (en) 
July 2013 (fr) 

這裏是在我的視圖的代碼,以顯示在我的視圖長日期格式:

<%= l media_item.media_created.to_date, format: :long %> 

這裏是我的長格式在本地主機是如何工作的一個例子(日期2013年6月23日這是上週日):

Sunday, June 23, 2013 (en) 
dimanche, 23 juin 2013 (fr) 

這裏是我的長格式生產是如何工作的一個例子(日期2013-06 -23):

Sunday, June 23, 2013 (en) 
Sunday, June 23, 2013 (fr) 

我閱讀對堆棧溢出的http://guides.rubyonrails.org/i18n.html和幾個例子,如第3.3節中描述其中所用的升幫手。然而,在第5節中,它討論瞭如何使用t助手進行自定義翻譯。我用我的所有其他國際化國際化,它工作正常。唯一的問題是當我使用l助手的日期。

我查找了如何使用t幫助程序的示例,如鏈接Rails指南鏈接中所述。該鏈接沒有給出如何使用字段名稱對語句進行編碼的示例。我在堆棧溢出中找到的所有示例都使用l幫助程序或strftime方法。我希望能夠'翻譯'日期格式,就像生產中的其他應用程序一樣,它可以在本地主機中工作。我已經檢查了所有已更改的文件,以便在生產服務器上執行此操作,以確保所有文件都已移到那裏。從我讀過的東西看來,似乎l助手可能不適合定製翻譯。也許使用T幫助程序會照顧Rails指南所提出的這個問題。我會繼續尋找能否找到使用幫助器的例子,就像我在這裏爲幫助者所做的那樣,或者嘗試猜測一些解決方案。

任何幫助,將不勝感激。

更新:2013/7/29 12:47 CDT - 我可以看到兩臺服務器之間唯一的區別是,開發服務器運行ruby 1.9.3p327,生產服務器運行ruby 1.9.3p362 。但我不敢相信這可能會導致我的問題,但我覺得我應該注意到這一點。

回答

0

我找不到與此相關的任何其他問題或評論。我決定將fr.yml哈希複製到rails-i18n gem。我不必在我的開發服務器上執行此操作以將日期格式轉換爲法語。正如我所說,沒有它們,它工作得很好。當我在生產中部署新的yaml文件時,我所有的子句都是法語的。我想在國際化進程的某個地方有一種乾草堆式的漏洞。至少Rails的日期翻譯工作正在進行中。