【问题标题】:Which Dynamic Internationalisation system to use in Django projects?在 Django 项目中使用哪个动态国际化系统?
【发布时间】:2011-04-01 16:50:54
【问题描述】:

我正在使用 Django 从头开始​​开发一个新项目。我看到有很多用于处理动态内容翻译的应用程序。

  • Django 多语言
  • Django-pluggable-model-i18n
  • Django 模型翻译
  • 传输数据库
  • Django-多语言模型-
  • Django-transmeta

仅举几例。

Transdb、transmeta 和 multilingual 听起来很公平,但我想阅读一些个人经验。

我应该选择哪一个?

【问题讨论】:

  • 没有实际要求,答案是“掷骰子”。有六种选择。一个骰子上有六个面。滚走。如果您不喜欢骰子的答案,那么您将不得不考虑要求或考虑为什么您不喜欢由局外人为您选择的选项之一。
  • 没有实际要求,答案仍然是“掷骰子”。

标签: python django internationalization


【解决方案1】:

我同意 S.Lott 的观点,因为您需要考虑国际化需要什么。然而,这是所有提到的包的一个很好的总结:

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

到目前为止,我个人的选择是“以上都不是”。我目前正在使用数据传输进行原型设计:

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

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

但我可能还会选择其他解决方案。

【讨论】:

    【解决方案2】:

    模型翻译有2种:

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

    第一种方法更有效,因为您不使用额外的连接。而第二个则不那么具有侵入性,因为它不会修改原始模型表。我个人更喜欢第一个选项,这也是我使用django-modeltranslation 的主要原因之一。

    你也可以看看这个comparison grid

    【讨论】:

      【解决方案3】:

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

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

      这是一个sn-p,看看多语言模型是如何定义的:

      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
      

      【讨论】:

        【解决方案4】:

        我将django i18n 用于双语项目:我对这个项目真的很满意,我肯定会推荐它,但我必须说我从未尝试过其他项目。 ..

        【讨论】:

        • 这不是用于动态内容的优雅方法。
        • 首先,您需要某种技巧来将数据库中的可翻译内容添加到 .po 文件中。然后,您需要为内容生成器提供一个接口来编辑和编译该文件。最后,您需要重新启动您的应用程序以使更改生效,如果您的操作员拥有此权限,这可能会被滥用。 Django 内置的 i18n 支持仅适用于静态文本。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多