【问题标题】:Internationalization of models in Django applicationsDjango 应用程序中模型的国际化
【发布时间】:2011-01-10 08:06:09
【问题描述】:

我的申请将提供两种语言版本:英语和德语。该应用程序将有几个带有描述字段的 XType 对象。如何翻译 XType 的描述字段? Django 是否为此提供支持,否则我将不得不使用另一个 Django 应用程序?

class XType(models.Model):
    description = models.CharField(max_length=50)  
    def __unicode__(self):
        return self.description

class X(models.Model):
    type = models.ForeignKey(XType)

【问题讨论】:

    标签: python django django-models localization internationalization


    【解决方案1】:

    Django 不提供对模型字段翻译的直接支持。

    您必须在 Django 中或通过可插入应用程序(如已发布的 django-easymode 或查看 http://blog.muhuk.com/2010/01/06/dynamic-translation-apps-for-django.html)找到一种方法来处理它。

    如果你想在你的应用程序中处理它,你可能想尝试一些方法,比如为每种语言保存一个实例,然后在检索数据时进行相应的过滤:

    class XType(models.Model):
        language = models.CharField(max_length=5)
        description = models.CharField(max_length=50) 
    

    当然很大程度上取决于您的项目需求。

    【讨论】:

    • 我已经尝试使用modeltranslation进行翻译。按照步骤操作,它可以工作。要翻译的字段可以从管理员更改。
    【解决方案2】:

    django-easymode 包括@i18n decorator,这可能会解决您的问题:

    有时需要 翻译模型。 Django 支持 静态文本的国际化 模板和代码通过 获取文本。对于模型的翻译 - 动态数据 - easymode 提供简单的 使国际化的装饰器 模型字段和本地化管理员 类。

    【讨论】:

      【解决方案3】:

      检查其中一个附加组件:http://www.google.pl/search?sourceid=chrome&ie=UTF-8&q=django+model+translation 以获得灵活的解决方案

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-12
        • 1970-01-01
        • 2012-01-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多