1

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

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

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

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

4

1 回答 1

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)
于 2013-09-05T15:28:47.627 回答