3

私はDjangoのヒューマナイズを使用して、アプリ内の大きな浮動小数点数を読みやすくしています。また、私のアプリはさまざまな言語で利用でき、さまざまな言語で、、が使用されます。逆に数字でサインインします。

整数値の場合、humanizeタグintcommaは適切に機能します。

{{ intvalue|intcomma }}

さまざまなロケールに対応します:

English:  1,000,000
Dutch:    1.000.000

ただし、フロートを使用すると、これはうまく機能しません。たとえば、私のテンプレートでは、次のようになります。

{{ floatvalue|floatformat:2|intcomma }}

さまざまなロケールに対応します:

English:  1,000,000.00
Dutch:    1,000,000,00

オランダ語の1.000.000,00ではなく、1,000,000,00と表示されていることに注意してください。floatformat:2タグとintcommaタグの切り替えも機能しません。その場合、値は何もありません。

これを簡単に修正する方法について何かアイデアはありますか?

(可能であれば、Babelなどの外部ライブラリは使用しないでください)

4

1 に答える 1

0

Django Format Localization機能を試してください。3 つのオプションが表示されます。Django docs が言うように、

Django の書式設定システムは、現在のロケールに指定された書式を使用して、日付、時刻、および数値をテンプレートに表示できます。また、フォーム内のローカライズされた入力も処理します。

有効にすると、同じコンテンツにアクセスする 2 人のユーザーは、現在のロケールの形式に応じて、日付、時刻、および数値が異なる形式で表示される場合があります。

書式設定システムはデフォルトで無効になっています。有効にするにUSE_L10N = Trueは、設定ファイルで設定する必要があります。

したがって、この最初のオプションは、すべてのテンプレートに対してロケール依存の数値フォーマットを有効にします。

2 番目のオプションは、localizeテンプレート タグを使用して、テンプレートの一部のみのロケール依存の数値書式を有効にすることです。例えば、

{% load l10n %}

{% localize on %}
    {{ value }}
{% endlocalize %}

3 番目のオプションは、localizeテンプレート フィルターを使用して、単一の値に対してロケール依存の数値形式を強制することです。例えば、

{% load l10n %}

{{ value|localize }}
于 2012-12-04T06:01:03.507 に答える