1

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

我有 :

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

我想 :

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

谢谢!

4

2 回答 2

5

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

取自sinatra 示例页面

set :default_locale, 'fr'

这将使默认语言环境为法语。

于 2012-06-04T11:28:10.047 回答
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”作为前缀并插入上面的代码)。

于 2012-06-04T11:04:34.683 回答