Tôi đã thiết lập L10N thành công cho dự án của mình và tôi có thể dịch các ngày sang định dạng chính xác. Nhưng bây giờ tôi cần SHORT_DATE_FORMAT
cho miền địa phương hiện tại trên các mẫu của tôi, hoặc trong một context_processor.Làm cách nào để có được "short_date_format" của ngôn ngữ hiện tại trên django?
Lấy từ django.conf.settings
luôn mang lại cho tôi giá trị mặc định, m/d/Y
. Miền địa phương hiện được đặt thành pt_BR
, do đó định dạng phải là d/m/Y
.
In [42]: settings.LANGUAGE_CODE
Out[42]: 'pt-br'
In [43]: settings.USE_L10N
Out[43]: True
In [44]: settings.SHORT_DATE_FORMAT
Out[44]: 'm/d/Y'
Bất kỳ manh mối nào?
Nhân tiện, những gì tôi thực sự cố gắng làm là: lấy định dạng của ngôn ngữ hiện tại để tôi có thể chuyển nó tới plugin bootstrap-datepicker. Nó hiện đang sử dụng m/d/Y
và django đang đưa ra một ngày ở định dạng d/m/Y
.
Bạn đang sử dụng cài đặt LANGUAGE_CODE từ mô-đun cài đặt làm cho nó không động (nó là mã ngôn ngữ mặc định được sử dụng khi Django không thể xác định nó theo cách khác). Trong chế độ xem, bạn có thể sử dụng request.LANGUAGE_CODE. Nếu không thì django.utils.translation.get_language() – bambata