Django翻译模型保存数据

时间:2013-09-05 14:18:26

标签: python django translation

我需要在django admin中自动翻译数据。

我目前正在使用django rosetta手动翻译所有静态文本,以简化翻译。我需要做的是在管理界面中使用Microsoft转换器API自动翻译所有数据。

让我们假设我有一个执行翻译的功能。我应该将django-modeltranslation与翻译函数一起使用并覆盖每个模型的保存功能吗?

任何可以提供帮助的提示,模块或代码段。

1 个答案:

答案 0 :(得分:0)

如果您需要翻译和翻译的语言是固定的,就像您不打算用多种语言输入数据一样,那么您可以在模型保存方法中翻译数据:

class ModelName(models.Model):

    data = models.CharField()

    def save(self):
        """ Extension of parent save method """

        for name in ModelName._meta.get_all_field_names():
            field = getattr(name, ModelName, None)
            field = translate(field)

        super(ModelName, self).save()

另一种选择是在数据的输入验证中进行转换,如果它是一个表单:

class ModelNameForm(forms.Form):

    data = forms.CharField()

    def clean_data(self):
        data = self.cleaned_data['data']
        return translate(data)