Техника многоязычной поддержки больших статических фрагментов текста в Django - PullRequest
1 голос
/ 17 января 2010

Для небольших фрагментов текста мы используем тег django {% trans%}

Что делать с большими текстами, такими как FAQ, термины и другие статические страницы

Ответы [ 2 ]

6 голосов
/ 17 января 2010

Существует тег шаблона {% blocktrans %}, который вы можете использовать.

Вы также можете написать простой тег шаблона самостоятельно, который включает в себя шаблон anathor на основе текущего языка.

{% i18ninclude "faq/question1.html" "en" %}

будет включать faq/question1.en.html. Вот код:

import os
from django import template
register = template.Library()

@register.simpletag
def i18ninclude(template_name, language):
    template_name, extension = os.path.splitext(template_name)
    template_name = '%s.%s%s' % (template_name, language, extension)
    return template.loader.render_to_string(template_name)

Поместите это в библиотеку шаблонов вашего приложения. Я также рекомендую прочитать документацию о пользовательских тегах , если вы еще этого не сделали.

2 голосов
/ 17 января 2010

Взгляните на django-лучше-куски . Он позволяет вставлять фрагменты статического HTML в ваши шаблоны и поддерживает i18n.

Для статических страниц я рекомендую использовать какую-то CMS, например django-cms . Также поддерживается i18n.

...