The memanusiakan solusi baik-baik saja jika website Anda dalam bahasa Inggris. Untuk bahasa lain, Anda memerlukan solusi lain: Saya sarankan menggunakan Babel . Salah satu solusinya adalah membuat tag templat khusus untuk menampilkan angka dengan benar. Begini caranya: cukup buat file berikut di your_project/your_app/templatetags/sexify.py
:
# -*- coding: utf-8 -*-
from django import template
from django.utils.translation import to_locale, get_language
from babel.numbers import format_number
register = template.Library()
def sexy_number(context, number, locale = None):
if locale is None:
locale = to_locale(get_language())
return format_number(number, locale = locale)
register.simple_tag(takes_context=True)(sexy_number)
Kemudian Anda dapat menggunakan tag templat ini dalam templat Anda seperti ini:
{% load sexy_number from sexify %}
{% sexy_number 1234.56 %}
- Untuk pengguna Amerika (lokal en_US) ini menampilkan 1.234.56.
- Untuk pengguna Perancis (locale fr_FR), ini menampilkan 1 234,56.
- ...
Tentu saja Anda bisa menggunakan variabel sebagai gantinya:
{% sexy_number some_variable %}
Catatan: yang context
parameter saat ini tidak digunakan dalam contoh saya, tapi saya menaruhnya di sana untuk menunjukkan bahwa Anda dapat dengan mudah men-tweak tag template ini untuk membuatnya menggunakan apa pun yang dalam konteks Template.