2012-08-30 29 views
1

就在我認爲我完成了國際化和時區之後,最終可以轉向更有趣的功能,最後一次我被咬了。 :)Buildin模板標籤似乎打破了i18n

在我的模板中,只要我有以下內容,模板會自動將UTC的日期時間轉換爲我當前選擇的時區。而且我也可以切換到不同的文化(美國到英國格式),日期和時間格式也會相應更改。簡單完美。

{% load l10n %} 
{% for item in calls %} 
    <td>{{ item.conversation_datetime }}</td> 
    <td>{{ item.conversation_datetime }}</td> 
{% endfor %} 

現在我需要做的是爲後者提取本地化日期和本地化日期。所以我認爲讓砰的一聲模板標籤在那裏,生活是美好的。

{% load l10n %} 
{% for item in calls %} 
    <td>{{ item.conversation_datetime|date }}</td> 
    <td>{{ item.conversation_datetime|time }}</td> 
{% endfor %} 

但是,如果生活還不錯,我不會坐在這裏寫這篇文章嗎? ;) 這些過濾器設置的時刻,這兩個領域的格式似乎是固定的美國文化。日期格式爲mm/dd/yyyy,時間爲上午12點/下午。

選擇英語,正如我以前所做的那樣,不再有任何效果。

事實上,我已經爲enen-gb覆蓋了formats.py,並且可以確認en/format.py的條目TIME_FORMAT = 'P'對應於上午12點/下午。

雖然en_GB/formats.py的TIME_FORMAT = 'G:i'對應於24小時。 您認爲在我忽略的模板中使用過濾器標籤還有一點點嗎?

+0

您正在使用哪個Django版本? –

+0

1.4.1這是謝謝。 – Houman

回答

1

編輯:第二種方法是解決方案。另請參閱下面的評論。

你觀察文檔中確實提到的問題(見date filter):

當沒有格式字符串中使用:{{ value|date }}DATE_FORMAT設置中定義的格式字符串將被使用,不應用任何本地化

對於time過濾器也提到了相同的情況。從我可以在文檔中看到,您可以強制本土化與localize過濾器:

{% load l10n %} 
{% for item in calls %} 
    <td>{{ item.conversation_datetime|date|localize }}</td> 
    <td>{{ item.conversation_datetime|time|localize }}</td> 
{% endfor %} 

或者,你可以通過你希望使用的設置(解決):

{% load l10n %} 
{% for item in calls %} 
    <td>{{ item.conversation_datetime|date:"DATE_FORMAT" }}</td> 
    <td>{{ item.conversation_datetime|time:"TIME_FORMAT" }}</td> 
{% endfor %} 

有關此文檔說明:

傳遞的格式可以是預定義的格式之一DATE_FORMAT,DATETIME_FORMATSHORT_DATE_FORMATSHORT_DATETIME_FORMAT,或使用上表中顯示的格式說明符的自定義格式。 請注意,預定義的格式可能會因當前區域設置而異。

+0

感謝您的幫助西蒙,我知道這些話題都被大多數人所避免。 :)我已經嘗試過你的解決方案。第一個與以前完全一樣 - >忽略文化固定格式。第二個更好,沒有出現任何東西。日期和時間都是空的。我將在今天下午創建一個小型沙盒應用程序來演示這個問題。我還發現Django 1.5有一個名爲LocalTime的新標籤。看來Django男孩知道這個缺點。 https://docs.djangoproject.com/zh/dev/ref/utils/#django.utils.timezone.localtime但他們似乎忘記了本地時間。 ;-) – Houman

+0

@Kave:我真的很希望這些解決方案中的一個能夠工作。我必須說我基於文檔,因爲我還沒有在我的項目中遇到過這個特殊問題。如果你確實找到了解決方案,最好在這裏發佈。否則,您可以創建解決該問題的解決方法。如果真的沒有簡單的方法去做,那麼讓Django開發人員知道是很好的。 –

+0

嗨西梅昂,對不起花了點時間來完成演示。我現在已經創建了一個小應用程序來展示這個問題。 https://dl.dropbox.com/u/44307777/Sandbox.zip如果您有時間看一看。在主頁上,我非常清楚它的工作原理。 :)如果你可以確認你遇到同樣的問題,那麼它是一個很好的候選人,我可以提出一個bug票。 :D – Houman

相關問題