Из опыта не могу говорить о производительности на реальных серверах, но вот несколько советов:
Django загружает переводы gettext для языка в память, как только язык активируется (например, вручную с помощью django.utils.translation.activate("de")
).После загрузки MO-файла все последующие поиски связаны исключительно с ЦП (поиск в памяти), поэтому снижение производительности не должно иметь никакого значения.
Если я правильно понимаю ваш вопрос, вам нужно только разместить переводимыйстроки на сайт, чтобы вы могли перевести их при необходимости.В этом случае просто используйте ugettext
, {% trans %}
и т. Д., Как для полностью переведенного сайта, но установите USE_I18N = False
.Таким образом, Django заменяет свою функциональность gettext на фиктивные функции, которые будут просто возвращать исходную строку.Накладные расходы будут близки к нулю.Если вы хотите добавить второй язык, просто активируйте i18n и не забудьте скомпилировать переводы в файлы MO.