rails 4 date_select帮助自定义泰国日历

时间:2015-04-14 19:11:14

标签: ruby-on-rails date ruby-on-rails-4 helper

我使用rails 4创建应用程序。在表单中,我使用date_select帮助程序来帮助用户选择他们的出生日期。我可以将月份名称更改为泰语,这没有问题。但我想知道根据泰国日历是否有办法显示年份,这比基督教日历要多543年。例如,如果今年是2015年泰国年将是2015 + 543 = 2558,如果是1991年泰国年将是1991 + 543 = 2534。我真的想知道它是否可以完成:)。感谢。

1 个答案:

答案 0 :(得分:1)

您可以使用内置I18n支持的Rails。为泰语config/locales/th.rb创建语言环境文件并覆盖默认日期格式。如果您已经拥有th.yml文件,则必须将其转换为Ruby哈希并将文件重命名为th.rb以使其生效:

{
  th: {
    date: {
      formats: {
        default: lambda { |date, _| "%d.%m.#{date.year + 543}" }
      }
    }
  }
}

现在只要你的语言环境设置为th,默认日期就会显示当前年份加上543:

I18n.locale = :th
puts I18n.l(Date.current) #=> "04.14.2558"