0
ここに私の遅延を表示するために使用する関数があります。遅延は正(遅延がある場合)または負であり得る。この関数は引数としてtimedeltaをとります。Django複数の日と時間の変換が動作しない
def delta_string(delta):
days = delta.days
hours = delta.seconds/3600
if days < 0 and hours > 0:
days = days + 1
hours = 24 - hours
days_string = ungettext("%(day)s day","%(day)s days", abs(days)) % {'day': days}
hours_string = ungettext("%(hour)s hour","%(hour)s hours", hours) % {'hour': hours}
return "%s, %s" % (days_string, hours_string)
もちろん、すべての文字列はpoファイル(およびコンパイル済み)に翻訳されます。しかし、結果は奇妙です - 時には翻訳が正しい場合もあれば、正しくない場合もあります。例:
35日9時間; -4dni、1godzina; 0日、11時間; 19日、13 時間; 34日、9時間; -1dzień、6時間; -1dzień、2 godzin; -5 日、4ゴジイン; 3日、19時間
など。上記の出力はすべて同じページに表示されます。何が間違っているのでしょうか?私もungettext_lazyを試してみました.U文字列を試しました。結果はありません。
ニース、ありがとう!それは両方向ではうまくいきません(つまり、最初の引数が2番目の引数より後の日付である場合は、否定結果を返します)。 – alekwisnia
他の方向については、 'timeuntil'フィルタを使うことができます[https://docs.djangoproject.com/en/dev/ref/templates/builtins/?from=olddocs#timeuntil] –
はい、私は知っていますが、最初の日付が2番目の日付より遅いかどうかを確認する必要があります。 – alekwisnia