2011-12-30 15 views
2

是否有任何理由在app_index模板中的blocktrans標籤內有app.name標籤?django admin app?django.contrib.admin - 爲什麼i18n在模板中使用?

{% for app in app_list %} 
{% blocktrans with app.name as name %}{{ name }}{% endblocktrans %} 
{% endfor %} 

據我所看到的,結果將始終是類同的結果是:

{% for app in app_list %} 
{{ app.name }} 
{% endfor %} 

回答

0

從技術上講,你可以指定一個模型app_label在其Meta類,和據推測自定義值可以使用ugettext來翻譯它爲不同的語言。然而,這是一個很奇怪的情況,而且在實踐中很可能會有問題。

Django開發人員很可能只是爲了將來的證明和覆蓋邊緣情況。它不會傷害通過blocktrans傳遞一些東西。如果沒有翻譯,它會直接返回值,並且不應該推斷應該翻譯或不應該翻譯的內容。

0

發現Django國際化和本地化thread。我在這裏粘貼來自Django開發者的相關答案:

我同意你的結論。 「blocktrans」標籤簡直就是 在這裏使用不當。這是一個很好的標記,用於翻譯基本上爲 的靜態模板內容。它所做的不是看它所替代的 變量,因此無論變量內容如何,​​翻譯 都適用。在這種情況下尤其是 嚴重,因爲塊轉換部分只有包括 變量替換。

相關問題