Я думаю, это действительно зависит.Если у вас есть большой общедоступный сайт, который вы хотите перевести на N языков, то они не постоянны и потребуют обновлений от выделенных переводчиков при каждом изменении содержимого.Для такого проекта, gettext совершенно не подходит, потому что gettext трудно использовать нетехническим лицам.Сайт также потребует перекомпиляции и повторного развертывания, чтобы обновить переводы, которые являются основными нарушителями, если содержание часто меняется.gettext работает для настольных приложений (вроде как, для переводчиков он все еще важен), но не для веб-сайтов.
Вместо этого используйте https://github.com/ojii/django-nani. Создайте таблицу для хранения всех переводимых строк вВаши шаблоны:
class I18NString(TranslatableModel):
key = models.SlugField(unique = True)
translations = TranslatedFields(
text = models.TextField(),
)
Для каждого необходимого фрагмента текста добавьте его в виде строки в I18NString.Например, вы можете добавить строку с ключом «short-введение-text» и добавить туда английские и немецкие версии вводных текстов.
Затем для каждой загрузки страницы загрузите все переводы для текущего языка.:
# For performance, memcached should be used.
strings = I18NString.objects.language(request.COUNTRY_CODE).all()
trans = dict((s.key, s.text) for s in strings)
Передать словарь транс в шаблон и отобразить переведенные строки:
{{ trans.short-introduction-text }}