我在django网站的I18N流程中。
我选择了两个可能很好的django-app:
从您的角度来看,这两种技术的优缺点是什么?
答案 0 :(得分:8)
如果您希望让您的应用(或第三方翻译)的用户轻松更新翻译而无需更改代码,请转到将翻译存储在数据库中的解决方案之一。
如果你想要更好的质量控制(版本控制,几组眼睛等),那么使用gettext。通过使用gettext,您还可以控制要翻译的字符串。
只是我的2c。
答案 1 :(得分:4)
django-modeltranslation 最适合存储翻译的值。你会去django-admin并把翻译后的价值。
但是如果您使用 django-dbgettext ,那么您不需要在django-admin中添加任何值,您可以使用rosetta。如果您无法查找任何翻译值并希望翻译,则可以在“ * dbgettext_registration.py * ”中输入模型并运行命令“python manage.py dbgettext_export”然后“python manage.py compilemessages”。
答案 2 :(得分:1)
http://packages.python.org/django-easymode/结合了两者:
http://packages.python.org/django-easymode/i18n/index.html
http://packages.python.org/django-easymode/i18n/translation.html
Gettext用于翻译大量数据,管理员用于日常更新。
答案 3 :(得分:0)
我建议您始终使用文件进行翻译。它具有可移植性,并且不会对数据库性能产生未知的影响(尤其是在使用猴子补丁您的数据库架构的“魔术”软件包时出现问题)
此程序包看起来简单且可扩展:https://github.com/ecometrica/django-vinaigrette