3

我的应用程序将有两种语言:英语和德语。应用程序将拥有一对带说明字段的XType对象。我如何翻译XType的描述字段? Django是否提供对此的支持,或者我将不得不使用另一个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) 

回答

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) 

取决于您的项目需求当然有很多。

+0

我试过使用模型翻译的翻译。按照步骤,它的作品。要翻译的字段可以从admin更改。 – Seitaridis 2011-01-10 13:21:23

0

django-easymode包括@i18n decorator,这可以解决您的情况:

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