2014-11-20 30 views
5

Tôi đang xây dựng một trang web Django (1.6) (với twitter bootstrap) có một số hình thức mà người dùng phải điền vào một số ngày. Tôi đã bật l10n và i18n. Các trường ngày giờ được kiểm soát bởi một tiện ích JQuery. Widget chấp nhận một tham số để xác định định dạng đầu vào của ngày tháng và thời gian. Làm cách nào để có được định dạng ngày giờ hiện tại của django trong thẻ mẫu, để tôi có thể ánh xạ bản đồ này thành Javascript tương đương? Điều tôi muốn là có được ngôn ngữ hoàn chỉnh (như nl_BE, en_, ...) bởi vì tôi sống ở Bỉ và chúng tôi nói tiếng Pháp, tiếng Hà Lan và tiếng Đức, nhưng tất cả chúng ta đều sử dụng cùng một định dạng ngày. Nếu tôi chỉ sử dụng ngôn ngữ (với get_language từ django.utils.translation), tôi thấy định dạng ngày từ Pháp và Đức.django country theo yêu cầu

>>> from django.utils import formats 
>>> formats.get_format("SHORT_DATE_FORMAT", lang="nl") 
Out[27]: u'j-n-Y' 
>>> formats.get_format("SHORT_DATE_FORMAT", lang="fr") 
Out[28]: u'j N Y' 
>>> formats.get_format("SHORT_DATE_FORMAT", lang="de") 
Out[29]: u'd.m.Y' 

Tôi đã kiểm tra đã Django-datetime-widget trên trang demo của họ, nhưng nếu tôi chuyển sang trình duyệt của tôi (chrome) để dutch hoặc tiếng Pháp, nó không thay đổi định dạng ngày ...

Bất cứ ai cũng có một ý tưởng để giải quyết điều này?

Trả lời

1

Có vẻ như bạn cần tạo một số tệp định dạng tùy chỉnh, vì django không cung cấp định dạng miền địa phương cho fr_BE, de_BE và nl_BE. Xem https://docs.djangoproject.com/en/1.6/topics/i18n/formatting/#creating-custom-format-files về cách tạo định dạng ngôn ngữ tùy chỉnh.

Về cơ bản, việc tạo ứng dụng mới sẽ chứa các định dạng mới của bạn và chỉ định ứng dụng đó bằng cách sử dụng cài đặt FORMAT_MODULE_PATH.

ứng dụng định dạng của bạn nên được một cái gì đó như:

formats/ 
    __init__.py 
    fr_BE/ 
     __init__.py 
     formats.py 
    nl_BE/ 
     __init__.py 
     formats.py 
    de_BE/ 
     __init__.py 
     formats.py 

Bạn cũng nên thêm fr-be, de-be, và nl-be sang các ngôn ngữ của bạn trong settings.py

LANGUAGES = (
    ('nl-be', ugettext_lazy('Dutch (Belgium)')), 
    ('nl-fr', ugettext_lazy('French (Belgium)')), 
    ('nl-de', ugettext_lazy('German (Belgium)')), 
) 
+0

Cảm ơn, Tôi sẽ thử. – WimDH