【问题标题】:Ruby on Rails I18n - Localization of Dates Works In localhost but Not In ProductionRuby on Rails I18n - 日期本地化在 localhost 中有效,但在生产中无效
【发布时间】:2013-07-28 23:04:09
【问题描述】:

我正在使用 Ruby on Rails 3.2.13 Ruby 1.9.3。

我的 en.yml 文件中有以下代码:

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

我的 fr.yml 文件中有以下代码:

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

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

这是在我的视图中显示短日期格式的代码:

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

这是我的短格式如何在 localhost(日期 2013-07-01)中工作的示例:

July 2013 (en)
juillet 2013 (fr)

这是我的长格式在生产中如何工作的示例(日期 2013-07-01):

July 2013 (en)
July 2013 (fr)

这是我视图中的代码,用于在我的视图中显示长日期格式:

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

这是我的长格式如何在 localhost 中工作的示例(日期为 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 和 Stack Overflow 上的几个示例,这些示例使用了第 3.3 节中描述的 l 帮助器。然而,在第 5 节中,它讨论了使用 t 帮助器进行自定义翻译。我将 t 用于所有其他 I18n 国际化,并且运行良好。唯一的问题是当我使用 l 帮助器作为日期时。

我已经查找了如何使用 t 帮助器的示例,如链接 Rails Guide 链接中所述。该链接没有给出如何使用字段名称编写语句的示例。我在 Stack Overflow 中找到的所有示例都使用 l 帮助器或 strftime 方法。我希望能够“翻译”日期格式,就像我在生产中执行应用程序的其余部分一样,就像它在 localhost 中工作一样。我已经检查了我为在生产服务器上执行此操作而更改的所有文件,以确保所有文件都已移到那里。从我读到的内容看来, l 帮助器可能不适用于自定义翻译。也许使用 t 助手可以解决 Rails 指南建议的这个问题。我将继续寻找是否可以找到使用 t 帮助器的示例,例如我在此处为 l 帮助器提供的示例,或者尝试猜测一些解决方案。

任何帮助将不胜感激。

更新:CDT 2013 年 7 月 29 日下午 12:47 - 我可以看到两台服务器之间的唯一其他区别是开发服务器正在运行 ruby​​ 1.9.3p327,而生产服务器正在运行 ruby​​ 1.9.3p362。然而,我不敢相信这可能会导致我的问题,但我觉得我应该注意这是一个差异。

【问题讨论】:

    标签: ruby-on-rails date localization internationalization date-format


    【解决方案1】:

    我找不到与此相关的任何其他问题或 cmets。我决定复制 rails-i18n gem 的 fr.yml 哈希值。我不必在我的开发服务器上执行此操作即可将日期格式转换为法语。正如我所说,没有它们它工作得很好。当我在生产中部署新的 yaml 文件时,我的所有子句都是法语的。我猜想在 i18n 进程的某处有大海捞针式的错误。至少 Rails 的日期翻译现在可以工作了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-21
      • 2022-01-17
      • 1970-01-01
      相关资源
      最近更新 更多