如何在ruby Sinatra中使用strftime本地化日期名称

时间:2012-06-04 08:57:13

标签: ruby localization sinatra strftime

在ruby(sinatra应用程序)中本地化strftime以在法语中使用日期名称的最佳方法是什么?

我有:

"2012-06-04".strftime("%a") # => "Mon"

我想:

"2012-06-04".strftime("%a") # => "Lun"

谢谢!

2 个答案:

答案 0 :(得分:5)

使用R18n internationalization gem。在你的情况下sinatra-r18n宝石。它支持多种语言环境。

取自sinatra example page

set :default_locale, 'fr'

这会将默认语言环境设为法语。

答案 1 :(得分:0)

以下是您的问题的三种解决方案:

1)您可以覆盖方法strftime并执行类似的操作(在右侧类中)

class XXX #put the right name 
  DAY ={
    "Mon" => "Lun",
    "Tue" => "Mar",
    ...
    }

  alias :old_strftime :strftime #Keep a reference to the old method

  def strftime(arg)
    DAY[old_strftime(arg)] 
  end

end

或者:

2)[推荐] 只需在代码中使用上面使用的DAY哈希并转到

DAY["2012-06-04".strftime("%a")]

3)继承前面提到的类(用“French”作为前缀并插入上面的代码)。