2012-10-26 34 views
7

Tôi đang làm việc trên một dự án sử dụng l10n.
Nếu tôi đặt locale EN và cố gắng để hiển thị một thời gian (08:00), tôi nhận được:Django - Thay đổi định dạng thời gian cho một miền địa phương

8 a.m. 

Nếu tôi đặt locale để FR tôi nhận được:

08:00:00 

Nhưng nó phải là một cái gì đó như:

8h 

Tại sao tôi nhận định dạng này? Làm thế nào tôi có thể có được định dạng thích hợp?

Trả lời

10

Dường như không có định dạng thời gian mặc định được đặt cho ngôn ngữ FR.

Những gì bạn có thể làm là cấu hình format module:

# myproject/settings.py 
FORMAT_MODULE_PATH = 'myproject.formats' 

Tạo nó:

myproject/ 
    formats/ 
     __init__.py 
     fr/ 
      __init__.py 
      formats.py 

Và xác định định dạng Pháp:

# myproject/formats/fr/formats.py 
TIME_FORMAT = 'G:i' 
+0

Rất tốt để biết, công việc tuyệt vời. – jpic

1

Tôi không tin bạn có thể thay đổi định dạng nếu bạn đang sử dụng nội địa hóa, từ sự hiểu biết của tôi về điều này: https://docs.djangoproject.com/en/dev/topics/i18n/timezones/.

Is USE_L10N = True? Nếu có, nó sẽ ghi đè các giá trị settings.TIME_FORMATsettings.TIME_INPUT_FORMATS: https://docs.djangoproject.com/en/dev/ref/settings/#time-format

Bạn có thể viết bộ lọc mẫu hoặc bộ lọc ngữ cảnh "bản địa hóa" của riêng mình, dựa trên ngôn ngữ đã chọn.

+0

Tôi xác nhận rằng 'TIME_FORMAT' ghi đè giá trị mặc định từ' USE_L10N' khi được đặt qua mô-đun định dạng –

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