例如,在 ruby(sinatra 应用程序)中本地化 strftime 以在法语中使用日期名称的最佳方法是什么?
我有 :
"2012-06-04".strftime("%a") # => "Mon"
我想 :
"2012-06-04".strftime("%a") # => "Lun"
谢谢!
例如,在 ruby(sinatra 应用程序)中本地化 strftime 以在法语中使用日期名称的最佳方法是什么?
我有 :
"2012-06-04".strftime("%a") # => "Mon"
我想 :
"2012-06-04".strftime("%a") # => "Lun"
谢谢!
使用R18n 国际化gem。在你的情况下sinatra-r18n
宝石。它支持多种语言环境。
取自sinatra 示例页面:
set :default_locale, 'fr'
这将使默认语言环境为法语。
以下是您的问题的三个解决方案:
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”作为前缀并插入上面的代码)。