django.contrib.humanize

humanize は、データに「人間くささ(human touch)」を与えるための Django テンプレートフィルタセットです。

これらのフィルタを有効にするには、 INSTALLED_APPS 設定に 'django.contrib.humanize' を加えます。インストール後、テンプレート上で {% load humanize %} を呼び出せば、以下のフィルタを利用できるようになります:

apnumber

1-9 の数字に対して、数をアルファベットで表します。それ以外の数はそのまま数字で返します。これは AP スタイルブックの書式に従っています。

例:

  • 1 は one になります。

  • 2 は two になります。

  • 10 は 10 になります。

渡す値は整数でも、整数を文字列で表したものでもかまいません。

intcomma

整数または浮動小数点数 (またはどちらかの文字列表現) を受け取り、3桁ごとにカンマが入った文字列に変換します。

例:

  • 4500 は 4,500 になります。

  • 4500.2 は 4,500.2 になります。

  • 45000 は 45,000 になります。

  • 450000 は 450,000 になります。

  • 4500000 は 4,500,000 になります。

可能であれば 表示形式のローカライズ が優先されます。たとえば 'de' (ドイツ語) では次のようになります。

  • 45000 は '45.000' になります。

  • 450000 は '450.000' になります。

intword

大きな整数 (または整数の文字列表現) をわかりやすいテキスト表現に変換します。1.0 を単数のフレーズとして翻訳し、その他のすべての数値を複数形として扱います。これは一部の言語にとって正しくない場合があります。100 万を超える数値に最適です。

例:

  • 1000000 は 1.0 million になります。

  • 1200000 は 1.2 million になります。

  • 1200000000 は 1.2 billion になります。

  • -1200000000 は -1.2 billion になります。

値は 10^100 (Googol) までサポートされます。

可能であれば 表示形式のローカライズ が優先されます。たとえば 'de' (ドイツ語) では次のようになります。

  • 1000000 は '1,0 Million' になります。

  • 1200000 は '1,2 Millionen' となります。

  • 1200000000 は '1,2 Milliarden' になります。

  • -1200000000 は '-1,2 Milliarden' になります。

naturalday

日付が今日、明日、昨日のいずれかに該当する場合、それぞれ「今日(“today”)」、 「明日(“tomorrow”)」、「昨日(“yesterday”)」を返します。それ以外の日付の 場合は、引数に渡したフォーマット文字列を使って日付をフォーマットします。

引数: date タグと同じ記法による日付フォーマット文字列

表示例 ( 今日の日付を 2007年 2月 17日 とします ) :

  • 2007年 2月 16日 は yesterday になります。

  • 2007年 2月 17日 は today になります。

  • 2007年 2月 18日 は tomorrow になります。

  • 今日、昨日、明日以外の日付は与えられた引数に従ってフォーマットされます。引数がない場合は DATE_FORMAT 設定に従います。

naturaltime

datetime 値に対して、何時間(分、秒)前であったかを表わす文字列を返します。1日以上前である場合は timesince フォーマットにフォールバックします。 datetime 値が未来である場合も、自動的に適切なフレーズが返り値に使用されます。

表示例 ( 現在の日時を 17 Feb 2007 16:30:00 とします ) :

  • 17 Feb 2007 16:30:00 は now になります。

  • 17 Feb 2007 16:29:31 は 29 seconds ago になります。

  • 17 Feb 2007 16:29:00 は a minute ago になります。

  • 17 Feb 2007 16:25:35 は 4 minutes ago になります。

  • 17 Feb 2007 15:30:29 は 59 minutes ago になります。

  • 17 Feb 2007 15:30:01 は 59 minutes ago になります。

  • 17 Feb 2007 15:30:00 は an hour ago になります。

  • 17 Feb 2007 13:31:29 は 2 hours ago になります。

  • 16 Feb 2007 13:31:29 は 1 day, 2 hours ago になります。

  • 16 Feb 2007 13:30:01 は 1 day, 2 hours ago になります。

  • 16 Feb 2007 13:30:00 は 1 day, 3 hours ago になります。

  • 17 Feb 2007 16:30:30 は 30 seconds from now になります。

  • 17 Feb 2007 16:30:29 は 29 seconds from now になります。

  • 17 Feb 2007 16:31:00 becomes a minute from now になります。

  • 17 Feb 2007 16:34:35 は 4 minutes from now になります。

  • 17 Feb 2007 17:30:29 は an hour from now になります。

  • 17 Feb 2007 18:31:29 は 2 hours from now になります。

  • 18 Feb 2007 16:31:29 は 1 day from now になります。

  • 26 Feb 2007 18:31:29 は 1 week, 2 days from now になります。

ordinal

整数を序数形式の文字列に変換します。

例:

  • 1 は 1st になります。

  • 2 は 2nd になります。

  • 3 は 3rd になります。

整数または整数の文字列表現を渡すことができます。負の整数はそのまま返されます。