月份在Rails I18n中命名变形

时间:2011-01-14 10:45:17

标签: ruby-on-rails date localization inflection

我想在波兰语中使用不同的月份名称。例如现在它的工作原理如下:

>> I18n.l Time.now, :format => "%e %B"
=> "14 styczeń"

但我想指定另一种月份格式:

>> I18n.l Time.now, :format => "%e %Q"
=> "14 stycznia"

翻译的月份名称位于pl.date.month_names的pl.yml文件中。我不想改变它。我可以在其他情况下添加pl.date.another_month_names,但我不知道如何使I18n.l方法使用它。

那我该如何实现呢?其他解决方案(助手,定制方法等)也是受欢迎的。

2 个答案:

答案 0 :(得分:5)

由于没有人回答我的问题,我找到了一个解决方案。

我刚刚创建了另一个翻译,例如alt_pl.yml,我添加了自定义月份名称,然后:

>> I18n.l Time.now, :format => "%e %Q", :locale => :alt_pl
=> "15 stycznia"

答案 1 :(得分:4)

我在德语翻译中遇到了类似奇怪月份名称的问题。 我必须在locale.yml中配置月份名称,现在它按预期工作:

de:
  defaults: &defaults
    month_names:
      [~, Januar, Februar, März, April, Mai, Juni, Juli, August, September, Oktober, November, Dezember]
    formats:
       default: "%d. %B %Y"
       short: "%d.%m.%Y"
  date:
    <<: *defaults
  time:
    <<: *defaults