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

Paw*_*cki 11 ruby-on-rails internationalization

我的config/locales/pl.yml档案(从这里采样):

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?]
Run Code Online (Sandbox Code Playgroud)

script/console:

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

Time.now.strftime("%A, %B")
=> "Tuesday, August"
Run Code Online (Sandbox Code Playgroud)

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

Hug*_*oto 17

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

在视图中,您可以编写

localize Time.now, :format => '%A, %B'
Run Code Online (Sandbox Code Playgroud)

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

controller.localize Time.now, :format => '%A, %B'
Run Code Online (Sandbox Code Playgroud)

看看它是否有效 还有l帮手(小写L),这是一个简写localize:

controller.l Time.now, :format => '%A, %B'
Run Code Online (Sandbox Code Playgroud)