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的日期翻译工作正在进行中。