rails4date_select帮手自定义泰历

rails 4 date_select helper custom Thai calendar

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

您可以使用 Rails 内置的 I18n 支持。为泰语 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"