我目前正在建立一个我想要实现多语言版本的网站。实际上我不需要,但我想这样做以防万一。
那么使用django翻译机制会降低性能和降低多少? 特别是我想听听人们如何在真实服务器上测试django翻译的性能。提前感谢。
答案 0 :(得分:2)
无法谈论真实服务器上的性能经验,但这里有一些提示:
一旦语言被激活,Django就会将语言的gettext翻译加载到内存中(例如,使用django.utils.translation.activate("de")
手动)。加载MO文件后,所有进一步的查找都纯粹受CPU限制(内存查找),因此性能损失根本不重要。
如果我正确理解您的问题,您只想将可翻译的字符串放入网站,以便可以在必要时翻译它们。在这种情况下,只需使用ugettext
,{% trans %}
等,就像使用完全翻译的网站一样,但设置为USE_I18N = False
。这样,Django用虚函数替换了它的gettext功能,这些函数只返回原始字符串。开销将接近于零。如果你想添加第二语言,只需激活i18n,不要忘记将翻译编译成MO文件。