1

たとえば、フランス語で日の名前を付けるために、ルビー(sinatraアプリ)でstrftimeをローカライズするための最良の方法は何ですか?

私は持っています :

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

が欲しいです :

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

ありがとうございました!

4

2 に答える 2

5

R18n 国際化gemを使用します。あなたの場合、sinatra-r18n宝石。複数のロケールをサポートしています。

シナトラのサンプルページから引用:

set :default_locale, 'fr'

これにより、デフォルトのロケールがフランス語になります。

于 2012-06-04T11:28:10.047 に答える
0

あなたの問題に対する3つの解決策は次のとおりです。

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 に答える