আরো সুরুচিকর যদি আপনার ওয়েবসাইট চলবে ইংরেজি ভাষাতে সমাধান জরিমানা। অন্যান্য ভাষার জন্য আপনার অন্য সমাধান দরকার: আমি বাবেল ব্যবহারের পরামর্শ দিই । একটি সমাধান হ'ল সংখ্যাগুলি সঠিকভাবে প্রদর্শন করতে একটি কাস্টম টেম্পলেট ট্যাগ তৈরি করা। এখানে কীভাবে রয়েছে: কেবল নিম্নলিখিত ফাইলটি এতে তৈরি করুন 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)
তারপরে আপনি আপনার টেম্পলেটগুলিতে এই টেম্পলেট ট্যাগটি ব্যবহার করতে পারেন:
{% load sexy_number from sexify %}
{% sexy_number 1234.56 %}
- আমেরিকান ব্যবহারকারীর জন্য (স্থানীয়ভাবে en_US) এটি 1,234.56 প্রদর্শন করে।
- ফরাসী ব্যবহারকারীর জন্য (লোকেল fr_FR), এটি 1 234,56 প্রদর্শন করে।
- ...
অবশ্যই আপনি পরিবর্তে পরিবর্তনশীল ব্যবহার করতে পারেন:
{% sexy_number some_variable %}
নোট:context
প্যারামিটার বর্তমানে আমার উদাহরণে ব্যবহার করা হয় না, কিন্তু আমি এটা আছে দেখাতে হবে যে আপনি সহজে কিছু টেমপ্লেট প্রেক্ষাপটে যে ব্যবহারের জন্য এই টেমপ্লেটের ট্যাগ বদলাতে পারেন দিলেন।