2009-08-23 41 views
5

Tôi đã chơi với hệ thống i18n của Django và dường như nó hầu như hoạt động. Tuy nhiên, ngày tháng trong mã mô hình dường như đang gây ra sự cố.Django i18n và miền địa phương python (và ngày tháng)

Tôi sử dụng datetime.strftime để điền một vài bộ LỰA CHỌN mà sau đó được sử dụng trong biểu mẫu.

Từ những gì tôi hiểu, django sẽ đặt ngôn ngữ thành lựa chọn của người dùng để datetime.strftime() sẽ xuất ra bằng ngôn ngữ thích hợp, nhưng điều này dường như không xảy ra.

tôi thiếu gì ở đây?

Nếu tôi đặt ngôn ngữ theo cách thủ công (ví dụ: locale.setlocale (locale.LC_TIME, 'de_DE.UTF-8')) thì giờ dịch sẽ chính xác.

Cảm ơn,

Tom

Trả lời

3

Django không thiết lập miền địa phương để dịch, chỉ tải Danh mục dịch. Để có được hiệu ứng mong muốn, bạn có thể đặt ngôn ngữ (không phải là một lựa chọn tốt vì nó hoạt động trên toàn bộ quy trình) hoặc sử dụng thư viện chuyên dụng. Tôi khuyên bạn nên Babel có tích hợp Django đẹp.

+1

Ah, cảm ơn bạn Zgoda. Tôi nghĩ rằng các tài liệu django nên được một chút rõ ràng hơn, họ thay vì cho rằng i18n không nhiều hơn mà nó thực sự làm. –

+0

Tôi muốn nói là "i18n" được quảng cáo. Ngày định dạng và giá trị tiền tệ là "l10n" (bản địa hóa) không có trong Django anyways. Đó là tên miền của thư viện Babel. :) – zgoda

1

tôi vừa mới phải đối mặt với vấn đề tương tự nhưng được quản lý để giải quyết vấn đề bằng cách sử dụng format thay cho python strftime

+0

Tôi đã thử với định dạng nhưng% B và% b không được nhận dạng: (Bất kỳ trợ giúp nào? – Natim

+0

% B là% F và% b là% f trong hàm định dạng :) –

+0

cảm ơn mã 22 cho giải pháp định dạng, I không muốn sử dụng babel cho dự án nhỏ của tôi. hoạt động như mong đợi –

Các vấn đề liên quan