Rails 2.3.5 I18n月/日名称翻译问题

时间:2010-08-31 19:40:35

标签: ruby-on-rails internationalization

我的config/locales/pl.yml文件(从here采样):

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"

为什么呢?换句话说 - 我怎样才能获得翻译的月份名称?我还会注意到locale文件肯定会被读取,因为它包含了许多其他翻译,这些翻译都有效。

1 个答案:

答案 0 :(得分:17)

这取决于您使用的是哪个rails版本。 在rails 3.0.0上有一个帮助来翻译它(我不知道它是从哪个版本获得的)。

在视图中,您可以编写

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

在脚本/控制台(或rails控制台)中,尝试输入:

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

看看它是否有效。 还有l助手(小写L),这是localize的简写:

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