2012-03-08 63 views

回答

17

它加載可以在模板中使用的翻譯標籤,如{% trans "Text" %}。如果你不使用它,當你使用trans標籤的所有文字,是不是動態模板然後你可以收集所有這樣的字符串通過運行./manage.py makemessages這將創建一個將用於翻譯.po文件可以刪除{% load i18n %}

+2

真棒的感謝!您給了我足夠的關鍵詞,在網絡上進行一些測試和搜索以瞭解更多信息。 – hobbes3 2012-03-08 22:19:09

5

{% load i18n %}國際化需要。國際化的目的是允許單個應用程序以多種語言閱讀。爲了做到這一點:你需要一些叫做翻譯字符串的鉤子。爲了讓你的模板訪問這些標籤,把{% load i18n %}對模板的頂部..

請參閱本作的詳細信息:https://docs.djangoproject.com/en/1.10/topics/i18n/

2

爲了使一個Django項目翻譯,你必須添加一個最小鉤子到你的Python代碼和模板的數量。這些鉤子被稱爲translation strings。他們告訴Django:「如果該文本的翻譯可用該語言翻譯,則應將該文本翻譯成最終用戶的語言。」您有責任標記可翻譯的字符串;該系統只能翻譯它所知道的字符串。

默認情況下,Django的國際化掛鉤處於打開狀態,這意味着在框架的某些位置會有一些與i18n相關的開銷。如果您不使用國際化,您應該花兩秒鐘在您的設置文件中設置USE_I18N = False。然後Django將進行一些優化,以免加載國際化機器。您可能還想從TEMPLATE_CONTEXT_PROCESSORS設置中刪除['django.core.context_processors.i18n']

欲瞭解更多信息:https://docs.djangoproject.com/en/dev/topics/i18n/translation/