3

「1時間前」のように日時を言葉で表示したかったので、次の方法を試しましたが、以下に示すようにhtmlを文字列形式で返しています。

方法

helper.time_ago_in_words(Time.now)

結果

=> "<span class=\"translation_missing\" title=\"translation missing: en.less_than_x_minutes\">Less Than X Minutes</span>"

レールコンソール出力:

>> helper.time_ago_in_words(Time.now)
=> "<span class=\"translation_missing\" title=\"translation missing: en.less_than_x_minutes\">Less Than X Minutes</span>"
>> I18n.locale = :de
=> :de
>> helper.time_ago_in_words(Time.now)
=> "<span class=\"translation_missing\" title=\"translation missing: de.less_than_x_minutes\">Less Than X Minutes</span>"
>> I18n.locale = :en
=> :en
>> helper.time_ago_in_words(Time.now)
=> "<span class=\"translation_missing\" title=\"translation missing: en.less_than_x_minutes\">Less Than X Minutes</span>"
4

3 に答える 3

1

config でロケールを使用していますか? 英語は確かにデフォルトのものであり、正しく動作するはずです.

2.0.0p0 :001 > helper.time_ago_in_words(Time.now)
 => "less than a minute" 
2.0.0p0 :002 > I18n.locale = :de
 => :de 
2.0.0p0 :003 > helper.time_ago_in_words(Time.now)
 => "translation missing: de.datetime.distance_in_words.less_than_x_minutes" 
2.0.0p0 :004 > I18n.locale = :en
 => :en 
2.0.0p0 :005 > helper.time_ago_in_words(Time.now)
 => "less than a minute" 

コンソール (rails c) で行ったように、ヘルパー オブジェクトでこのメソッドを呼び出してみてください。出力は何ですか?

于 2013-04-13T22:24:10.237 に答える
0

Rails コンソールで、ActionView::Helpers の time_ago_in_words を使用すると、translation_missing エラー メッセージが表示されます。しかし、ActionView::Helpers::DateHelper からインクルードすると、期待どおりに動作します。

作品:

[2] pry(main)> include ActionView::Helpers::DateHelper
=> Object 
[3] pry(main)> time_ago_in_words(Time.now)
=> "less than a minute"

翻訳がありません:

[1] pry(main)> include ActionView::Helpers
=> Object [2] 
pry(main)> time_ago_in_words(Time.now)
=> "<span class=\"translation_missing\" title=\"translation missing: en.less_than_x_minutes\">Less Than X Minutes</span>"
于 2013-09-12T21:24:34.463 に答える