在Django项目中使用哪种动态国际化系统?

2024-09-29 01:25:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在与Django从头开始开发一个新项目。我发现有很多应用程序可以处理动态内容的翻译。在

  • Django多语种
  • Django-pluggable-model-i18n
  • Django模型翻译
  • Transdb公司
  • Django多语言模型-
  • Django transmeta公司

仅举几个例子。在

听起来像是跨语言的个人经历。在

我该选哪一个?在


Tags: 项目django模型语言应用程序内容model公司
3条回答

有两种模型转换:

  1. 向要转换的模型添加额外的列/字段
  2. 使用第二个表进行翻译

第一种方法更有效,因为您不使用额外的连接。第二种方法不需要修改原始的模型表,所以不需要太多的干扰。我个人更喜欢第一个选项,这也是我使用django-modeltranslation的主要原因之一。

你也可以看看这个comparison grid

我同意S.Lott的观点,你需要考虑一下国际化需要什么。但是,这是所有提到的软件包的一个很好的总结:

http://blog.muhuk.com/2010/01/06/dynamic-translation-apps-for-django.htm

到目前为止,我个人的选择是“以上都不是”。我目前正在使用datatrans制作原型:

http://github.com/citylive/django-datatrans

http://www.botondus.com/dynamic-translation-with-django-datatrans/

但我还是可以选择另一种解决方案。

Django-nani是一个全新的应用程序,它速度快,而且使用可能是最好的设计方法编写得很好。

它仍在开发中,但运行良好,有一个非常完整的documentation

这是一个片段来了解如何定义多语言模型:

from django.db import models
from nani.models import TranslatableModel, TranslatedFields


class DjangoApplication(TranslatableModel):
    name = models.CharField(max_length=255, unique=True)
    author = models.CharField(max_length=255)

    translations = TranslatedFields(
        description = models.TextField(),
        description_author = models.CharField(max_length=255),
    )

    def __unicode__(self):
        return self.name

相关问题 更多 >