2012-06-04 56 views

回答

5

使用R18n internationalization寶石。在你的情況sinatra-r18n寶石。它支持多種語言環境。

sinatra example page摘自:

set :default_locale, 'fr' 

這將使默認區域設置法語。

+0

謝謝。我嘗試R18n解決方案,但它似乎不工作。 – Jeremy

+0

好吧,終於有效!正確的語法是l(Time.now,'%B')#=> Juin 謝謝! – Jeremy

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」爲前綴並插入上面的代碼)。

+1

這將破壞'strftime(「something not%a」)''的所有使用。 – steenslag

+0

是的,如果他使用別的%a;他應該使用第二個解決方案 – lc2817