a-roomana / django-jalali-date

Jalali Date support for user interface. Easy conversion of DateTimeFiled to JalaliDateTimeField within the admin site, views, forms and templates.
MIT License
295 stars 33 forks source link

نمایش فارسی تاریخ ها در تپملیت - locale.setlocale #20

Closed alishirmohammadi closed 1 year ago

alishirmohammadi commented 4 years ago

وقتی از {{ time|to_jalali:'%B' }} در تمپلیت جنگو استفاده می‌کنم نام ماه به صورت انگلیسی نمایش داده می‌شود. برای نمایش فارسی چه‌کار باید کرد؟

a-roomana commented 4 years ago

برای نمایش فارسی تاریخ ها باید در تنظیمات environment را فارسی ست کنید. برای این کار میتوانید از روش های زیر اقدام کنید.

vhdm commented 4 years ago

@a-roomana

سلام، ضمن تشکر از زحمات شما من از جنگو 3 استفاده میکنم، هر کاری کردم ایام هفته ماه ها فارسی بشن، نشد، همه ی این روش ها رو تست کردم. ممنون میشم راه حلی ارائه بدین

farhadmpr commented 4 years ago

سلام، من هم همین مشکل را دارم

a-roomana commented 4 years ago

@farhadmpr @vhdm @alishirmohammadi

برای جنگو ۱ و احتمالا بعضی از نسخه های ۲ فکر میکنم که باید مطابق با کد زیر عمل کرد.

LANGUAGE_CODE = 'fa-ir'

import locale
locale.setlocale(locale.LC_ALL, "fa_IR.UTF-8")

اما برای نسخه ۳ فکر میکنم که باید به صورت زیر تغییر داد.من رو جنگو 3.0.1 تست کردم و به درستی کار کرد.

LANGUAGE_CODE = 'fa'

import locale
locale.setlocale(locale.LC_ALL, "fa_IR.UTF-8")
therealak12 commented 4 years ago

If you're using ubuntu, first install the language pack by:

sudo apt install language-pack-fa

Then use setlocale in Django.

sam1365 commented 4 years ago

می تونید تاریخ رو به میلادی ذخیره کنید و فقط برای نمایش به فارسی از یه تیکه کد جاوااسکریپت استفاده کنید

iam-Robo commented 1 year ago

سلام و خسته نباشید من تمام اینارو که گفتین رو انجام دادم اما اسم ماه بجای شهریور بصورت Shahrivar نمایش داده میشه ممنون میشم اگربتونین کمکم کنین. تگ رو به اینصورت نوشتم {{date_now|to_jalali:'%H:%M - %B- %Y/%m/%d'}}

iam-Robo commented 1 year ago

{{ time|to_jalali:'%B' }}

@a-roomana

سلام، ضمن تشکر از زحمات شما من از جنگو 3 استفاده میکنم، هر کاری کردم ایام هفته ماه ها فارسی بشن، نشد، همه ی این روش ها رو تست کردم. ممنون میشم راه حلی ارائه بدین

سلام تونستین این مورد رو حل کنین؟ منم مشکل دارم

zoomlorde commented 5 months ago

i dont know why the output is in english in a persian package anyway you guys can use the custom template tags to fix this

from django import template
from jalali_date import date2jalali

register = template.Library()

@register.filter
def jalalidate(value):
    name = date2jalali(value).strftime("%B")
    months = {
        'Esfand': 'اسفند'
    }
    if name in months:
        month = months.get(name)
    date = date2jalali(value).strftime(f"%Y/{month}/%d")
    return date

complete the list if you want it im too lazy for that