Django应用程序中的模型国际化

3

我的应用程序将提供两种语言:英语和德语。该应用程序将具有几个带有描述字段的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)
2个回答

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进行翻译。按照步骤操作,它可以正常工作。要翻译的字段可以从管理员界面更改。 - Seitaridis

0

Django-easymode 包含 @i18n 装饰器,可能可以解决您的问题:

有时需要翻译模型。Django 支持通过 gettext 的方式国际化模板和代码中的静态文本。对于模型的翻译 - 动态数据 - easymode 提供了简单的装饰器,以启用国际化模型字段和本地化管理类。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接